从内部结构分析DDR2到DDR3的变化及DDR3原理图分析

  基于FPGA的DDR相关知识导航界面,点击查看。


1、概述

  内存的升级都是为容量和读写速度服务的,每次升级无疑会使容量、读写速度增加、功耗降低,从而引起的一些硬件和时序变化。

  从SDRAM芯片内部结构分析其原理从内部结构讲解SDRAM与DDR的变化从内部结构讲解DDR到DDR2的变化

  下图列出了从SDRAM到DDR3每代内存的时钟频率范围和预取长度,SDRAM内核时钟频率和接口时钟频率一致,在每个时钟的上升沿传输数据,不需要预取数据,电压为3.3V。DDR内核时钟和接口时钟频率依旧保持相同,但是数据在接口时钟的上升沿和下降沿都传输数据。因此预取为2,表示内部传输一次数据,接口要传输两次数据。

  然后到DDR2的时候,将接口时钟频率提升到内核时钟频率的2倍,此时预取就变为4了,工作电压下降到1.8V,功耗更低。

在这里插入图片描述

图1 各种SDRAM的参数对比

  DDR3只是延续DD2的变化,将外部接口时钟频率变为内核时钟频率的4倍,又因为数据在接口时钟的双沿传输,预取变为8。同时bank变为8个,容量进一步提升。工作电压下降到1.35或1.5V,功耗更低。

  这些本质就是对接口时钟频率进行提升,然后内核使用更大数据位宽去弥补时钟频率的差别,内核时钟频率基本上没有太大变化。每次性能的提升依靠预取的翻倍,由于PC的其他原因,预取也就增加到8,DDR4也只能通过提升内核频率来提升性能,预取依旧是8。DDR5虽然预取提升到16,但是它本质上与8没有区别。

  本文只讲述DDR3在外部接口时钟频率变为内核时钟频率4倍之后,为保证读写数据的稳定性,硬件和时序上相对DDR2的一些变化。至于DDR4和DDR5以后用到的时候在来讲解他们各自的变化。SDRAM到DDR5的手册可以在公众号后台获取,可以自行研究。

2、DDR3的变化

  下图是镁光型号为MT41K256M16RE的一款DDR3内部结构框图,与前几节选用的型号均一样,都是选用16位接口数据线的芯片进行分析。

  该芯片相比DDR2芯片多了一个复位引脚和ZQ校准引脚,同时存储阵列中每个存储单元包含128位数据,而接口位宽为16位,所以接口读写八次数据,才会从存储单元中读写一次,因此预取为8。

  注意列地址线的低三位并没有连接到列地址解析器,也就是说这三位数据线并没有用于控制存储单元列地址,造成的结果就是列地址每变化8,读写存储阵列的列地址才会改变1,这也是为什么读写数据时DDR3列地址每次都需要加8的原因,你也可以理解预取为8,道理都一样。

在这里插入图片描述

图2 DDR3框图

  因此引脚和框图中与DDR2的区别仅多了复位、ZQ管脚,存储阵列数据位宽翻倍了。

2.1、预取与突发长度

  由于DDR3外部接口时钟频率变为内核时钟频率4倍,外加双沿传输数据。而内部只在内核时钟频率的上升沿传输数据,所以内核没传输一次数据,接口其实传输了8次数据,通过将内部传输的位宽变为接口传输数据位宽的8倍,使得接口传输数据速率等于内部传输数据的速率,因此预取为8。

  DDR2的突发长度可以设置为4和8,DDR3由于预取变为8,突发长度一般就只能设置为8。但DDR3应该是为了兼容DDR2的4位突发,DDR3就增加了一个长度为4的突发突变模式,由一个突发长度为4的读取操作加上一个突发长度为4的写操作来合成一个突发长度为8的传输,本质上来说突发长度还是8。注意DDR3的突发操作是不能中断的。

2.2、模式寄存器

  从DDR到DDR3,CL的持续周期个数一直在增加,DDR2一般处于25个时钟周期,DDR3一般位于514个时钟周期。模式寄存器的配置基本上与DDR2相同,只是具体的数据发生了变化。

在这里插入图片描述

图3 DDR3模式寄存器

  DDR3的扩展模式寄存器与DDR2也基本相同,对ODT、DLL使能、写恢复时间、附加延时进行设置。附加延时AL也增加了,DDR2的AL一般处于0~4个时钟周期,而DDR3包括0、CL-1、CL-2这三种选项。

在这里插入图片描述

图4 DDR3扩展模式寄存器

  DDR2的扩展模式寄存器2基本上处于保留状态,但DDR3的该寄存器可以对写入延时(CWL)、自动刷新进行设置,对应位如下图所示。

