Modelsim do文件和批处理文件的使用
Modelsim do文件和批处理文件的使用
环境: windows10
工具: Modelsim 10.4
例子: johnson计数器
do文件
do文件是一次执行多条命令的脚本,这个脚本可以像带有相关参数的一系列ModelSim命令一样简单,或者是带有变量,执行条件等等的Tcl程序。可在GUI里或系统命令提示符后执行Do文件。
如何创建一个do文件,方法有很多,最简单的就是用记事本新建一个文本文件,然后把后缀名改成 XX.do文件即可,我们这里新建sim.do, 然后用notepad打开,在往里面写东西之前我们首先要了解一下仿真的步骤
下面简单讲讲仿真的步骤。首先我们要对一个设计进行仿真呢,我们一般需要进行以下几个步骤:
①创建一个工程和工程库;
②加载设计文件(包括你编写好的testbench);
③编译源文件;
④运行仿真,并查看结果;
⑤最后进行工程调试
而do文件,就是把上述的步骤①—④用tcl脚本语言来编写出来,让Modelsim来运行该do文件宏命令,并自动执行仿真的步骤。这种好处也许在小设计中没怎么表现,但是如果在一个大的工程中,常常需要对一个设计单元进行反复的调试和仿真,但是仿真时的设置是不变的,这时如果使用了do文件,把仿真中使用到的命令都保存下来了,就可以节省大量的人力,提高了工作效率
打开刚才新建sim.do文件,填写内容如下:
cd C:/Users/54461/Desktop/johnson
#首先我们要切目录,这里为新建的johnson文件夹 里面有jishuqi.v
vlib work
#在当前目录下建立一个work目录,注意不要直接在windows中新建一个work的文件夹,因为用操作系统建立的work文件夹并没有ModelSim SE自动生成的_info文件
vmap work work
#该命令的作用是将目前的逻辑工作库work和实际工作库work映射对应。这一步我好像不写 仿真也能跑出来 这里不是很理解
vlog jishuqi.v
#编译jishuqi.v模块 这里需要注意一下,johnson 模块和 test 模块都写在了一个jishuqi.v里面,如果是分开写,必须先编译johnson模块,再编译test模块
vsim -novopt work.test -t 1ns
#仿真work库中名为counter_tb的模块,最小时间单位为1ns
add wave -position insertpoint sim:/test/johnson/*
#该命令的作用是将模块johnson下所有的信号变量加到波形文件中去
run 1000
#该命令的作用是仿真 1000ns
sim.do代码 # do文件的注释是由#开始的,但不可以在代码行后面添加,只能另起一行。
cd C:/Users/54461/Desktop/johnson
vlib work
vmap work work
vlog jishuqi.v
vsim -novopt work.test -t 1ns
add wave -position insertpoint sim:/test/johnson/*
run 1000
批处理文件
新建一个modelsim_run.bat的文件创建方法和do文件类似,注意批处理文件的后缀为.bat
其实里面的modelsim -do sim.do 这句才是关键,其他都可以不要,网上看到也有写vsim -do sim.do, 但是我试了一下会报错,如下所示:
最后仿真
现在可以进行仿真了,现在johnson文件夹里面有三个文件,我们只需要双击modelsim_run.bat文件即可
双击modelsim_run.bat