Viavdo&ISE&Quartus II级联Modelsim级联仿真

时间:2022-10-20 07:25:31

博主一直致力寻找高效的工作方式,所以一直喜欢折腾软件,从刚开始只用软件IDE自带的编辑器,到Notepad++,再到后来的Vim,从用ISE14.7自带的Isim仿真,到发现更好的Modelsim,再到使用do脚本自动化仿真,乐此不疲。之前一直使用Modelsim独立仿真,虽然好用,但是对于IP Core的仿真可真是麻烦,需要找到对应的IP Core库文件,所以博主一直在寻找把FPGA开发工具和Modelsim级联起来的方法,终于被我找到,分享出来!

Vivado2017.3与Modelsim级联仿真

首先在Modelsim的安装目录下新建一个文件夹,命名随意,知道是Vivado的库文件就行了。

Viavdo&ISE&Quartus II级联Modelsim级联仿真

打开一个Vivado工程,点击上方菜单栏Tools——>Compile Simulation Libraries

Viavdo&ISE&Quartus II级联Modelsim级联仿真

按上图所示选择,上面是刚才新建好要综合到的Vivado的库文件,下面是Modelsim的安装路径。设置完成后点击Compile,综合Vivado的库文件。

Viavdo&ISE&Quartus II级联Modelsim级联仿真

这个过程应该是持续半个小时或者更长,依个人电脑性能而定。

Viavdo&ISE&Quartus II级联Modelsim级联仿真

综合完成后会在Tcl Console打印出这样的信息,这都是综合好的库文件,可以看到是0Errors 警告可以忽略。

Viavdo&ISE&Quartus II级联Modelsim级联仿真

打开刚才Modelsim安装路径下新建的库文件可以看到生成了很多文件夹。

Viavdo&ISE&Quartus II级联Modelsim级联仿真

回到Vivado,点击左边Flow Navigtor的Setting——>Simulation,选择仿真工具为Modelsim,综合库文件路径指定到刚才生成好的路径。Apply。

Viavdo&ISE&Quartus II级联Modelsim级联仿真

选择3rdParty Simulators,按如图所示添加Modelsim安装路径和仿真库路径。Apply。

Viavdo&ISE&Quartus II级联Modelsim级联仿真

打开编译好的库文件夹,下面有一个modelsim.ini的文件,打开

Viavdo&ISE&Quartus II级联Modelsim级联仿真

找到如图所示部分,复制,如果你全编译了,得好老一大段呢。

Viavdo&ISE&Quartus II级联Modelsim级联仿真

然后打开Modelsim安装路径下的modelsim.ini这个文件

Viavdo&ISE&Quartus II级联Modelsim级联仿真

把刚才那段粘贴到这里。

Viavdo&ISE&Quartus II级联Modelsim级联仿真

点击Run Simulation——>Run Behavioral Simlation进行行为级仿真。

Viavdo&ISE&Quartus II级联Modelsim级联仿真

如果一直卡在这个界面,这个时候就要看下Tcl Console,窗口打印的信息了,应该是有错误或警告,Modelsim仿真时,变量必须定义在代码使用这个变量中出现之前,这个如果用过Modelsim的朋友应该会深有体会。自行解决。

Viavdo&ISE&Quartus II级联Modelsim级联仿真

一切都没有问题后,当然就会出仿真波形了。下面是重点了。

Viavdo&ISE&Quartus II级联Modelsim级联仿真

Vivado会在仿真时候在如图工程路径里生成这么几个do文件,关于do文件我前面介绍过,即自动化仿真脚本,我们只需要修改这些do文件,在Modelsim中的Transcript窗口输入do xxx.do命令即可。

Viavdo&ISE&Quartus II级联Modelsim级联仿真

键入do再按键盘↑键会自动弹出可以运行的do文件,按下Enter即可运行。

Viavdo&ISE&Quartus II级联Modelsim级联仿真

这里的后缀为udo的这个文件是Xilinx提供的用户do文件,要添加do文件的内容应该是在这里面添加,比如需要在Wave里添加其他模块的波形,直接在这个udo文件里添加相应的代码就好了。

Vivado定制一键操作工具

  这里还有一个小技巧,就是Viado自定义一键操作工具,这里自定义一个Modelsim的一键仿真图标,点击就可以直接进入仿真。

Viavdo&ISE&Quartus II级联Modelsim级联仿真

点击Tools——>Custom Cpmmands——>Customzie Commands弹出如下界面。

Viavdo&ISE&Quartus II级联Modelsim级联仿真

点击如图所示+号,键入modelsim_sim,回车。

Viavdo&ISE&Quartus II级联Modelsim级联仿真

找一个Modelsim的图标图片保存在modelsim的安装路径下,图片格式为png。

Viavdo&ISE&Quartus II级联Modelsim级联仿真

按如图所示设置,从上到下,Shorcut可以设置快捷键,这里需要添加一个Tcl脚本(如下),添加modelsim图标路经,Apply。

Viavdo&ISE&Quartus II级联Modelsim级联仿真

脚本中个人要修改的是刚才编译的Vivado库文件的路径。

Viavdo&ISE&Quartus II级联Modelsim级联仿真

完成后就会在菜单栏生成一个Modelsim的图标,点击图标便可以直接进入仿真界面。

ISE14.7级联Modelsim仿真

  折腾完了Vivado,咱们来继续折腾一下ISE,我们知道ISE到14.7版本就停更了,虽说最近出了个Win10版本,但是我装了下,打开就跟打开了个虚拟机似的,不习惯。虽然ISE14.7在Win10上有多个兼容性问题,不过博主都一一找到了解决办法,一直用着感觉还可以。下来整整它和Modelsim联合仿真吧。

Viavdo&ISE&Quartus II级联Modelsim级联仿真

在ISE14.7安装路径下,找到compxlibgui.exe这个可执行文件,点击运行。

Viavdo&ISE&Quartus II级联Modelsim级联仿真

Viavdo&ISE&Quartus II级联Modelsim级联仿真

Viavdo&ISE&Quartus II级联Modelsim级联仿真

如果出现上图错误,这可能是在解决win10兼容性问题的时候修改了一些文件,可以在开始菜单里,找到simulation library compilation打开。

Viavdo&ISE&Quartus II级联Modelsim级联仿真

Viavdo&ISE&Quartus II级联Modelsim级联仿真

接下来会弹出如上窗口,选择Modelsim SE,和Modelsim安装路径。

Viavdo&ISE&Quartus II级联Modelsim级联仿真

语言选择Both没准啥时候还会用到。

Viavdo&ISE&Quartus II级联Modelsim级联仿真

这里选择需要编译的库文件,可以全选,也可以吧CPLD器件勾选掉,应该不会用到了吧。

Viavdo&ISE&Quartus II级联Modelsim级联仿真

Next~

Viavdo&ISE&Quartus II级联Modelsim级联仿真

在Modelsim安装路径下新建一个ISE14.7的库文件夹,把要编译的路劲指向这个文件夹。

Viavdo&ISE&Quartus II级联Modelsim级联仿真

Viavdo&ISE&Quartus II级联Modelsim级联仿真

看网上一个博主说这个过程得快一个小时,我的电脑不到十分钟,七代I7-7700果然强悍(逃)。

Viavdo&ISE&Quartus II级联Modelsim级联仿真

Finish编译完成。

Viavdo&ISE&Quartus II级联Modelsim级联仿真

打开编译好的库文件夹,下面有一个modelsim.ini的文件,打开

Viavdo&ISE&Quartus II级联Modelsim级联仿真

找到如图所示部分,复制,我这里编译的库较少,所以只有这些,如果你全编译了,得好老一大段呢。

Viavdo&ISE&Quartus II级联Modelsim级联仿真

然后打开Modelsim安装路径下的modelsim.ini这个文件

Viavdo&ISE&Quartus II级联Modelsim级联仿真

把刚才复制的那段粘贴到这里。

Viavdo&ISE&Quartus II级联Modelsim级联仿真

打开ISE点击Edit——>Preferences——>设置Modelsim的运行路径

Viavdo&ISE&Quartus II级联Modelsim级联仿真

点击设置配置,将仿真工具设置为Modelsim SE。

Viavdo&ISE&Quartus II级联Modelsim级联仿真

Viavdo&ISE&Quartus II级联Modelsim级联仿真

然后就可以点击如图所示,弹出的窗口选择No直接仿真了。

Viavdo&ISE&Quartus II级联Modelsim级联仿真

接下来还是要提的是,ISE同样会生成自动仿真脚本。在ISE的工程目录下。在Transcript下面按↑键可自动弹出do xxx.fdo脚本命令,Enter运行。同样用户也是修改udo脚本,来添加波形。

QuartusII级联Modelsim进行仿真

  顺带也折腾下QuartusII吧,其实对于QuartusII,博主是一直使用Modelsim独立仿真的,因为QuartusII的IP Core在设置的时候会告诉你用到了哪个库文件,只需要在仿真的时候把对应的库文件添加到工程里就可以了。不过调用起来其实也不麻烦,干起来。

Viavdo&ISE&Quartus II级联Modelsim级联仿真

点击上方菜单栏Tools——>Options,在EDA Tools Options中选择Modelsim软件的运行路径。

Viavdo&ISE&Quartus II级联Modelsim级联仿真

OK

Viavdo&ISE&Quartus II级联Modelsim级联仿真

上方菜单栏点击Assignments——>Setting按图所示,选择仿真工具为Modelsim。然后添加test bench文件。

Viavdo&ISE&Quartus II级联Modelsim级联仿真

点击New~

Viavdo&ISE&Quartus II级联Modelsim级联仿真

将写好的测试文件添加进来,上面的命名必须与testbench文件一致,否则会报错。

Viavdo&ISE&Quartus II级联Modelsim级联仿真

设置完成后点击OK。

Viavdo&ISE&Quartus II级联Modelsim级联仿真

OK

Viavdo&ISE&Quartus II级联Modelsim级联仿真

OK~

Viavdo&ISE&Quartus II级联Modelsim级联仿真

点击Tools——>Run Simulation Tool——>RTL Simulation,可直接运行仿真。

Viavdo&ISE&Quartus II级联Modelsim级联仿真

运行过程中如果弹出这个Error,是因为Modelsim没有破解成功,需要重新破解,破解完成后,重启软件即可。

Viavdo&ISE&Quartus II级联Modelsim级联仿真

同样的QuartusII在工程目录下也会生成一个do文件,用户可直接修改进行仿真了。

关于do文件的使用和模板,可以看我之前发的一片博文。Modelsim中使用TCL脚本编写do文件实现自动化仿真

Viavdo&ISE&Quartus II级联Modelsim级联仿真

转载请注明出处:NingHeChuan(宁河川)

个人微信订阅号:开源FPGA

如果你想及时收到个人撰写的博文推送,可以扫描左边二维码(或者长按识别二维码)关注个人微信订阅号

知乎ID:NingHeChuan

微博ID:NingHeChuan

原文地址:http://www.cnblogs.com/ninghechuan/p/8999078.html