Systemverilog

スポンサーリンク
Systemverilog

【>>>/<<<】算術シフト演算子とシフト演算子 Verilog

はじめにVerilogにはシフト演算子「>>/<<」(ShiftOperator)と算術シフト演算子「>>>/<<<」(ArithmeticShiftOperator)があります。使い方シフト演算子シフト演算子は左シフト「<<」、右シフト「...
Systemverilog

【default_nettype】暗黙的なWire宣言 Verilog

はじめにVerilogでは1ビットの信号は宣言しなくてもWireと認識されます。それは、default_nettypeというDirectiveのデフォルト値がWireだからです。moduletop;assigna=1;//エラーにならない。...
Systemverilog

Priority/Unique/Unique0の動作確認 SystemVerilog

はじめにPriority,Unique,Unique0というものがあると聞いて、動作確認してみました。使い方if/caseの前に付けることが可能です。priorityif(<条件1>)<式1>elseif(<条件2>)<式2>elseif(...
Systemverilog

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

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

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

はじめにFPGA開発では基板上で信号がPullup/Pulldownされている信号があります。基板上でPullup/Pulldownされているということは、DUTには表現されません。シミュレーションでは注意が必要で、テストベンチ側でPull...
Systemverilog

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

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

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

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

UVM TPRGEDが出た uvm_warning

現象同じAgentを継承して別々なEnvを作成してそのEnvをテストベンチに組み込むとTPRGEDのWarningが出ますtop.svpackagepkg1;`include"uvm_macros.svh"importuvm_pkg::*;...
Systemverilog

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

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

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

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