在这里插入图片描述

图5 DDR3扩展模式寄存器2

  写入延时(CWL)是从释放内部写入到锁存第一个数据输入的延迟(以时钟周期为单位),这是DDR3新增的参数,总体写入延迟 (WL) 等于CWL + AL。

在这里插入图片描述

图6 DDR3写入延时时序

  DDR2没有CWL这个参数,但是写入延时还是存在的,只不过使用的是CL参数进行替代,DDR2写入时序如下图所示,总体写入延时(WL) 等于CL + AL-1。CL本来是控制读潜伏期的,DDR3应该是为了更加精确控制读、写延时,所以将读数据延时CL与写入延时CWL分开设置了。

在这里插入图片描述

图7 DDR2写入延时时序

  为了省电,DDR3采用了一种新型的自动自刷新设计(Automatic Self-Refresh)。当开始ASR之后,通过内置的温度传感器来控制刷新的频率,因为刷新频率高的话,耗电就大,温度也随之升高。而温度传感器则在保证数据不丢失的情况下,尽量减少刷新频率,降低工作温度。初始化时通过设置扩展模式寄存器2的bit6来使能ASR功能。

  这部分的变化主要在于CL和AL的取值增加了,然后新增了写入延时参数(CWL),自刷新的频率可以根据芯片内部温度自己调整,更加节能。

2.3、复位引脚(Reset)

  DDR3新增了一个复位引脚,该引脚的出现可以简化初始化流程。当Reset有效时,必须保持低电平100ns ,在此期间,输出被禁用、ODT关闭(高阻抗)、且DRAM自行复位。在Reset被驱动为高电平之前,CKE应被驱动为低电平。 Reset变为高电平后,必须重新初始化DRAM,对应时序如下图所示。

在这里插入图片描述

图8 复位时序

2.4、ZQ校准与参考电压

  ZQ也是一个新增的脚,该引脚需要连接240Ω的低公差参考电阻。这个引脚利用内置的片上校准引擎(On-Die Calibration Engine,ODCE)执行一系列指令,以自动检测并调整数据输出驱动器的导通电阻和ODT(On-Die Termination)的终结电阻值,确保数据传输的准确性。

  DDR3定义了ZQCL和ZQCS两个ZQ校准命令,ZQ校准时序如下所示。当系统发出这一指令后,将用相应的时钟周期(在加电与初始化之后用512个时钟周期,在退出自刷新操作后用256个时钟周期、在其他情况下用64个时钟周期)对导通电阻和ODT电阻进行重新校准。

在这里插入图片描述

图9 ZQ校准

  在向DDR3发出ZQCL或ZQCS命令之前,必须对所有存储体进行预充电且必须满足tRP。在tZQinit或tZQoper持续时间内,控制器不能在DDR3通道上执行任何其他活动。

  DDR3中参考电压分为命令与地址信号的参考电压(VREFCA)和数据总线参考电压(VREFDQ),有效的提高系统数据总线的信噪等级,抗干扰能力更强。

2.5、点对点连接

  点对点连接主要是简化硬件工程师对多片DDR3的PCB电路设计,一个主控芯片驱动多片DDR3芯片,DDR3布局和走线一般有T型、Fly-by、菊花链几种。每种拓扑走线的难度不一样,对于噪声的抗干扰能力也不一样。Fly-by的结构又引入了写入均衡技术(Write Leveling),如果对这部分内容感兴趣,可以参考以下链接进行了解,https://blog.csdn.net/jsf120/article/details/113986468。

  DDR3的点对点连接(Point-to-Point,P2P)拓扑结构相较于DDR2的T型分支拓扑结构有几个显著的好处:

  1. 简化的拓扑结构:P2P拓扑结构简单直接,减少了分支的数量和长度,这使得整个网络的阻抗特性更容易控制,有助于提高信号的完整性。

  2. 更好的信号完整性:由于减少了分支,信号在传输过程中的干扰和衰减降低,从而提高了数据传输的可靠性和速度。

  3. 自动校准:DDR3控制器支持自动校准功能,可以在系统启动时自动完成对存储器系统的校准,这减少了设计人员在PCB布局和信号完整性方面的工作量。

  4. 写入均衡技术:DDR3支持写入均衡(Write Leveling)技术,允许控制器补偿由于fly-by拓扑结构引入的时序差异,确保数据在DQ总线上可以可靠地被捕获。

  5. 易于维护和升级:P2P拓扑结构简化了内存模块的维护和升级过程,因为每个内存通道独立于其他通道,可以单独添加或移除内存模块而不影响整个系统。

  总的来说,DDR3的点对点连接拓扑结构通过简化设计、提高信号质量、支持自动校准和写入均衡技术,以及降低功耗,为系统提供了更高的性能和可靠性,同时也简化了内存模块的维护和升级。

