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

2015-6-19 22:47 3788 18 18 分类: FPGA/CPLD 文集: FPGA深入学习

(接上篇)

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

点击Assignments—>Settings

20150619223401116001.jpg

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

20150619223409556002.jpg

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

20150619223416647003.jpg

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

20150619223423470004.png

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

” <IP>_testbench/testbench_verilog/<IP>”

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

20150619223430321005.jpg

 

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

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

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

20150619223444774007.jpg

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

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

20150619223451929008.png

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

20150619223457186009.jpg

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

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

20150619223504340010.jpg

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

20150619223512425011.jpg

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

20150619223519346012.jpg

 

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

20150619223526187013.png

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

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

20150619223533226014.jpg

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

20150619223540322015.jpg

打印的信息:

20150619223547537016.png

20150619223554937017.jpg

20150619223604307018.jpg

20150619223611676019.png

20150619223619429020.jpg

20150619223625828021.png

20150619223632815022.png

 

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

 

小梅哥

2015619日于北京至芯科技

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
18
关闭 站长推荐上一条 /1 下一条