Systemverilog

スポンサーリンク
Systemverilog

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

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

inout ポートはwireでつなぐ SystemVerilog

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

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

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

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

コマンドの説明 uvm_comparerはuvm_objectのMethodであるcompareの設定を変更できます。 使い方 uvm_object ob1; uvm_object ob2; uvm_comparer comp; initi...
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>...
Systemverilog

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

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

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

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

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

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