zcu102_16_PL端读写DDR4

本文档介绍了基于ZCU102开发板使用DDR4 MIG IP进行读写操作的详细过程,包括建立工程、配置IP、地址映射以及读写时序。通过封装设计实现了类似FIFO的连续读写接口,以解决原生接口的复杂性问题。测试工程展示了3小时无错误的持续读写操作。
摘要由CSDN通过智能技术生成


本试验建立DDR4读写的MIG IP核,并且对其读写时序进行封装实现类似FIFO的读写接口。

测试工程已上传至https://download.csdn.net/download/botao_li/11310123

建立工程

参考之前的文档在Vivado内建立基于zcu102开发板的测试工程

板卡器件及对应IP

参考ug1182,在zcu102板卡上与PL连接的DDR4外部存储器件为MT40A256M16GE-075E

在这里插入图片描述

Micron的官方网站找到该器件,并下载Data Sheet

在这里插入图片描述

在Vivado工程中用IP Catalog中查找DDR4 SDRAM的IP核,双击并配置IP

在这里插入图片描述

按照默认Board配置

在这里插入图片描述

其它配置项保持默认,生成IP

IP用户接口地址映射

IP使用默认配置的ROW COLUMN BANK的地址映射方式

在这里插入图片描述

IP的用户接口时序参考IP手册pg150

根据手册的说明

This mapping can have a significant impact on memory bandwidth utilization. “Row_COLUMN_BANK” is the recommended MEM_ADDR_ORDER setting.

因此在使用过程中直接顺序使用地址即可保证最大读写带宽,不用进行专门的地址特殊处理。

在User Interface章节查看地址映射部分(Rank指共用指令和地址的多个器件,此处不考虑)

在这里插入图片描述

参考DDR4器件的地址分配说明

注意:x16表示DDR4器件的数据总线DQ位宽为16,并不是表示Bank数目

在这里插入图片描述

最终用户接口的app_addr分配如下:

app_addr 寻址
app_addr[3] Bank Group选择
app_addr[5:4] Bank Group内Bank选择
{app_addr[12:6], app_addr[2:0]} Bank内Column选择
app_addr[27:13] Bank内Row选择

app_addr寻址针对的是完整的数据总线,而不是1比特数据,因此256Mbx16表示寻址范围是 256 × 1024 × 1024 256\times 1024\times 1024 256×1024×1024,即 r o w × c o l u m n × b a n k × b a n k G r o u p row\times column\times bank\times bankGroup row×column×bank×bankGroup

DDR4 MIG IP的读写时序

参考IP手册pg150。

读操作时序如下图所示:

在这里插入图片描述

app_cmd, app_addr, app_en, app_rdy为3个指令接口信号,其中app_cmd表示读写指令,app_addr表示读写指令对应的地址值,app_en表示指令有效,在(app_en & app_rdy)条件下当前指令被IP接受。

读出数据为app_rd_data,app_rd_data_valid指示当前读出数据有效。读指令被IP接受后,需要等待一般不定的时间才能收到有效的读出数据。

相比较读操作时序,写操作时序非常复杂,并且

写操作时序如下图所示:

在这里插入图片描述

写操作实际分为两个部分,写指令和写

  • 16
    点赞
  • 81
    收藏
    觉得还不错? 一键收藏
  • 30
    评论
### 回答1: ZCU102平台是赛灵思(Xilinx)公司推出的一款高性能开发板,搭载了DDR4内存。DDR4是一种高速的双数据率随机存取内存,相比于早期的DDR3内存具有更高的带宽和更低的能耗。 ZCU102平台上的DDR4内存既可以进行读取操作,也可以进行写入操作。当我们需要从DDR4内存中读取数据时,首先需要将读取的地址发送给内存控制器,然后内存控制器会根据地址访问对应的数据,并将其返回给CPU或其他外设。读取DDR4内存的过程依赖于内存控制器和地址数据的传输速率,以及内存传输协议的支持。 与此类似,当我们需要将数据写入DDR4内存时,首先需要将待写入的数据以及写入地址发送给内存控制器,然后内存控制器会将这些数据写入到指定的存储单元中。写入DDR4内存的速度取决于内存控制器的写入速率和DDR4内存本身的写入能力。此外,写入DDR4内存时还需要考虑内存写入速度和CPU或其他外设的匹配性,以保证数据传输的稳定性和可靠性。 总之,ZCU102平台上的DDR4内存既可以进行读取操作,也可以进行写入操作。这些操作依赖于内存控制器和具体的内存传输协议,同时也需要考虑内存的读写速度和数据的稳定性,以确保数据的正确读取和写入。 ### 回答2: ZCU102是赛灵思(Xilinx)公司推出的一款高性能开发板,它支持DDR4内存的读写操作。 DDR4是一种高速且低功耗的内存类型,与写入DDR4内存相比,从DDR4内存读取数据更为常见。在ZCU102上进行DDR4内存读取时,首先需要确保DDR4内存已正确连接到开发板并正确配置。使用开发板所提供的开发套件工具,可以设置DDR4内存的访问地址和数据宽度等参数。 在进行DDR4内存读取时,开发者可以使用赛灵思公司提供的软件开发工具(如Vivado)来编写适当的代码。首先,需要声明一个指针变量来指向DDR4内存的起始地址。接下来,可以使用该指针来读取DDR4内存中的数据。读取数据可以通过使用C语言的指针操作(如*ptr)来完成。 读取DDR4内存时,需要确保正确设置读取功能的时序和信号控制。在读取操作完成后,可以将读取到的数据存储在其他变量中,以便后续的数据处理或分析。 总之,通过正确配置和编写代码,ZCU102开发板可以轻松实现对DDR4内存的读取操作。这使得开发者能够利用DDR4内存的高速和低功耗特性,进行更加高效的数据读取和处理。
评论 30
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值