ZYNQ基于AXI协议的DDR3读写4K字节IP核设计

1 DDR3读写IP核设计(PS为Slave,PL为Master)

  • 通过自定义一个 AXI4 接口的 IP 核,通过 AXI_HP 接口对 PS 端 DDR3 进行读写测试,DDR3 Test 是我们自定义的 IP 核,具有 AXI4 Master 端口,该端口通过 AXI Smartconnect模块,最终连接到 PS 端的 S_AXI_HP0 端口。
  • 输入的按键控制 DDR3 Test 模块对 PS 的 DDR3 进行读写测试,并在读写测试结束后,通过两个PL LED灯分别指示读写完成和读写错误。

image.png

  • S_AXI_HP0 是 PS 端的 AXI 高性能接口,它是一个从接口,连接到 PS 内的存储器互联,用于 PL 访问 PS 内的存储设备,包括 OCM 和 DDR。在本次实验中,我们在 PL 内自定义的 DDR3 Test IP 核作为主设备,通过 PS AXI_HP0 接口,与 DDR 控制器进行通信,最终对 DDR3 存储器进行读写操作。 image.png

1.1 协议简述(PL读取PS端DDR3 SDRAM)(PL为Master,PS为Slave)

image.png image.png image.png

  • 创建 Vivado 工程

image.png image.png image.png

  • 在“Add Interfaces”界面中修改接口名称为“M_AXI”,选择接口类型为“Full”,接口模式为“Master

image.png

  • 添加完自定义 IP 核之后,双击该 IP 核对其进行配置,将变量 C M AXI TARGET SLAVE BASE ADDR 的值修改为 0x1000_0000,它位于 DDR3 存储器的地址空间,是 AXI4_RW_TEST IP 核进行读写操作的起始地址。我们将该地址之前的存储空间预留下来,用于运行 PS 中的软件程序。

image.png image.png

1.2 DDR3读写顶层IP模块,内部例化AXI协议模块

image.png image.png image.png image.png

2 AXI协议模块分析

image.png

2.1 突发读写详解

2.1.1.1 write_index(一次突发完成标志)

  • C_M_AXI_BURST_LEN表示是一次突发的需要多少个C_M_AXI_DATA_WIDTH(默认32bit),是以C_M_AXI_DATA_WIDTH为单位的,即:一次突发要传输C_M_AXI_BURST_LEN*C_M_AXI_DATA_WIDTH
  • 例如:C_M_AXI_BURST_LEN=16,C_M_AXI_DATA_WIDTH=32,则一次突发传输字节数为:16*32/8=64字节`

- 一次突发需要多少bit位,用n来表示:C_TRANSACTIONS_NUM=4,2^n=16,当4个bit位满时,一次突发完成 image.png image.png

2.1.1.2 write_burst_counter(读写4K字节完成标志)

  • C_NO_BURSTS_REQ表示:若要传输4K字节,即2^12bytes,总共需要多次突发数量为:2^12/(16*32/8)

image.png image.png

  • 检查4K字节是否传输完成

image.png

  • AXi协议定义REG变量

image.png image.png

2.2 init_txn_pulse启动触发

image.png

2.3 状态机

image.png image.png

2.4 Write Address

  • axi_awvalid/axi_awaddr

image.png

2.5 Write Data(PL向PS端DDR3 SDRAM写入数据)(PL为Master,PS为Slave)

image.png image.png

2.6 Write LAST(突发读写axi_wvalid一直拉高,直到Write LAST信号出现后拉低)

image.png

2.7 Read Data(PL读取PS端DDR3 SDRAM数据)(PL为Master,PS为Slave)

  • Read Address Channel (PL读取PS端DDR3 SDRAM)(PL为Master,PS为Slave)

image.png

  • Read Data

image.png image.png

3 SDK设计

  • PL向PS端DDR3 SDRAM写入数据(PL为Master,PS为Slave)`

image.png image.png

猜你喜欢

转载自juejin.im/post/7049013274456621086