SystemVerilog
SystemVerilog は Verilog-2005 の拡張であり、機能的に上位互換となっている。以下では、Verilog-2001 から SystemVerilog で拡張した部分について解説する。Verilog-2001 との共通部分は Verilog を参照。
Verilog HDLと同様、その機能は、
設計機能 - 電子回路およびシミュレータで利用可能
検証機能 - シミュレータで、テストやデバッグ時に利用
に大別できる。
多次元詰め込み配列により、Verilog の "registers" と "memories" を統合拡張した:
本来の Verilog では変数名の左には一次元の宣言しかできなかった。SystemVerilog は任意の詰め込み次元を指定可能である。詰め込み配列型の変数には整数算術実体を 1:1 でマップする。上記の例では、my_var の各要素は6ビットの整数を表す。名前の右側にある次元(例では32)は詰め込み型でない次元である。Verilog-2001 と同様、詰め込み型でない次元は任意の次元の指定が可能である。
列挙データ型により、数値実体に意味のある名前をつけることが可能となった。列挙型で宣言された変数は、他の列挙型とは cast なしで代入できない。これはパラメータには当てはまらない。Verilog-2005 での列挙型の実装に合わせたためである。
このように、設計者は基となる算術型(この場合 reg [2:0])を指定し、その値に名前を付ける。