Quick intro to procedural blocks

Proxelera
2 min readJun 9, 2021

Hi Folks,

In the last writing, I used a phrase — ‘procedural block’. Most of you know what it means in Verilog. Actually, there is no need to write about it here, but I just thought of organizing the write-ups a bit and hence this article. So, here is a quick intro.

In fact, in the LRM of v-2005, the first reference to this phrase is not in a definition. It is mentioned rather in a topic called ‘Event simulation’. It reads as below -

“A design consists of connected threads of execution or processes. Processes are objects that can be evaluated, that may have a state, and that can respond to changes on their inputs to produce outputs. Processes include primitives, modules, initial and always procedural blocks, continuous assignments, asynchronous tasks, and procedural assignment statements”

We understand two things here -

1. The initial and the always blocks are called procedural blocks

2. A procedural block is a connected thread in the simulation. There is no limit on the number of procedural blocks in a simulation

Common knowledge says that the initial block is executed at time-zero in the simulation, whereas the always block is executed repeatedly, starting at time-zero until the simulation ends. Well, that is right! For now, that’s enough for us. I will close this topic with a few points to note -

  • Apart from procedural blocks, continuous assignments and module/primitive instantiations are also part of the connected thread execution system
  • There are also procedural assignment statements — which are of a special kind. They are also part of the connected thread execution system
  • All these parts of the connected thread execution system can interact with each other

BTW, don’t be overwhelmed with the phrase ‘connected thread execution system’. All it means is that the constituents of it run in parallel. Even initial and always blocks run in parallel. It is however possible that the initial block(s) finishes up before the simulation ends. Always blocks will continue to the end.

OK, enough on this … See you in the next write-up.

Tech Pubs,

Proxelera

--

--

Proxelera

Proxelera is founded by professionals with deep expertise in VLSI design. Our main charter is to be reliable, cost-effective and high quality design engineering