modelsim自动化独立仿真
关键字:
do文件的写法,启动仿真,独立仿真,信号添加
所需文件及其作用:
为简化流程,一共需要三个文件,sim.bat文件,sim.do文件和wave.do文件;
sim.bat:windows批处理文件,用于启动modelsim,然后运行sim.do文件;
modelsim -do sim.do
注意:modelsim在安装的时候需要加入到环境变量。
sim.do: 自动化仿真脚本,语法是TCL,负责新建库,映射库,编译源文件,添加波形,启动仿真......
cd {D:/xxx/FPGA Demo/Xilinx FPGA/DDR_TEST/sim/tb_ddr_rw_user} quit -sim .main clear vlib ./modelsim_lib vlib ./modelsim_lib/work vlib ./modelsim_lib/msim vlib ./modelsim_lib/msim/xil_defaultlib vmap xil_defaultlib ./modelsim_lib/msim/xil_defaultlib set SOURCE_HOME {D:/xxx/FPGA Demo/Xilinx FPGA/DDR_TEST} vcom -64 -93 -work xil_defaultlib $SOURCE_HOME/src/ip/ddr_mult/sim/ddr_mult.vhd vlog -64 -incr -work xil_defaultlib +incdir+$SOURCE_HOME/src/ip/ddr4_0/ip_1/rtl/map +incdir+$SOURCE_HOME/src/ip/ddr4_0/rtl/ip_top +incdir+$SOURCE_HOME/src/ip/ddr4_0/rtl/cal \ $SOURCE_HOME/sim/tb_ddr_rw_user/tb_ddr_rw_user.v \ $SOURCE_HOME/sim/tb_ddr_rw_user/ddr4_mem.v \ $SOURCE_HOME/src/ddr_rw_user/ddr_rw_test.v \ $SOURCE_HOME/src/ddr_rw_user/ddr_rw_user.v \ $SOURCE_HOME/src/ip/ddr2data/sim/ddr2data.v \ $SOURCE_HOME/src/ip/ddr2data/simulation/blk_mem_gen_v8_4.v \ $SOURCE_HOME/src/ip/data2ddr/sim/data2ddr.v \ $SOURCE_HOME/src/ip/data2ddr/simulation/blk_mem_gen_v8_4.v \ # compile glbl module # vlog -work xil_defaultlib "glbl.v" vsim -t ns -voptargs=+acc xil_defaultlib.tb_ddr_rw_user set NumericStdNoWarnings 1 set StdArithNoWarnings 1 do {wave.do} view wave view structure view signals run 800 ms
wave.do: 仿真结果的波形信号显示等设置,包括信号名,颜色,进制等信息,最好是先仿真一遍设置好之后直接用modelsim保存;
onerror {resume} quietly WaveActivateNextPane {} 0 add wave -divider {tb_ddr_rw_user} add wave -noupdate /tb_ddr_rw_user/clk add wave -noupdate /tb_ddr_rw_user/rst add wave -noupdate /tb_ddr_rw_user/clk_153p6 add wave -noupdate /tb_ddr_rw_user/rst_153p6 add wave -noupdate /tb_ddr_rw_user/clk_245p76 add wave -noupdate /tb_ddr_rw_user/rst_245p76 add wave -noupdate /tb_ddr_rw_user/app_rdy add wave -noupdate /tb_ddr_rw_user/app_en add wave -noupdate /tb_ddr_rw_user/app_cmd add wave -noupdate /tb_ddr_rw_user/app_addr add wave -noupdate /tb_ddr_rw_user/app_wdf_wren add wave -noupdate /tb_ddr_rw_user/app_wdf_end add wave -noupdate /tb_ddr_rw_user/app_wdf_data add wave -noupdate /tb_ddr_rw_user/app_wdf_mask add wave -noupdate /tb_ddr_rw_user/app_wdf_rdy add wave -noupdate /tb_ddr_rw_user/app_rd_data_valid add wave -noupdate /tb_ddr_rw_user/app_rd_data_end add wave -noupdate /tb_ddr_rw_user/app_rd_data add wave -noupdate /tb_ddr_rw_user/init_calib_complete ... ... ... TreeUpdate [SetDefaultTree] WaveRestoreCursors {{Cursor 1} {92268318000 ps} 0} quietly wave cursor active 1 configure wave -namecolwidth 183 configure wave -valuecolwidth 100 configure wave -justifyvalue left configure wave -signalnamewidth 1 configure wave -snapdistance 10 configure wave -datasetprefix 0 configure wave -rowmargin 4 configure wave -childrowmargin 2 configure wave -gridoffset 0 configure wave -gridperiod 1 configure wave -griddelta 40 configure wave -timeline 0 configure wave -timelineunits ns update WaveRestoreZoom {0 ps} {189070505374 ps}
modelsim仿真完成,波形参数设置好之后,直接ctrl+S快捷键保存,或者使用File -> Save Format进行保存;