
1.3.2 仿真验证平台介绍
通常情况下,在完成相关的RTL设计之后,接下来要做的事情就是对设计功能进行仿真,验证它是否满足我们的设计需求。本节基于ModelSim,搭建了一个简易的仿真验证平台,用于本书中RTL设计的功能仿真。
该平台是基于批处理脚本、do脚本、一键化可运行图形界面或命令形式的仿真机制的。图1.18所示为仿真验证平台的文件组织架构,下面分别对各文件夹和文件的作用进行介绍。

图1.18 仿真验证平台的文件组织架构
(1)sim_log:存放ModelSim仿真过程中产生的文件,包括编译文件、仿真波形文件等。
(2)source_files:存放ModelSim仿真用的数据源。
(3)print_files:存放ModelSim仿真的打印结果。
(4)design_ver.f:存放Verilog设计文件列表。
(5)read_wave.bat:用于打开仿真波形文件的批处理脚本。
(6)run.bat:启动ModelSim仿真的批处理脚本。
(7)run.do:执行ModelSim仿真的相关指令,包括建立库、映射库、编译、启动仿真。
(8)testbench.sv:存放ModelSim仿真的顶层文件。
仿真验证平台的运行机制,如图1.19所示。通过批处理脚本和do脚本文件之间的调用来启动仿真验证平台。运行run.bat时,启动ModelSim对run.do进行编译(包括design_ver.f和testbench.sv)和仿真。

图1.19 仿真验证平台的运行机制
接下来对批处理脚本和do脚本的内容进行介绍。
1.3.2.1 read_wave.bat
关闭显示信息,代码如下所示。

将当前路径作为cmd窗口的标题显示,代码如下所示。

进入sim_log目录,代码如下所示。

打开仿真波形文件vsim.wlf,代码如下所示。

1.3.2.2 run.bat
关闭显示信息,代码如下所示。

将当前路径作为cmd窗口的标题显示,代码如下所示。

删除sim_log目录下的内容,代码如下所示。

删除print_files目录下的内容,代码如下所示。

进入sim_log目录,代码如下所示。

后台模式启动ModelSim软件执行run.do进行仿真,代码如下所示。

终止cmd窗口并退出,代码如下所示。

1.3.2.3 run.do
将ModelSim的配置文件ModelSim.ini拷贝到当前目录,代码如下所示。

建立库目录和映射库,代码如下所示。

编译testbench.sv和design_ver.f,代码如下所示。

启动仿真并使用相关的器件库,代码如下所示。


添加波形;记录波形;设置仿真时间,代码如下所示。

关于仿真验证平台的具体使用流程,请参考第2章2.4.2节仿真流程的详解。