资讯详情

DDR3/4 MIG IP 核应用--vivado

来源:网络素材

参考资料:

《pg150-ultrascale-memory-ip》

以本手册的脉络为主线,对DDR讨论3/4控制器。

1.IP核结构

74fd728de22caea0faa782bbda6a2189.png

根据官方资料,IP核主要分为用户接口、内存控制器和物理接口三部分。对于用户来说,我们需要清楚地研究用户接口的内容,其余两部分只需要理解,这里不讨论。

读写效率

X8是指内存颗粒的数据总线为8bit。常见的还有x4/x16。

2.读写时序userinterface操作

整个DDR的IP核应用主要围绕以下路径进行,开发者直接处理IP_core的userinterface。物理底层的其他内容由IP自行完成。主要指令路径包括:Command Path、write_Path、read_Path维护指令(Maintenance Commands)。

Command Path

顾名思义,就是读写操作指令的路径。app_rdy与app_en只有们有效时,新的指令可以写入命令FIFO并被执行。

  • Write Path

写入数据内容IP核的路径。

从上述时序图来看,与写入路径相关的信号有app_adf_data、app_wdf_wren以及app_wdf_end。虽然写入的数据路径可能与指令路径不对齐,但建议在实际应用过程中对齐,否则容易出现问题(后续调试和测试中提到)。

pp_wdf_end为高,表示此次写入请求的最后一个数字。以上图为例,4:1mode指用户接口时钟和物理驱动DDR时钟比为1:4。例如,用户接口的数据总线是64bit,物理层驱动DDR芯片位宽为8bit ,BL=8, 在4:1mode然后,只是一个用户clk可执行一次突发传输(DDR数据是在时钟上升和下降的边缘传输的。因此,在实施传输的过程中,app_wdf_end为高。

Read Path

数据从IP核中读出的路径。

Maintenance Commands(维护指令)

这里可以分析为什么读写效率不能达到100%,因为ddr需要刷新等。启动刷新有两种模式,一种是自动刷新,即IP另一种方法是通过选择启用用户刷新产生满足顺序的刷新请求ZQCS用户模式输入选项。在这种模式下,当init_calib_complete有效后,用户负责发布Refresh和ZQCS命令以满足DRAM组件规范所需的速率。ZQCS是用于ZQ 校准,这个和ODT相关。

扩展一下:

ODT(On-Die Termination),是从DDR2 SDRAM时代开始增加新的功能。它允许用户读写MR控制寄存器DDR3 SDRAM连接或断开中的连接或断开。

为什么要用ODT?一个DDR通道通常连接多个通道Rank,这些Rank数据线、地址线等都是共享的;数据信号将依次传输到每个信号Rank,到达线路末端时,波形会反射,影响原始信号;因此,需要增加终端电阻来吸收余波。之前的DDR,板上做终端电阻,但由于种种原因,效果不是很好,到了DDR2.实现终端电阻DDR颗粒内部,也叫On Die Termination,Die上端电阻,Die这就是硅片的意思,也就是说DDR颗粒。

所以,使用ODT的目的很简单,是为了让DQS、RDQS、DQ和DM在终结电阻处消耗信号,防止这些信号在电路上反射,从而提高信号的完整性。

3.对IP二次封装核

建议对IP核的User_interface再封一层,只需预留外部,比如wr_en/wr_data以及rd_en/rd_data等信号,类似于读写FIFO提高模块后期复用的端口。

4.调试和测试记录

手册几乎梳理好了,写一个简单的程序模拟测试。遇到一些问题,分享并记录。

  • cmd_path与write_path没对齐。

图中所示,app_rdy为低,但是wdf_wren还是然很高,短期内应该没有问题,但如果持续一段时间,必然会导致IP核中fifo写满,导致异常。

解决办法:

命令与数据路径命令对齐。写入时,当app_rdy与app_wdf_rdy只有在有效时才能触发相应的动作。

未写入数据,导致回读数据错误。

从时序上看,写入没有问题。但我忽略了它app_wdf_mask,没有赋值(正常情况下应该给0),导致信号在模拟时一致显示高阻态。然后发现ddr4_dm_dbi_n(双向信号)信号异常。

读出的数据总是0.

修改后,问题得到了解决。

读写效率测试

Wr:

Rd:

MEM_ADDR_ORDER = "ROW_COLUMN_BANK";

Wr:

Rd:

仔细的话,可以观察clk与app_rdy之间的关系,不难发现为什么两者的阅读和写作效率如此不同。每次阅读和写作时,都会安排不同的地址,IP这与效率有很大关系,这与效率有很大关系DDR实现机制有关。细节在于PG150里有相关说明。

*声明:本文在网上整理,版权归原作者所有。如果源信息错误或侵犯权益,请联系我们删除或授权。

?END

FPGA_IC推广设计课程  对数字IC/FPGA设计更加感兴趣的同学,可以关注由15年前端经验的工程师SKY带来的数字IC设计入门课程。已有数家IC公司利用这门课程进行新人培训。 请单击以下链接了解详情:数字IC/FPGA设计_从入门到精通 或点击阅读原文链接直接设计课程。  拿不到offer,几乎全额退款。  更多精彩的建议,请关注我们

标签: ddr4驱动电阻

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台