之前学了一下 DDR3 的操作,但现在看来太繁琐了,现在找到一种更好的代码结构,但是以前写的也还不错,所以另外出个 DDR3 新版的系列博客。
一、IP核调取
IP 核的调取和之前旧版的没有区别,直接查看博客《DDR3_旧版(1):IP核调取》即可。
二、官方例程仿真_手动法
虽说官方例程比较难懂,但好歹还是跑一跑吧。
1、主页面上,选中 Simulation Sources - sim_1,右键 Add Sources,Add Files,将以下文件添加进来,然后 Finish。
- UART_DDR3_HDMIUART_DDR3_HDMI.srcssources_1ipDDR3DDR3example_designsim下的 4 个文件,包括 .sv .vh .v 文件。
- UART_DDR3_HDMIUART_DDR3_HDMI.srcssources_1ipDDR3DDR3example_design tl下的 example_top.v 文件。
- UART_DDR3_HDMIUART_DDR3_HDMI.srcssources_1ipDDR3DDR3example_design tl raffic_gen下的所有文件。
2、此时 Vivado 应该已经自动把 sim_tb_top 文件识别为 sim_1 的顶层文件了,如果没有,可以点击该文件右键:Set as Top。
3、点击 Run Simulation,弹出仿真软件。如果适配了 Modelsim 则弹出 Modelsim,没有则弹出 Vivado 自带的仿真界面。
4、点击 Vivado 上方按钮,运行仿真。
5、漫长的等待后,波形就出来了,观察 init_calib_complete 信号,在大概 210us 时拉高了,Tcl界面也打印了很多信息。
三、官方例程仿真_自动法
完成第一步 IP 核调取后,直接选中 DDR3 IP,右键 Open IP_Example Design,为仿真工程选择一个新的目录。
然后 Vivado 会自动打开这个新的官方例程工程,直接点击仿真,其他的都不用管,波形就出来了:
两个仿真都是一样的,仿真的数据是随机的,但通过仿真来对照着 DDR3 手册仔细研究时序,也是不错的选择!