shtaxxx日記

コンピュータアーキテクチャについて研究している研究者の日記や技術紹介

Verilog HDLシミュレーション時に引数を渡す

シミュレーション実行時に引数を渡す

$value$plusargs("arg_description", arg_var)を使う.当該引数がない場合には$value$plusargs()は0を返す.

テストコード (test.v)

ARG0とARG1が引数名,var_aとvar_bが実際に引数が渡される変数.

module test;
  reg [7:0] var_a;
  reg [7:0] var_b;
  initial begin
    if(! $value$plusargs("ARG0=%d", var_a)) var_a = 4;
    if(! $value$plusargs("ARG1=%d", var_b)) var_b = 8;
    $display("var_a=%d", var_a);
    $display("var_b=%d", var_b);
    $finish;
  end
endmodule
実行結果
$ iverilog -o test.vvp test.v

$ vvp test.vvp
var_a=  4
var_b=  8

$ vvp test.vvp +ARG0=10
var_a= 10
var_b=  8