3、DDR3原理图分析

  由于开发板上使用的是DDR3存储器,所以就结合手册对原理图进行简单的讲解。使用xilinx的zynq 7030核心板,PS和PL各包含两片DDR3存储器,每片容量为512Mb,接口时钟频率支持800MHz,等效的单沿数据传输速率为1600MT/S,本文只对PL端的原理图做简要说明。

  两片DDR3相同的地址线和指令线连在一起,将数据线扩展为32位,也就是说同时使用两片DDR3时,读写操作的数据位宽为32位,使用时根据需要选择16位或者32位数据位宽即可。

在这里插入图片描述

图10 PL端DDR3原理图

  根据下图DDR3的初始化时序来分析原理图的参考电压和引脚上下拉的连接。

在这里插入图片描述

图11 DDR3初始化时序

  首先上电之后,在功率斜坡期间建议reset小于0.2×VDDQ,确保输出保持禁用(高阻)和ODT关闭(RTT也是高阻)。在原理图中reset引脚通过4.7KΩ下拉到地,在上电时可以确保为低电平,满足要求。

在这里插入图片描述

图12 复位引脚接地

  上电期间还需要满足一些添加,VDD和VDDQ由同一个电源提供,且相差要小于0.3V。并且要求两个参考电压VREFDQ和VREFCA均等于VDD/2。原理图上VDD和VDDQ均连接到1.5V电源,VREFDQ和VREFCA均连接到DDRVREF,满足要求。注意ZQ引脚根据手册要求通过一个240Ω的电阻接地。

在这里插入图片描述

图13 电源电压连接

  并且要求其余地址总线、片选、时钟使能等引脚的电压必须小于VDD和VDDQ,大于VSS和VSSQ,且最大电压小于0.95V。原理图对于这些信号的处理如下所示,上拉到0.75V的高电平,电压就处于0~0.75V之间了,满足上述要求。注意差分时钟线之间接了一个电阻,这个电阻是用于消除差模干扰的。

在这里插入图片描述

图14 引脚电压处理

  通过TI的一颗专门为DDR供电的芯片生成DDRVREF和DDR0V75,对应原理图如下所示。

在这里插入图片描述

图15 生成DDRVREF和DDR0V75

  TPS51200器件被用作DDR3内存的VTT(Voltage Termination Termination)稳压器,目的是为了在DDR3内存系统中提供稳定的VTT电压,以确保数据信号的完整性。TI推荐的使用方法如下所示,与原理图中基本一致。

  VDDQ经过R1和R2分压,由于R1和R2均为10KΩ,所以TPS51200参考电压输入为VDDQ/2=0.75V。然后经过内部处理,使得6号引脚输出的VTTREF始终位于VDDQ/2的误差范围内,不会出现太大波动。

  3号引脚输出电压为DDR提供VTT,这个就是DDR地址线和控制线的上拉电源,必须小于0.95V。如果输出电压稳定,则9号引脚输出高电平。7号引脚是内部LDO的使能引脚,为高电平时工作。

在这里插入图片描述

图16 TI官方推荐的电路连接

  DDR3的原理图大致就是这些内容了,只是要注意每个电源管脚都要多加电容滤波,如下图和图12中的滤波电容,确保电压的平稳,且保证VDD与VDDQ能够在200ms内上升到最大值。

在这里插入图片描述

图17 滤波电容

4、总结

  本文主要对DDR3与DDR2的区别做了讲解,之后通过手册要求对DDR3的原理图做了简单分析,主要包括以下内容。

  1. DDR3外部接口时钟频率变为内核时钟频率的4倍,为了维持数据传输速率不变,预取长度变为8。

  2. CL和AL持续的时钟个数增加,新增了一个写入延时参数CWL,芯片的自刷新频率会根据芯片温度动态调整,进一步节省电力。

  3. 新增复位引脚和ZQ校准引脚,主控芯片可以通过发出ZQ校准指令调整数据输出驱动器的导通电阻和ODT(On-Die Termination)的终结电阻值。

  4. 新增点对点连接,DDR3支持fly-by拓扑结构,引入了写入均衡技术。能够简化设计、提高信号质量,降低功耗。

  5. 对DDR3原理图做了简要分析,包括参考电源引脚、电源供电引脚、地址引脚、数据引脚的连接。


  如果对文章内容理解有疑惑或者对代码不理解,可以在评论区或者后台留言,看到后均会回复!

  如果本文对您有帮助,还请多多点赞👍、评论💬和收藏⭐!您的支持是我更新的最大动力!将持续更新工程!

  • 28
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

电路_fpga

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值