Systemverilog

スポンサーリンク
Systemverilog

単純な条件式はif文より3項演算子を使った方がよいという話 Verilog

はじめに RTLで、単純な条件式はif文ではなく3項演算子を使用した方がよいという話をどこかで聞いたがなぜだかわからなかったため、調べてみました。 3項演算子の方が実機での動作に近いから、ということかなと思いました。 i...
Systemverilog

Pullup/Pulldown 実機とシミュレーションの違い

はじめに FPGA開発では基板上で信号がPullup/Pulldownされている信号があります。 基板上でPullup/Pulldownされているということは、DUTには表現されません。 シミュレーションでは注意が必要で...
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 <変数名>; 下記のように使用します。 ...
スポンサーリンク
タイトルとURLをコピーしました