Modelsim仿真技巧

作者:肖佳 ,诺瓦科技 FPGA算法实现实验室

1 利用.do脚本建立仿真环境
1.1 要用到的仿真代码介绍
.do脚本实际为TCL脚本,其使用的语法自然就是TCL语法了。有兴趣的可以自学下TCL脚本语言。
现假设我们已经完成了代码的编写,即.v文件已经编写完成,开始进行功能仿真。
将要演示的代码的组织结构如图 11所示。
目录 说明
Code/Sim 存放仿真相关的文件
Code/Src 存放设计源文件,其子文件夹为各模块分类
Code/Sim/do 存放仿真用的.do文件
Code/Sim/Doc 存放用于仿真的输入数据,此例为图片数据
Code/Sim/tb_src 存放testbench文件

图 11 代码的组织结构

图 11 代码的组织结构

1.2 编写.do脚本文件
接下来就一起来编写仿真用的.do文件吧,编写完成的.do文件如图 12所示。图中每一句都进行了详细的注释说明,大家在刚开始使用时,可以直接照抄,在使用中不断的理解.do文件的含义。
注意:
1. 在使用时注意根据自己工程的testbench的名字,修改图中红色方框的部分即可。
2. 图中黄色方框内的glbl.v为vivado安装目录下的文件,其在vivado安装目录的位置为:D:\Xilinx\Vivado\2017.3\data\verilog\src\glbl.v。为了仿真方便和移植方便,我们调用了一个环境变量XILINX_VIVADO,这个环境变量是自己添加到windows系统当中的,如图 13所示(环境变量的添加方法,找度娘);
3. 关于compile rtl source file部分,在索引.v文件时,可以使用*通配符,直接compile文件夹下的所有.v文件;
4. 关于紫色方框中的wave_HQ4KScaler.do,可以借助modelsim的GUI添加,然后ctrl+S保存成wave_HQ4KScaler.do文件,这样是最方便的,当然也可以自己按照TCL语法自己写。

图 12 仿真.do文件内容截图

图 12 仿真.do文件内容截图

图 13 XILINX_VIVADO环境变量截图

图 13 XILINX_VIVADO环境变量截图

1.3 开始仿真
1. 打开modelsim;

2. 更改modelsim的工作目录到Code/Sim
一般我会把此条修改工作目录的命令放到一个txt文件当中,用起来就很方便了。
从windows的资源管理器里找到Code/Sim;

3. 复制地址栏中的地址到notepad++当中,并将“\”替换为“/”(可以选中\ 后使用快捷键Ctrl+H),再加上cd命令即可

4. 然后将上述命令ctrl+C到modelsim当中的命令窗口中,并按回车;

5. 在命令窗口中输入do do/ HQ4Kto4KScaler.do,一般不用输入那么多字符,当你输入到do do/时后面的就会提示出来了,选中直接回车就O了。

6. 默默的待仿真结果就OK了,从下图可以看到,通过脚本,我们想要查看的信号也都添加好了,不仅如此还对信号进行了分组。

2 仿真时信号查看技巧
2.1 信号归类
信号分组及组内加入divider
选中要归为`一类的信号,右击选择group,并为此group取个有意义的名字。

2.2 状态机状态的编码
将状态机的状态数字码转换为有意义的能提示自己是什么状态的字符串;
脚本:

效果图: