虽然 Vivado 自带的仿真功能也很好用,但是并不能实现 modelsim 中的 dataflow 和 schematic 功能,而且仿真速度也没有 modelsim 快,因此,改为 vivado 调用 modelsim 进行联合仿真。
一、实现 Vivado 联合 Modelsim 仿真
Vivado 和 Modelsim 的安装过程不再描述,简单记录一下 vivado 和 modelsim 的联合仿真教程。
(1)选择 Vivado 中 Tools-> Compile Simulation Libraries…
(2)Simulator 选择 ModelSim Simulator,并修改相应路径后点击 Compile:
(3)打开一个含有仿真文件的 Vivado 工程,右键 Run Simulation,点击 Simulation Settings:
在 Simulation 下修改 Target simulator 和刚才编译库的路径:
这里,可以根据需要,修改一些默认仿真设置:
以及 3rd Party Simulators 下修改 Modelsim 的路径和编译好的库的路径:
以上,即可完成 vivado 联合 modelsim 仿真的初步设置。接下来看一些常见错误。
二、Vivado 联合 Modelsim 仿真常见错误
2.1 Vivado 联合 Modelsim 仿真卡在 Executing analysis and compilation step
vivado 联合 modelsim 仿真时,一直卡在如下界面。
根本原因:modelsim 在打开之前,会先对 testbench 和源文件进行编译,如果存在一些语法错误则会导致 vivado 无法打开 modelsim,所以就一直卡在这个界面。
其实,这些错误也可以在 vivado 中查看,如下图所示。
这与 Quartus Prime 联合 modelsim 仿真时的报错机制不同,如果存在语法错误,modelsim 至少会打开,然后在 Transcript 里报错。
这点需要注意。
2.2 vsim-19 Failed to access library ‘unisims_ver’ at ‘unisims_ver’
报错内容:
** Error (suppressible): (vsim-19) Failed to access library ‘unisims_ver’ at “unisims_ver”.
No such file or directory. (errno = ENOENT)
** Error (suppressible): (vsim-19) Failed to access library ‘unimacro_ver’ at “unimacro_ver”.
No such file or directory. (errno = ENOENT)
** Error (suppressible): (vsim-19) Failed to access library ‘secureip’ at “secureip”.
No such file or directory. (errno = ENOENT)
Loading xil_defaultlib.gtwizard_0_GT_FRAME_GEN
Loading xil_defaultlib.gtwizard_0_GT_FRAME_CHECK
Loading xil_defaultlib.glbl
Error loading design
Error: Error loading design
Pausing macro execution
MACRO ./gtwizard_0_TB_simulate.do PAUSED at line 9
根本原因:未正确关联编译库。
扫码关注尚为网微信公众号
原创文章,作者:sunev,如若转载,请注明出处:https://www.sunev.cn/embedded/1299.html