为啥用modelsim6.5进行FPGA的时序仿真,会出现如下情况
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥用modelsim6.5进行FPGA的时序仿真,会出现如下情况相关的知识,希望对你有一定的参考价值。
这应该是后仿(门级仿真)的波形,这是组合电路中各个信号的延迟不一致,这总共有5个数据线,数据到来时候不一致产生的毛刺现象,是正常波形!如果是前仿的话就是你代码的问题。 参考技术A 时序不满足之类的你这图信号名字都没有,想猜都没有办法猜
打个比方,竞争现象在功能仿真时也是看不到的来自:求助得到的回答 参考技术A 这个应该是你程序问题吧。 参考技术B 问题描述不清楚追问
就是在图中红色的地方,功能仿真是没有的,但时序仿真就出现了,这我不明白
那查一下这个地方的时序问题。看是否有时序不满足或跨时钟域没处理好等问题。
如何用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。
如果喜欢本公众号也请多多分享哟,谢谢您的关注
以上是关于为啥用modelsim6.5进行FPGA的时序仿真,会出现如下情况的主要内容,如果未能解决你的问题,请参考以下文章
v3学院带你学习-时序逻辑中时钟上升沿对齐数据变化时的处理技巧的FPGA实现