Systemverilog

スポンサーリンク
Systemverilog

UVM print_topology()でuvm_componentの階層を表示する

使い方 uvm_top.print_topology(); でuvm_componentの階層をログに出力します。 サンプルコード top.sv module top; `include "...
Systemverilog

UVM uvm_config_dbでsetした値をログに表示する

uvm_config_db#()::dump(); 完結に、uvm_config_db#(<type>)::set()で登録した値は uvm_config_db#()::dump(); でログに表示されます。&lt...
Systemverilog

UVM TPRGEDが出た uvm_warning

現象 同じAgentを継承して別々なEnvを作成して そのEnvをテストベンチに組み込むとTPRGEDのWarningが出ます top.sv package pkg1; `include &quot...
Systemverilog

distの重みづけの動作確認 SystemVerilog

distでrand変数に重みづけする distでrand変数に重みづけができます。 動作確認してみます。 「:=」の動作確認 0:10%, 1:30%, 2:30%, 4:30% の出現確率で10,000回実...
Systemverilog

SystemVerilog constraintでrand変数に制約をつける

はじめに SytemVerilogのclassの変数はrandを付けることで乱数にすることができます。 rand変数はrandomizeメソッドで乱数が生成されます。 このとき、constraintで生成される乱数に制約...
Systemverilog

ノンブロッキングとブロッキングでFFの動作が変わる話 SystemVerilog

はじめに FFを作るとき、ノンブロッキング代入とブロッキング代入で多段FFの動作が変わります。 入力を2段のFFで受けて出力する回路でその動作を見ていきます。 ノンブロッキング nonblocking.sv ...
Systemverilog

SystemVerilog Interfaceで回路を作成する 内部回路

はじめに Interfaceブロックの中に回路を作成してみます。 サンプルコード dut_if.sv Interfaceです。validがHighのときのdinが有効データになります。 interfa...
Systemverilog

SystemVerilog Event変数を使ってみる ->

はじめに あるシーケンシャルブロックから別なメソッド・シーケンシャルブロックを起動したいときにevent変数が便利です。 宣言する方法は以下です。 event <変数名>; 下記のように使用します。 ...
Systemverilog

SystemVerilog Interfaceを使用して回路を作成する modport

はじめに Interfaceのmodportの機能を使用して回路を作成してみます。 バスのプロトコルは、validがHighのとき、スレーブに設定したアドレスとaddrが等しいときのdataが有効になります。 サンプルコ...
Systemverilog

SystemVerilog randとrandcの違い クラスのランダム変数

rand/randcの違い rand 変数の範囲すべてを網羅する前に同じ値が返ることもある。(一様分布) randc 変数の範囲すべてを網羅するまで同じ値は返らない。(ランダム循環) サンプルコード m...
スポンサーリンク
タイトルとURLをコピーしました