Systemverilog

スポンサーリンク
Systemverilog

【SystemVerilog】Constrained Randomについて考える

田中太郎 Constrained Randomの考えを使った検証環境のサンプルを作成しました。 本当はclassにrandの変数を定義してconstraintで範囲を決定→randomize()するのですが、 constraintとrand...
Systemverilog

【SystemVerilog】interfaceを使用して回路を作成する

田中太郎 UVMの検証環境ではinterfaceをよく使用します RTLでも使用できるので、サンプルを作成しました 回路仕様 dinにオフセットを3回に分けて加算して出力します in_validが1のときのdinが有効データで、 out_v...
Systemverilog

SystemVerilog|【union】共用体について考える

田中太郎 共用体についてまとめます 使い方 共用体は変数のビットを共用します 以下のように定義します union { <型> <変数名>; <型> <変数名>; } <構造体名>; または、typedefを使用して以下のように定義します t...
Systemverilog

SystemVerilog|【struct】構造体について考える

田中太郎 構造体についてまとめます 使い方 構造体は様々な型を組み合わせて新たな型を作成します 以下のように定義します struct { <型> <変数名>; } <構造体名>; または、typedefを使用して以下のように定義します ty...
Systemverilog

SystemVerilog|動的配列を使用する

田中太郎 動的配列を使ってみます 動的配列とは 配列を作成するとき、要素数は定義時に決定します int data; 動的配列はシミュレーション中に要素数を決定できます data = new; 配列の要素数を所得できます data.size(...
Systemverilog

SystemVerilog|【inside】右辺に左辺が含まれるか

田中太郎 insideの使い方についてまとめます 使い方 <要素>が<要素群>に含まれていれば1、それ以外は0を返す <要素> inside <要素群> サンプルコード sample1.sv module sample; int a; in...
Systemverilog

SystemVerilog|【連想配列】キーで値を参照する配列ついて考える

田中太郎 連想配列(associative array)についてまとめます 連想配列のmethod <key_type>は連想配列のキーの型です method 内容引数戻り値a.num()aの要素数を返すなしinta.exists(<key...
Systemverilog

SystemVerilog|【Queue】キューについて考える

田中太郎 キューのmethod(組み込みfunction/task)についてまとめます Queueのmethod <queue_type>は、定義したキューの型です例)int q = {1, 2, 3, 4}; // 左の場合、<queue...
Systemverilog

SystemVerilog|【enum】列挙型について考える

田中太郎 enumのmethod(組み込みfunction/task)ついてまとめます enumのmethod method 内容引数戻り値a.first()aを定義するenumの最初の値を返すなしenuma.last()aを定義するenu...
Systemverilog

SystemVerilog|【string】文字列操作について考える

田中太郎 stringのmethod(組み込みfunction/task) についてまとめます string型のmethod method 内容引数戻り値a.len()aの長さを返すなしinta.putc(<位置>, <文字>)aの<位置>...
スポンサーリンク