基于modelsim和debussy的批处理仿真
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于modelsim和debussy的批处理仿真
本文将会叙述采用批处理的方法进行modelsim结合debussy仿真调试。目的在于提高仿真效率。该流程只适用于FPGA的前仿真,使用verilog文件以及测试文件。
如此操作有以下几个优点:
1、虽然开始的时候需要稍作准备,但等你完成了一次仿真后,以后只需要略微
修改一下就可以直接应用到其他工程里边去。相对于采用用modelsim的界面操作,省去了很多例如创建工程、添加仿真文件、进行编译、进行仿真等等节省了宝贵的工作时间。当然可以提高工作效率。
2、文件管理非常清楚。所有的verilog文件都放在一个文件夹,所有仿真需要的
文件以及仿真结果都放在另外一个文件里边,而且仿真后的文件也相对于使用modelsim界面操作仿真结果要少。
3、还有就是,因为没有界面操作,仿真速度会快很多,特别是采用modelsim进
行稍微大的仿真的时候,这时候采用这种方法的优势就更加明显了。
以下是进行仿真前的准备工作
第一步:安装modelsim、debussy软件以及编译相应的仿真库,如何安装以及破解,网络上有很多的资料说明,在这里就不详细说了。对于仿真库的编译,也有很多的方法,可以参考文章《modelsim添加仿真库方法》by Craftor。许多工程师也在自己的博客写过或转载过相似的库编译的方法。
这些都是我进行批处理仿真前已经做好了。
我的软件都是装在D盘分别是:D:\modeltech_6.5e和D:\Novas\Debussy
第二步:创建do文件。
如下(行号不需要):
1、vlib work
2、vlog-f vfile.f-incr
3、vsim-L xilinxcorelib_ver-L unisims_ver-L simprims_ver-L uni9000_ver-L unisims_ver-pli novas_fli.dll-lib work tuner_iic_tb
4、run40ms
5、exit
然后保存为sim.do
解析:1表示创建仿真工作库,也就是将你编译文件之后的文件存在这个work文件夹下。
2表示编译vfile.f文件里边的文件,也就是将你要编译的的文件以及仿真文件添加到该文件里边去,下文会有说明。
3调用仿真库,因为我是用了xilinx的器件,所以要添加相应的ip仿真库,在编写testbench的时候,我们通过加入函数产生fsdb文件,例如:
initial
begin
$fsdbDumpfile("top.fsdb");
$fsdbDumpvars(0,top)
End
说明:这里边有两个函数fsdbDumpfile以及fsdbDumpvars
所以,我们还需要一些操作:也就是将debussy文件里边的novas_fli.dll文件拷贝到modelsim 的win32目录下例如我的目录是:D:\modeltech_6.5e\win32然后在modelsim目录下的ini 文件修改一下,也就是将veriuser的路径值指向该文件
Veriuser=D:\Novas\Debussy\share\PLI\modelsim_fli54\WINNT
在3里边的-pli novas_fli.dll就是因为有这两个函数,需要debussy来解析一下(具体机理也没搞明白),如果不添加这句话就会出现警告说,这个函数没有定义,也就是无法产生fsdb 文件。
还有就是,在最后要添加上自己testbench的module名。表示这个是顶层。
4表示仿真运行40ms,其实这个仿真时间也可以在testbench里边表示。
小结:因为我们需要利用modelsim来进行仿真,然后产生fsdb文件,利用debussy进行观察仿真结果,所以,在这一步我们需要较繁琐的操作。
总的来说,也就是将debussy的一个dll文件拷贝到modelsim的目录下,然后修改一下ini 里边的路径,对应的文件夹分别是:
Modelsim D:\modeltech_6.5e\win32
Debussy D:\Novas\Debussy\share\PLI\modelsim_fli54\WINNT
然后修改modelsim.ini文件,Veriuser=D:\Novas\Debussy\share\PLI\modelsim_fli54\WINNT 因为我之前老是产生fsdb文件的时候出错,所以有点啰嗦。可以试一下,是不是不用修改ini文件,或者不用拷贝dll文件,因为我觉得有点重复了。
注意:在debussy里边,可能对应有多个novas_pli.dll,大家注意一下哪个是你modelsim的版本,因为可能debussy下边会有好几个novas_pli.dll文件。
第三步:创建vfile.f文件
该文件主要是一个列表,就是要将你需要仿真时用到的文件添加进来。如我的:
../rtl/tb/uart_model.v
../rtl/tb/I2Cslave.v
../rtl/uart_intf/wb2ibus.v
../rtl/uart_intf/wb_arbiter.v
以上内容表示文件保存在该目录的上一级目录的rtl文件夹下。
然后保存为vfile.f,其实其他文件名字也可以,只要在第二步的时候,对应你的名称就可以
了。注意:一定要将testbench写在第一个位置,因为涉及到仿真的精度,如果你第一个文件没有写明仿真进度的话,后边编译会报错。好像只要有`timescale这个说明就可以了。
同时,不用我多说了,当然是在创建rtl文件夹,将你所有的rtl文件放在rtl该文件夹下。
第四步:创建bat文件
这一步很简单,就是要启动modelsim的仿真程序,执行第二步的sim.do文件
例如:
D:\modeltech_6.5e\win32\vsim.exe-c-do sim.do
我一般保存为modelsim.bat。
然后,我们可以同样的道理,也通过这种方法调用debussy软件,直接打开仿真结果
D:\Novas\Debussy\bin\Debussy.exe-f E:\modelsim\ncsim\vfile.f
以上是我的debussy.bat文件
表示,启动debussy软件,并且打开文件vfile.f里边的所有文件。
现在准备工作已经做完,可以进行仿真了。
我们可以重新了解一下思路:
前边的内容也就是为了创建一下几个文件:
调用的过程就是:通过modelsim.bat调用modelsim仿真软件进行do里边的仿真操作,相当于直接在modelsim界面里边操作一样的,只不过省去了采用界面操作的许多繁琐的操作。那当modelsim需要对仿真文件进行编译,所以需要vfile.f文件说明你的verilog文件放在了哪里。在这一步结束后,我们可以产生fsdb文件,然后使用debussy.bat文件打开所有的verilog 文件,导入fsdb文件。
下面,我们启动仿真:
首先,直接点击modelsim.bat
出现一下结果