改进的块名
代码中可包括多个嵌套begin…end块
命名的end可以和命名的begin配对
如果想在一个块的结尾指明它的名称,可以在关键字end后面加上:<名称>。在冒号的前后允许有空格,但不是必须的。
begin:<块名>
...
end:<块名>
这个跟着end后面的快名称是可选的,但它必须和相对应的begin后的名称一致。如果两者不同,系统会报告错误。
8、语句标号
命名用来识别一组语句
除了命名语句块,SystemVerilog还可以在任意过程语句前指定一个标号。
<label>:<statement>
语句标号用来识别单条语句
语句标号是用来识别一条语句,而命名的语句块识别有一条或多条语句的块。
always_comb begin:decode_blockdecoder:case(opcode)2'b00:outer_loop:for(int i=0;i<=15;i++)inter_loop:for(int j=0;j<=15;j++)//......//对其他操作码值的译码encase
end:decode_block
标号语句有助于记录代码
语句标号记录代码中的特定行,这样可使代码的可读性更高,也更容易在其他文件引用这些代码行。对调试和代码覆盖率分析工具而言,使用语句标号识别代码中的特定行是非常有用的。语句标号还允许使用名称引用相应语句。这样,在执行进程中的语句可以别disable语句取消,与取消命名的语句组或任务一样。
一个语句块可以有一个名称或标号
一个begin…end块是一条语句,因此也可以有语句标号或块名称。
begin :block1 //已命名的块
...
end:block1block2:begin //带标号的块...end
但是一个语句块同时有标号和块名称却是非法的