如何用ModelSim对Xilinx ISE产生的网表进行仿真

图:

在对设计的芯片进行测试时,经常要用到FPGA,可是里面的仿真工具却不如Modelsim那么好用,且在规模比较大时,ISE在仿真时,软件经常会报告内存限制的问题,此时一般会切换到Modelsim软件中去做仿真,这样便不会出现内存限制的问题,且仿真器也更加好用。

 

下面以综合后仿真为例,讲一下如何用ModelSim对Xilinx ISE综合后产生的网表进行仿真。

 

在用Xilinx ISE综合后,如果想用Modelsim对它综合后产生的网表进行综合后仿真,总共需要3个*.v文件。一个是testbench文件,一个是ISE生成的xxx_ synthesis.v,另一个是glbl.v文件(这个文件在Xilinx安装目录:ISE\verilog\src下)。

步骤如下:

假设顶层设计名为main_1,双击Syntiesize - XST下的Generate Post-Synthesis Simulation Model,则在ISE项目目录内的./netgen目录里面会产生synthesis文件夹,生成main_1_synthesis.v文件以及main_1_synthesis.nlf文件。

在ModelSim项目中加入main_1_synthesis.v、testbench.v、Xilinx ISE安装目录/opt/Xilinx/ISE_DS/ISE/verilog/scr/目录内的glbl.v(必须加上glbl.v文件,否则会报下面Q1所示的glbl问题)。

然后在仿真中加入Xilinx编译的几个库文件(见文章Xilinx ISE如何调用Modelsim进行联合仿真),把testbench.v和glbl.v同时选中后进行仿真(必须都选上,否则仿真会报错)

仿真设置以下面的方式加入:

在Simulation中加入Xilinx ISE中编译的库文件(编译库的方法见Xilinx ISE如何调用Modelsim进行联合仿真):

点击Libraries,点击Add添加:

在Design下找到work库,在里面选中测试平台文件和glbl.v,则在Design Unit(s)中会出现work.glbl和work.tb。同时要在Optimization下取消勾选Enable optimization,否则有些信号可能会被仿真器优化掉。如下图所示:

之后双击Simulation 1即可开始仿真。


同样,在执行Implement Design下面的Translate以及其下面的Generate Post-Translate Simulation Model后,在netgen目录下会生成Translate文件夹,里面有main_1_translate.v文件。同样的方法可以进行翻译/转化后仿真。


Q1:"ERROR: ../<project>/<module.v>: Unresolved reference to 'glbl' in 'glbl.GSR'" 

A1:在仿真工程中添加glbl.v文件(一般在~/ise/verilog/src/glbl.v,同理Quartus),把testbench.v和glbl.v同时选中后进行仿真,即vsim -t 1ps -L unisims_ver work.glbl work.tb。

 

如果喜欢本公众号也请多多分享哟,谢谢您的关注

 

posted @ 2018-02-02 09:20  Horizon00  Views(1468)  Comments(0Edit  收藏  举报