新たなデータ型
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/10/12 07:43 UTC 版)
「SystemVerilog」の記事における「新たなデータ型」の解説
多次元詰め込み配列により、Verilog の "registers" と "memories" を統合拡張した: reg [1:0][2:0] my_var[32]; 本来の Verilog では変数名の左には一次元の宣言しかできなかった。SystemVerilog は任意の詰め込み次元を指定可能である。詰め込み配列型の変数には整数算術実体を 1:1 でマップする。上記の例では、my_var の各要素は6ビットの整数を表す。名前の右側にある次元(例では32)は詰め込み型でない次元である。Verilog-2001 と同様、詰め込み型でない次元は任意の次元の指定が可能である。 列挙データ型により、数値実体に意味のある名前をつけることが可能となった。列挙型で宣言された変数は、他の列挙型とは cast なしで代入できない。これはパラメータには当てはまらない。Verilog-2005 での列挙型の実装に合わせたためである。 typedef enum reg [2:0] { RED, GREEN, BLUE, CYAN, MAGENTA, YELLOW} color_t;color_t my_color = GREEN; このように、設計者は基となる算術型(この場合 reg [2:0])を指定し、その値に名前を付ける。メタ値 X と Z を使うこともでき、不正状態を表すのに使う。 新しい整数型: SystemVerilog では byte、shortint、int、longint という二値統合型を定義しており、それぞれ8ビット/16ビット/32ビット/64ビットである。bit 型は不定長の二値型であり、reg と似たような働きをする。二値型では reg では使えるメタ値 X と Z が使えない。このため、シミュレーションの高速化を期待する。Verilog-2001 にもある integer と time はそのまま四値が使える。 浮動小数点型: real (64ビット)に加えて、shortreal (32ビット)を追加。 構造体と共用体はC言語と同様の働きをする。SystemVerilog ではこれらに詰め込み型属性を導入し、詰め込み型配列のビット列に構造体や共用体を 1:1 で対応させることができる: typedef struct packed { bit [10:0] expo; bit sign; bit [51:0] mant;} FP;FP zero = 64'b0;
※この「新たなデータ型」の解説は、「SystemVerilog」の解説の一部です。
「新たなデータ型」を含む「SystemVerilog」の記事については、「SystemVerilog」の概要を参照ください。
新たなデータ型
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/10/12 07:43 UTC 版)
「SystemVerilog」の記事における「新たなデータ型」の解説
string データ型は任意長のテキスト文字列を表す。 設計で使われる静的配列に加え、SystemVerilog は動的配列、連想配列、キューを提供する: int da[]; // 動的配列int da[string]; // 文字列をインデックスとする連想配列int da[$]; // キューinitial begin da = new[16]; // 16要素を生成end 動的配列は非詰め込み型の配列のように働くが、上で示したように動的に生成されなければならない。この配列は必要に応じてサイズを変更できる。連想配列はユーザー指定のキーの型とデータ型による二分探索木のようなものである。キーによる暗黙の順序付けがあり、辞書式順序で読み出すことができる。キューは C++ の STL にある deque 型の機能とほぼ同等のものを提供する。要素の追加や削除がキューの両端から可能である。これらのデータ型は大規模設計で必要となる複雑なデータ型の生成を可能とする。
※この「新たなデータ型」の解説は、「SystemVerilog」の解説の一部です。
「新たなデータ型」を含む「SystemVerilog」の記事については、「SystemVerilog」の概要を参照ください。
- 新たなデータ型のページへのリンク