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

Modelsim do文件和批处理文件的使用

vlib work

#在当前目录下建立一个work目录,注意不要直接在windows中新建一个work的文件夹,因为用操作系统建立的work文件夹并没有ModelSim SE自动生成的_info文件

vmap work work

#该命令的作用是将目前的逻辑工作库work和实际工作库work映射对应。这一步我好像不写 仿真也能跑出来 这里不是很理解

vlog jishuqi.v

Modelsim do文件和批处理文件的使用

#编译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 do文件和批处理文件的使用

批处理文件

新建一个modelsim_run.bat的文件创建方法和do文件类似,注意批处理文件的后缀为.bat

Modelsim do文件和批处理文件的使用

其实里面的modelsim -do sim.do 这句才是关键,其他都可以不要,网上看到也有写vsim -do sim.do, 但是我试了一下会报错,如下所示:

Modelsim do文件和批处理文件的使用

最后仿真

现在可以进行仿真了,现在johnson文件夹里面有三个文件,我们只需要双击modelsim_run.bat文件即可

Modelsim do文件和批处理文件的使用

双击modelsim_run.bat

Modelsim do文件和批处理文件的使用

Modelsim do文件和批处理文件的使用

Modelsim do文件和批处理文件的使用