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 more readable, but it is not required.
Note: Parallel blocks (or fork join blocks) are not supported in
Vivado synthesis.