博主一直致力寻找高效的工作方式,所以一直喜欢折腾软件,从刚开始只用软件IDE自带的编辑器,到Notepad++,再到后来的Vim,从用ISE14.7自带的Isim仿真,到发现更好的Modelsim,再到使用do脚本自动化仿真,乐此不疲。之前一直使用Modelsim独立仿真,虽然好用,但是对于IP Core的仿真可真是麻烦,需要找到对应的IP Core库文件,所以博主一直在寻找把FPGA开发工具和Modelsim级联起来的方法,终于被我找到,分享出来!
Vivado2017.3与Modelsim级联仿真
首先在Modelsim的安装目录下新建一个文件夹,命名随意,知道是Vivado的库文件就行了。
打开一个Vivado工程,点击上方菜单栏Tools——>Compile Simulation Libraries
按上图所示选择,上面是刚才新建好要综合到的Vivado的库文件,下面是Modelsim的安装路径。设置完成后点击Compile,综合Vivado的库文件。
这个过程应该是持续半个小时或者更长,依个人电脑性能而定。
综合完成后会在Tcl Console打印出这样的信息,这都是综合好的库文件,可以看到是0Errors 警告可以忽略。
打开刚才Modelsim安装路径下新建的库文件可以看到生成了很多文件夹。
回到Vivado,点击左边Flow Navigtor的Setting——>Simulation,选择仿真工具为Modelsim,综合库文件路径指定到刚才生成好的路径。Apply。
选择3rdParty Simulators,按如图所示添加Modelsim安装路径和仿真库路径。Apply。
打开编译好的库文件夹,下面有一个modelsim.ini的文件,打开
找到如图所示部分,复制,如果你全编译了,得好老一大段呢。
然后打开Modelsim安装路径下的modelsim.ini这个文件
把刚才那段粘贴到这里。
点击Run Simulation——>Run Behavioral Simlation进行行为级仿真。
如果一直卡在这个界面,这个时候就要看下Tcl Console,窗口打印的信息了,应该是有错误或警告,Modelsim仿真时,变量必须定义在代码使用这个变量中出现之前,这个如果用过Modelsim的朋友应该会深有体会。自行解决。
一切都没有问题后,当然就会出仿真波形了。下面是重点了。
Vivado会在仿真时候在如图工程路径里生成这么几个do文件,关于do文件我前面介绍过,即自动化仿真脚本,我们只需要修改这些do文件,在Modelsim中的Transcript窗口输入do xxx.do命令即可。
键入do再按键盘↑键会自动弹出可以运行的do文件,按下Enter即可运行。
这里的后缀为udo的这个文件是Xilinx提供的用户do文件,要添加do文件的内容应该是在这里面添加,比如需要在Wave里添加其他模块的波形,直接在这个udo文件里添加相应的代码就好了。
Vivado定制一键操作工具
这里还有一个小技巧,就是Viado自定义一键操作工具,这里自定义一个Modelsim的一键仿真图标,点击就可以直接进入仿真。
点击Tools——>Custom Cpmmands——>Customzie Commands弹出如下界面。
点击如图所示+号,键入modelsim_sim,回车。
找一个Modelsim的图标图片保存在modelsim的安装路径下,图片格式为png。
按如图所示设置,从上到下,Shorcut可以设置快捷键,这里需要添加一个Tcl脚本(如下),添加modelsim图标路经,Apply。
脚本中个人要修改的是刚才编译的Vivado库文件的路径。
完成后就会在菜单栏生成一个Modelsim的图标,点击图标便可以直接进入仿真界面。
ISE14.7级联Modelsim仿真
折腾完了Vivado,咱们来继续折腾一下ISE,我们知道ISE到14.7版本就停更了,虽说最近出了个Win10版本,但是我装了下,打开就跟打开了个虚拟机似的,不习惯。虽然ISE14.7在Win10上有多个兼容性问题,不过博主都一一找到了解决办法,一直用着感觉还可以。下来整整它和Modelsim联合仿真吧。
在ISE14.7安装路径下,找到compxlibgui.exe这个可执行文件,点击运行。
如果出现上图错误,这可能是在解决win10兼容性问题的时候修改了一些文件,可以在开始菜单里,找到simulation library compilation打开。
接下来会弹出如上窗口,选择Modelsim SE,和Modelsim安装路径。
语言选择Both没准啥时候还会用到。
这里选择需要编译的库文件,可以全选,也可以吧CPLD器件勾选掉,应该不会用到了吧。
Next~
在Modelsim安装路径下新建一个ISE14.7的库文件夹,把要编译的路劲指向这个文件夹。
看网上一个博主说这个过程得快一个小时,我的电脑不到十分钟,七代I7-7700果然强悍(逃)。
Finish编译完成。
打开编译好的库文件夹,下面有一个modelsim.ini的文件,打开
找到如图所示部分,复制,我这里编译的库较少,所以只有这些,如果你全编译了,得好老一大段呢。
然后打开Modelsim安装路径下的modelsim.ini这个文件
把刚才复制的那段粘贴到这里。
打开ISE点击Edit——>Preferences——>设置Modelsim的运行路径
点击设置配置,将仿真工具设置为Modelsim SE。
然后就可以点击如图所示,弹出的窗口选择No直接仿真了。
接下来还是要提的是,ISE同样会生成自动仿真脚本。在ISE的工程目录下。在Transcript下面按↑键可自动弹出do xxx.fdo脚本命令,Enter运行。同样用户也是修改udo脚本,来添加波形。
QuartusII级联Modelsim进行仿真
顺带也折腾下QuartusII吧,其实对于QuartusII,博主是一直使用Modelsim独立仿真的,因为QuartusII的IP Core在设置的时候会告诉你用到了哪个库文件,只需要在仿真的时候把对应的库文件添加到工程里就可以了。不过调用起来其实也不麻烦,干起来。
点击上方菜单栏Tools——>Options,在EDA Tools Options中选择Modelsim软件的运行路径。
OK
上方菜单栏点击Assignments——>Setting按图所示,选择仿真工具为Modelsim。然后添加test bench文件。
点击New~
将写好的测试文件添加进来,上面的命名必须与testbench文件一致,否则会报错。
设置完成后点击OK。
OK
OK~
点击Tools——>Run Simulation Tool——>RTL Simulation,可直接运行仿真。
运行过程中如果弹出这个Error,是因为Modelsim没有破解成功,需要重新破解,破解完成后,重启软件即可。
同样的QuartusII在工程目录下也会生成一个do文件,用户可直接修改进行仿真了。
关于do文件的使用和模板,可以看我之前发的一片博文。Modelsim中使用TCL脚本编写do文件实现自动化仿真
转载请注明出处:NingHeChuan(宁河川)
个人微信订阅号:开源FPGA
如果你想及时收到个人撰写的博文推送,可以扫描左边二维码(或者长按识别二维码)关注个人微信订阅号
知乎ID:NingHeChuan
微博ID:NingHeChuan