【RTLソースコードをリコンパイルしないでパラメータを変更しシミュレーションする方法】
moduleのパラメータ引数をvsim実行時に渡す
・テストベンチ(TB.v)
`timescale 1ps / 1ps
module TB #(
parameter argments_param = 0
);
parameter global_param = 1;
localparam local_param = 2;
initial begin
$display("[DEBUG]argments_mode:%d",argments_param);
$display("[DEBUG]global_mode :%d",global_param );
$display("[DEBUG]local_mode :%d",local_param );
end
enddmodule
・vsim実行
$vlog -work work TB.v $vsim -c -g argments_param=111 -g global_param=222 -g local_param=333 work.TB -do "run -all; quit"・シミュレーション結果
# [DEBUG]argments_mode: 111
# [DEBUG]global_mode : 1
# [DEBUG]local_mode : 2
【コンパイル時にdefineを変更する方法】
・フォルダ構造
├─TB.v └─pattern ├─include_file1.v └─include_file2.v
・テストベンチ
・TB.v `timescale 1ps / 1ps `define inc_file "pattern/include_file1.v" module TB; `include `inc_file endmodule ・include_file1.v initial $display("[DEBUG]Include file:1."); ・include_file2.v initial $display("[DEBUG]Include file:2.");
・実行
$vlog TB.v +incdir+pattern +define+inc_file=\"include_file2.v\" $vsim -c work.TB -do "run -all; quit"
・シミュレーション結果
$[DEBUG]Include file:2.
0 件のコメント:
コメントを投稿