广告

原创 小梅哥FPGA学习笔记之Quartus II 15.0中仿真Altera三速以太网IP核(下)

2017-1-9 13:58 345 0

(接上篇)


编译完成后,一般不会出现错误,这时候,就可以通过设置NativeLink来将Quartus II工程文件与Modelsim-Altera软件关联起来了。设置NaitveLink的详细步骤如下图所示:


点击Assignments—>Settings


在弹出的对话框中(如下图所示)选择EDA Tool Settings(红框1处),选择Simulation(红框2处),核对红框3处和4处是否与图上设置的一致,然后勾选红框5处的Compile test bench,点击红框6处的Test Benches以进入新的testbench设置窗口。


在新的testbench设置窗口中,点击New以创建一个新的Testbench设置脚本,如下图所示:


单击New Test Bench Settings选项卡中的File name一栏最右侧的三个小点(红框1处所示):


在弹出的文件选项卡中,将目录定位到工程目录下的


_testbench/testbench_verilog/


目录下,选择_tb.V文件并Open(如下图所示),返回到New Test Bench Settings选项卡中。


点击Add将_tb.v添加进去,然后再次点击那三个小点(如下图所示):


进入文件选择选项卡中,将目录定位到工程目录下的


_testbench/testbench_verilog/models”文件夹中,选择除以timing开头的文件(时序仿真时才需要用到)以外的其他所有文件,点击Open。如下图所示:


这些文件都是为了配合仿真TSE IP核而存在的,属于仿真模型,这些文件组合在一起相当于虚拟了一个物理的网络收发器PHY。这样,就能够模拟真实的板级环境进行仿真测试了。


在New Test Bench Settings选项卡中,Test bench一栏中输入_tb,Top Level module in test bench一栏中输入tb。至于这里为什么要手动输入tb,而不是由软件自动填充的_tb。


为什么是这样,这里小梅哥最开始也郁闷了很久,我最开始也是直接使用_tb来填入top Level module in test bench中,结果modelsim – altera中仿真总是报错,提示找不到_tb.V文件,我就郁闷了,明明是已经加入进来了,为什么进行仿真时总说找不到呢?直到后来我打开_tb.V这个文件一看,才找到了原因,如下图所示:


虽然文件名字是_tb.V,但是文件中test bench的顶层实体名字任然是tb,因此,我们直接设置_tb.V作为top Level module in test bench的名字当然不对了,所以我们需要根据实际情况,输入top Level module in test bench的名字为tb。


设置完毕,连续点击两次OK,回到Settings - <工程名>选项卡中,勾选Use Script to setup simulation,并定位到文件_testbench/testbench_verilog//_wave.do。这个文件是一个脚本文件,主要功能是有条理的添加信号到仿真波形窗口中,以使我们看起来更加直观,如下图所示。


然后apply,OK即可。此时在Quartus II软件中点击RTL Simulation按钮即可启动仿真,如下图所示:


整个过程较为漫长,modelsim-altera需要首先对设计文件进行编译,然后才能运行仿真,大约需要3分钟左右的时间吧。仿真开始后,会自动在波形窗口中添加好信号并停在仿真时间0处,如下图所示:


因为仿真脚本中没有run这个命令,所以添加完波形后modelsim就进入等待状态,因此我们必须手动输入run –all命令,或者在GUI上点击run –all按钮来运行仿真,如下图所示:


仿真大约运行10秒左右就会停下来,此时就可以观察波形了,在Transcript窗口中也会打印仿真过程中的一些数据信息。下图为仿真结果欣赏:

接收模块和接收FIFO模块信号仿真波形:


发送模块和发送fifo模块仿真波形:


打印的信息:











今天只是做了IP核的功能仿真,暂时还没有对仿真结果进行分析,这个留到后面具体做通信数据的时候再来做。小梅哥年轻,经验不足,博客中若有什么不妥之处,欢迎各位指正。


小梅哥


2015年6月19日于北京至芯科技


广告

文章评论 0条评论)

登录后参与讨论
相关推荐阅读
小梅哥 2019-09-04 22:10
小梅哥FPGA时序分析笔记(6.2)深入现象看本质——庖丁解牛之FPGA内数据传输模型
通过上一节,我们了解了FPGA内部数据的传输形式,接下来我们就可以根据上一节的内容来总结一下FPGA内部的数据传输模型了。 时钟和数据传输路径 通过上一节内容中,我绘制的那个FPGA内部数...
小梅哥 2019-09-01 21:28
小梅哥FPGA时序分析笔记(6.1)深入现象看本质——庖丁解牛之FPGA可编程原理
上一次发博客,已经是2个月前了,这中间两个月,干了件很有意义的事情,尤其是对于自己来说,感觉学到了非常多的知识和经验,每天都很忙,忙到没时间逛网站博客,终于忙完闲下来了,连载的事情可不能忘,终于可以书...
小梅哥 2019-07-02 08:57
小梅哥FPGA时序分析笔记(五)I/O约束显神威——深入龙潭
大家一定对我上一节的突然结尾表示一脸茫然:我是来学习时序约束的,然后你告诉我时序约束里面IO约束很重要,然我又跟着你的文章继续往下看,本以为你就要讲如何进行IO约束了,结果呢,你一个取反时钟就把我们打...
小梅哥 2019-06-30 11:07
小梅哥FPGA时序分析笔记(四)I/O时序定成败——化险为夷
小梅哥FPGA时序分析从遥望到领悟系列没有遇见过I/O时序问题,没有通过I/O约束方式实际解决过I/O时序问题,就很难明白I/O约束的重要性,也很难相信各种EDA软件真的有那么的傻白甜。 我遇到...
小梅哥 2019-06-22 10:32
小梅哥FPGA时序分析笔记(三)时钟约束真重要——事实说话
小梅哥FPGA时序分析从遥望到领悟系列以前,那是在以前,经常有网友(原谅我行文动不动就是网友说,网友问,毕竟我是卖开发板的,正面接触学FPGA的网友相对多一些,所以这些也都是事实存在的事情)问我:小梅...
小梅哥 2019-06-21 10:33
小梅哥FPGA时序分析笔记(二)时钟质量是生命——初遇时序
小梅哥FPGA时序分析从遥望到领悟系列第一次遇到时序问题并通过相应的手段解决问题,算是2年前做百兆以太网图像传输的时候了吧。当时遇到的问题为:同一个工程,每次编译结果的效果都不一样,有的时候编译了,下...
我要评论
0
0
广告