举例的工程是一个加法器,待测试功能模块是add.v,测试激励是tb_add.v,do文件是tb.do
下面直接附上主要步骤:
(1)首先新建文件夹,如sim_add,在该文件夹下再新建3个文件夹,分别是:sim、tb、src
sim:modelsim的工程文件存放,如tb.do
tb:测试激励文件存放,如tb_add.v
src:待测试的模块代码(*.v、仿真库文件.v、IP模块文件.v),如add.v
其中如果工程里带有IP的设计,则src文件夹里还需要仿真库文件和IP模块文件
接着编写do文件,存放在sim文件夹下,一般do文件都写些如下的操作:
vlib work vmap work work vlog -novopt -incr -work work "../tb/tb_add.v" vlog -novopt -incr -work work "../src/add.v" vsim -novopt work.tb_add add wave -noupdate /tb_add/clk add wave -noupdate /tb_add/rst_n add wave -noupdate -hex /tb_add/a1 add wave -noupdate -hex /tb_add/a2 add wave -noupdate -hex /tb_add/out run -all
以后进行通用时,需要修改的几句主要是以下几句:
编译相关文件:vlog -novopt -incr -work work "../tb/tb_add.v" vlog -novopt -incr -work work "../src/add.v"
仿真测试激励:vsim -novopt work.tb_add
添加信号波形:add wave -noupdate /tb_add/clk add wave -noupdate /tb_add/rst_n
add wave -noupdate -hex /tb_add/a1 add wave -noupdate -hex /tb_add/a2
add wave -noupdate -hex /tb_add/out
可以添加自己需要观察的波形信号,这个很方便,省去了信号查找的麻烦
最后打开modelsim,在File/Change Directory下指定仿真工程的文件夹位置,如x:/sim_add/sim下即可。
或者在Tcl框中直接输入cd命令,如下图所示:
接着在Tcl框里输入do *.do即可进行仿真