Vengineerの妄想(準備期間)

人生は短いけど、長いです。人生を楽しみましょう!

SystemVerilog : SV-2009 New Features、let Templates

Verification Engineerの戯言 : SystemVerilogの世界へようこそ

letを使えば、`defineディレクティブの置き換えができます。
`defineディレクティブでは、マクロを定義して後、ずーとそのマクロは定義済みになります。
マクロの定義を止めるには、`undef マクロ名を記述する必要があります。
また、`defineディレクティブの適応範囲を制限することはできません。
(SV-2009では、undefinefallが追加され、`defineディレクティブで定義したものをすべて未定義にします)

letは、ローカルなスコープを持つことができます。
pakage/endpackage内でletで定義したものは、パッケージ内でのみ有効になるという感じです。

`defineディレクティブを使うと明らかにマクロだということが分かりますが、
letでは、その名前だけでは関数やタスクとの区別がつかないので注意が必要です。

検証、Verification、SystemVerilog