quit -f/-force/-sim 该命令分别是退出ModelSim(-f/-force)和退出仿真(-sim)。
ModelSim SE6..2b还有一个很好用的功能。就是可以看整个文件所形成的数据流程,各个模块之间的逻辑联系。具体方法是在仿真后执行命令 view datalflow 就可以打开dataflow文件,在dataflow的窗口菜单中点击add中的view all nets就可以观察到各个模块之间的逻辑联系,模块一般都为initial模块、always模块、assign模块等等。点击中一个模块,则这个模块变为红色。这时候在view菜单下点击show wave就可以在窗口下方弹出wave窗口,不同的是这个wave窗口所显示的信号变量仅为点击中的模块所包括的信号变量,这时候也可以点击仿真run –all小图标来仿真有关这个模块的输入输出关系。
以上命令,就是ModelSim SE仿真程序所用到的基本命令。实际上都可以在窗口菜单中找到,效果是一样的,可能大家觉得每次用鼠标点击菜单方式更快一点,但是在ModelSim SE中开可以执行一种批处理文件,就是file.do文件,相当于DOS中的.bat文件。你可以用批处理方式来使你仿真简单化,具体做法为,将你所要执行的命令编辑在一起,以上面所讲为例,我可以编辑一个camera.do文件,文件内容如下:
vlib work // 建库
vmap work work // 映射
vlog camer.v camera_tb.v // 编译
vsim camera_tb // 仿真(模块名称)
add wave/camera_tb/ * // 将camera_tb下的所有信号变量加入到wave窗口中,注意”*”前必须有空格
run 2000 // 或者用run –all等。
view dataflow // 用navigate nets观察dataflow,不想观察就可以不加这条指令
将上述内容保存后,每次用命令do camera.do 就可以自动执行想要的仿真动作。
另外,对tcl命令作一个小小的整理:
1、编译(它们的效果是等效的):
vlog div.v div_tb.v
vlog -work work div.v div_tb.v
或者将它们分开进行单独编译
2、仿真(效果等效):
vsim div_tb
vsim -lib work div_tb
vsim work.div_tb
sim -L D:/Modelsim/Installfiles/altera/altera_mf work.videoin_tb
3、添加波形
add wave/div_tb/ *
add wave sim:/div_tb/* //*前面没有空格
也可以单独添加波形(可以将它们直接写成一个wave.do文件,以便直接执行do wave.do就可以完成各种波形的编辑设置):
add wave -divider Input
add wave sim:/divider_tb/rst_n
add wave sim:/divider_tb/clk_in
add wave -divider Ouput
add wave sim:/divider_tb/clk_out
#配置wave相关命令
WaveRestoreCursors {{Cursors 1} {200ns} 0} {{Cursors 2} {400ns} 0}
configure wave -rowmargin 4
configure wave -childrowmargin 2
configure wave -namecolwidth 150
configure wave -valuecolwidth 100
configure wave -signalnamewidth 0
configure wave -justifyvalue left
configure wave -snapdistance 10
configure wave -datasetprefix 0
configure wave -gridoffset 0
configure wave -gridperiod 1
configure wave -griddelta 40
configure wave -timeline 0
update
WaveRestoreZoom {0 ns} {1000 ns}
上面就是一些常用的Modelsim的tcl命令,至于其它的tcl命令有待后续补充。