第三章 PL通过NoC读写DDR4实验#
实验VIvado工程为“pl_rw_ddr”。
3.1 硬件介绍#
开发板的PL端有4颗16bit ddr4
3.2 Vivado工程建立#
Versal的DDR4是通过NoC访问,因此需要添加NoC IP进行配置。
3.2.1 创建一个Block design并配置NoC#
选择Create Block Design
添加CIPS
双击CIPS,选择PL_Subsystem,只有PL端的逻辑
添加NoC IP
配置NoC
选择一个AXI Slave和AXI Clock,选择”Single Memory Controller”
选择Inputs为PL
连接port
DDR4配置
配置完成,点击OK
配置CIPS,添加复位
点击Finish
添加Clocking Wizard,配置输出时钟150MHz,作为PL端读写时钟
添加IBUFDS为NoC和Clocking Wizard提供参考时钟,并导出S00_AXI,CH0_DDR4_0等总线,添加axi_clk,axi_resetn为PL端提供时钟和复位。
双击参考时钟引脚,并配置频率为200MHz
双击AXI总线,并配置
分配地址
Create HDL
3.2.2 添加其他测试代码#
其他代码主要功能是读写ddr4并比较数据是否一致,这里不做详细介绍,可参考工程代码。
在mem_test.v中添加mark_debug调试
引脚绑定
综合
综合完成后点击Set up debug
根据需求设置采样点数
之后保存,并生成pdi文件
3.3 下载调试#
生成pdi文件以后,使用JTAG下载到开发板,在MIG_1窗口会显示DDR4校准等信息
在hw_ila_1中可以查看调试信号
3.4 实验总结#
本实验通过PL端Verilog代码直接读写ddr4,主要了解NoC的配置方法,如何通过NoC访问DDR4,后续的实验中都要用到此配置。