Block statements provide a mechanism to group sets of statements together. Sequential
blocks have a begin and end around the statement. The
block can declare its own variables, and those variables are specific to that block. The
sequential block can also have a name associated with that block. The format is as
follows:
begin [: block name]
[declarations]
[statements]
end [: block name]
begin : my_block logic temp;
temp = in1 & in2; out1 = temp;
end : my_block
In the previous example, the block name is also specified after the end statement. This makes the code readable, though
optional.
Note:
Vivado synthesis does not support
parallel blocks (or fork join blocks).