Xilinx DDR4 MIG 的调试

编程入门 行业动态 更新时间:2024-10-25 06:22:39

<a href=https://www.elefans.com/category/jswz/34/1767552.html style=Xilinx DDR4 MIG 的调试"/>

Xilinx DDR4 MIG 的调试

平台:Vivado2021.1

芯片:xcku115-flva1517-2-i (active)

语言:VerilogHDL

参考文件:pg150.下载地址

pg150-ultrascale-memory-ip.pdf • 查看器 • AMD 自适应计算文档门户 (xilinx)

DDR4介绍

DDR4,即第四代双倍数据率同步动态随机存储器SDRAM。前面我们学习过DDR3,DDR2。那么DDR4相比他们又提升在哪里呢?

新建BD工程:此部分为搭建PCIE控制DDR4的工程。

关于xilinx的DDR4的IP核,我们用户可以使用两种方式建立,第一种就是使用XILINX提供的标准的用户侧接口,也就是我们所熟悉的User interface。如下所示。

还有一种就是直接使用AXI接口的DDR控制器,使用AXI模式下的DDR4接口,我们不需要熟悉复杂的DDR4协议。也不需要使用用户侧接口来自己搭建。在 XILINX提供的BD原理图中我们可以直接调用IP核,然后选择一键连接就可以将整个系统搭建完毕。

如上图所示,我们使用一个标准的PCIE+DDR的存储模式。我们知道PCIE的XDMAIP核拥有三个接口,分别是AXI_MM,AXI_LITE,AXI_STREAM模式。其每一个接口也代表了不同的使用方法,比如我们AXI_MM接口,他拥有完整的AXI4协议。AXI协议包含读地址,读数据,写地址,写数据,写响应这几种。所以往往我们使用该接口来区分数据通道或者带有数据存储如BRAM,DDR等。而AXI_LITE就是AXI协议的基础版,对于PCIE来说我们一般用它来实现点到点的读写功能。而AXI_STREAM模式就是只包含数据流的AXI总线,由于该总线不含地址,所以速度上也是会快一点,我们往往用该总线传说不包含地址的数据流。例如FIFO等。

上图中我们在AXI_MM分别连接了DDR4的IP核,与内部存储的BRAM。而AXI_LITE上可以忽略掉。

本文章主要介绍DDR4IP核的配置和PCIE加DDR4的功能验证。

关于PCIE的设置。

这里选择GEN3*8模式,采用100mhz的参考时钟,使用AXI_MM接口,AXI数据位宽为256bit。

关于地址分配。

使用64位AXI地址。

C000_0000上挂BRAM。

8000_0000上挂DDR4。

测试的过程也很简单通过DMA模式向DDR4IP上写入数据和读出数据。

关于DDR4的IP核,在Ultra系列上DDR4的IP核与以往的DDR3DDR2的配置有一定的差异。

关于我们使用的这款DDR4内存条,根据其数据手册,DDR4支持的最高频率为1200MHZ,使用上下边沿传输数据也就是2400MHZ。这里我们来简单算一算DDR4的速率,这里我们使用一片,即数据位宽为16bit。所以理论上的数据率为2400MHZ*16bit=4800MB/S。如果使用内存模组最高可以达到64bit的数据位宽, 这时理论上的数据率为2400mhz*64bit=19200MB/S。速度还是相当的给力的。这里还需要关注一个地方,我们选择接口速率为1.2GHZ的时候,这里的参考时钟我们看到可以选择的范围为200.08mhz,而我们实际使用的参考时钟是200mhz的,这里我们实际测试下来并不会影响数据收发。

接下来四DDR4型号选择,这里要和你们原理图上的硬件型号相对应。关于数据位宽,如果原理图上设置的一组几片就选择多少。我们这里只使用了一片,就设置为16位。前面提到过64bit的数据位宽,按照这里就是使用了四片DDR,他们级联起来就是64bit的数据位宽。后面的突发位宽这里可以保持默认。

AXI选项页

AXI数据位宽支持选择。我们选择32位。

时钟配置界面

可以看到你的参考时钟和你第一页配置的一致。

高级选项

默认就好

I/O Planning and Design Checklist Tab

默认就好。

这里我们就新建好了。

工程测试。

由于我们是通过PCIE直连DDR4的模式。我们可以直接使用xilinx提供的测试函数取读写DDR4的数据。

在下载成功后,会自带的有个这个界面。我们在此界面上可以看到绿色的CAI PASS。表明DDR4初始化成功。此外在调试的过程中,会存在很多问题在此界面中。可以看到DDR4初始化到哪一个步骤下失败。从而取考虑硬件上的设计错误。

使用PCIE 下发数据。

分别测试了向0x8000_0000写入数据。(即向DDR4写入)

从0x8000_0000读出数据。(即从DDR4读出)

写入了4K的bin文件。后读出。数据一致。表明读写正常。

DDR4的测试完成,是不是发现xilinx把这些IP做的越来越简单。

更多推荐

Xilinx DDR4 MIG 的调试

本文发布于:2024-02-08 13:44:17,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1674168.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:Xilinx   MIG

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!