2018年12月23日日曜日

[ModelSim]実行メモ

ModelSim実行メモ


【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 件のコメント: