名前付きブロックとラベル

Verilog HDLでは、begin .. endで囲まれたブロックにラベルを付けることができます。

名前を付けたブロックを名前付きブロックと呼びます。

begin : start_block

...

end

SystemVerilogでは、ラベルはendの後にも付けることができるようになりました。

この機能により、ブロックの終わりがどのブロックに該当するのかがわかりやすくなりました。

begin : start_block

...

end : start_block

ラベルは、begin .. end だけでなく、 fork .. join にも付けることができます。

fork_label : fork

...

join : fork_label

joinの他にjoin_any、join_noneにも同様にラベルを付けることができる。

なお、2つのラベルは必ず同じにしなければいけません。

ラベルは、ブロックを見やすくするだけではありません。

disable を使って、ブロックから抜け出すことができます。

そのとき、fork .. join_any/none内で実行したタスクは強制終了することになります。