Systemverilog

スポンサーリンク
Systemverilog

class内のtask/functionはautomaticになる SystemVerilog

はじめにtask/functionはデフォルトでstaticで宣言されるので注意が必要です。しかし、LRM 11.9よりclass内のtask/functionはautomaticで宣言されます。解説sample1.svまずは、普通にtas...
Systemverilog

inout ポートはwireでつなぐ SystemVerilog

はじめにVerilogは信号をその用途によってregかwireで宣言する必要があります。代わってSystemVerilogにはlogicという便利な宣言方法があります。Verilogでreg/wireで宣言していた信号は「ほとんど」logi...
Systemverilog

$display RTLの階層を表示する Verilog

はじめに$displayなどで変数の値をログに表示することができますが、その他にも色々な値を表示できます。Format %mを使用することで、現在の階層を取得することができます。使い方$display("%m");サンプルコードmodule...
Systemverilog

uvm_comparer uvm_object::compareの設定を変更する UVM

コマンドの説明uvm_comparerはuvm_objectのMethodであるcompareの設定を変更できます。使い方 uvm_object ob1; uvm_object ob2; uvm_comparer comp; initial...
Systemverilog

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

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

【default_nettype】暗黙的なWire宣言 Verilog

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

Priority/Unique/Unique0の動作確認 SystemVerilog

はじめにPriority, Unique, Unique0というものがあると聞いて、動作確認してみました。使い方if/caseの前に付けることが可能です。priority if (<条件1>) <式1>else if (<条件2>) <式2...
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.svmodule top; `include "uvm_macros.svh" import uvm_pkg...
スポンサーリンク