Systemverilog class内のtask/functionはautomaticになる SystemVerilog はじめにtask/functionはデフォルトでstaticで宣言されるので注意が必要です。しかし、LRM 11.9よりclass内のtask/functionはautomaticで宣言されます。解説sample1.svまずは、普通にtas... 2022.11.21 Systemverilog
Systemverilog inout ポートはwireでつなぐ SystemVerilog はじめにVerilogは信号をその用途によってregかwireで宣言する必要があります。代わってSystemVerilogにはlogicという便利な宣言方法があります。Verilogでreg/wireで宣言していた信号は「ほとんど」logi... 2022.11.16 Systemverilog
Systemverilog $display RTLの階層を表示する Verilog はじめに$displayなどで変数の値をログに表示することができますが、その他にも色々な値を表示できます。Format %mを使用することで、現在の階層を取得することができます。使い方$display("%m");サンプルコードmodule... 2022.11.14 Systemverilog
Systemverilog uvm_comparer uvm_object::compareの設定を変更する UVM コマンドの説明uvm_comparerはuvm_objectのMethodであるcompareの設定を変更できます。使い方 uvm_object ob1; uvm_object ob2; uvm_comparer comp; initial... 2022.10.24 SystemverilogUVM
Systemverilog 【>>>/<<<】算術シフト演算子とシフト演算子 Verilog はじめにVerilogにはシフト演算子「>>/<<」(Shift Operator)と算術シフト演算子「>>>/<<<」(Arithmetic Shift Operator)があります。使い方シフト演算子シフト演算子は左シフト「<<」、右シ... 2022.09.12 Systemverilog
Systemverilog 【default_nettype】暗黙的なWire宣言 Verilog はじめにVerilogでは1ビットの信号は宣言しなくてもWireと認識されます。それは、default_nettype というDirectiveのデフォルト値がWireだからです。module top; assign a = 1; // エ... 2022.09.07 Systemverilog
Systemverilog Priority/Unique/Unique0の動作確認 SystemVerilog はじめにPriority, Unique, Unique0というものがあると聞いて、動作確認してみました。使い方if/caseの前に付けることが可能です。priority if (<条件1>) <式1>else if (<条件2>) <式2... 2022.08.31 Systemverilog
Systemverilog 単純な条件式はif文より3項演算子を使った方がよいという話 Verilog はじめにRTLで、単純な条件式はif文ではなく3項演算子を使用した方がよいという話をどこかで聞いたがなぜだかわからなかったため、調べてみました。3項演算子の方が実機での動作に近いから、ということかなと思いました。ifの条件式と3項演算子if... 2022.08.20 Systemverilog
Systemverilog Pullup/Pulldown 実機とシミュレーションの違い はじめにFPGA開発では基板上で信号がPullup/Pulldownされている信号があります。基板上でPullup/Pulldownされているということは、DUTには表現されません。シミュレーションでは注意が必要で、テストベンチ側でPull... 2022.08.19 Systemverilog
Systemverilog UVM print_topology()でuvm_componentの階層を表示する 使い方uvm_top.print_topology();でuvm_componentの階層をログに出力します。サンプルコードtop.svmodule top; `include "uvm_macros.svh" import uvm_pkg... 2022.08.13 SystemverilogUVM