由DDR3的布局布线浅谈信号完整性

目录

DDR3介绍
DDR3布局
DDR3布线
DDR3电源设计
DDR3地平面
DDR3拓扑选择
DDR3阻抗匹配

DDR3介绍

在对DDR3布局布线前先简短介绍下DDR3,下面是DDR其分类方式

由于这篇主要讲解其布局布线所反映的信号完整性问题,所以对其特点及其工作原理不做详细介绍。下面是ddr、ddr2、ddr3的比较

后面会对片内终结器ODT和write leveling进行介绍。

DDR3布局

  1. 对于Bga的布局。可以先测出其pin间距,然后根据pin间距来设置格点,这样 在bga扇出的时候扇出孔刚好在4个pin中间
  2. ddr3的数据线要靠近cpu这一端。
  3. bga电源网络在布局去耦电容前先对其扇出
  4. 对于DDR3的buck电容是给ddr储能供电的,应该靠近对应的ddr旁一遍及时供电,在做Fanout时要多打孔,建议2个孔以上,电容越大需要过孔越多,也可以用铺铜的形式来做。电容的电源孔和地孔尽量靠近打,这里可以以口渴作为比喻,电容是蓄水被,放在旁边一遍可以口渴时及时补充水分,如下图:
  5. 如果几颗ddr3采用T型拓扑的话要保证T型拓扑的对称,
  6. 地址线上的匹配电阻靠近CPU,数据线上的匹配电阻靠近DDR
    7.一般2颗DDR3,可以使用6层板,top-GND-Signal-power-Gnd-Bottom.

DDR3布线

在DDR3布线前先要了解DDR有哪些型号线,如下图:

在ddr布线前首先要进行分组,分组如下:

1. 上图中红线部分,数据线要以字节分组,DDR3的数据按八位一组,在不同的时间读出或写入,所以只能是在八位内进行调换,而不能在八位以外进行调查换。
2. 地址、控制、时钟信号:地址、控制信号以时钟作参考.Address、Control与CLK归为一组,因为Address、Control是以CLK的下降沿触发的由DDR控制器输出,DDR颗粒由CLK的上升沿锁存Address、Control总线上的状态,所以需要严格控制CLK与Address/Command、Control之间的时序关系,确保DDR颗粒能够获得足够的建立和保持时间。
绕等长
等长要求如下:

线宽选择

间距选择3w原则

常规DDR3的走线设计总结如下表:

布线顺序
为了确保DDR接口最优化,DDR的布线应该按照如下的顺序进行:功率、电阻网络中的pin脚交换、数据信号线布线、地址/命令信号布线、控制信号布线、时钟信号布线、反馈信号布线。
数据信号组的布线优先级是所有信号组中最高的,因为它工作在2倍时钟频率下,它的信号完整性要求是最高的。

DDR3电源设计

先看一下DDR电源分布:

DDR3主要有3种电源,它们是VDD(1.5V)、VTT(0.75V)、VREF(0.75V,包括VREFCA和VREFDQ)。
1. 蓝色部分为VDD,是DDR3的核心电源,其引脚分布比较散,且电流相对会比较大,需要在电源平面分配一个区域给VDD,如下图:

2. VTT电源,为匹配电阻上拉到的电源,不仅有严格的容差性,而且还有很大的瞬间电流;可以通过增加去耦电容来实现它的目标阻抗匹配;由于VTT是集中在终端的上拉电阻处,不是很分散,且对电流有一定的要求,暂态瞬间电流可达3.5A左右,所以在处理VTT电源时,一般是在元件面同层通过铺铜直接连接,铜皮要有一定宽度(120MIl)。VTT电源处理如下图所示:

根据拓扑结构的不同,有的设计使用不到VTT,如控制器带的DDR器件比较少的情况下,通常上拉电阻匹配可以用分压方式的戴维南匹配代替,后面讲匹配时会讲到。
3. VREF电源 。 VREF要求更加严格的容差性,但是它承载的电流比较小。它不需要非常宽的走线,且通过一两个去耦电容就可以达到目标阻抗的要求。DDR3的VERF电源已经分为VREFCA和VREFDQ两部分,且每个DDR3颗粒都有单独的VREFCA和VREFDQ,因其相对比较独立,电流也不大,布线处理时也建议用与器件同层的铜皮或走线直接连接,无须在电源平面层为其分配电源。注意铺铜或走线时,要先经过电容再接到芯片的电源引脚,如下图

注意:非DDR信号不能以DDR电源为参考

DDR3地平面

为保证DDR信号完整性,要保证其数据信号,时钟信号有一个完整的参考平面,最好以地为参考,同组走线之间不要跨参考层和跨分割,这就需要保证地平面的完整性,在之前的文章
pcb布线中跨分割的影响及解决办法中我有分析回流信号不能跨越割槽,割槽的存在会加大型号的回流路径,在高速信号中打孔是不可避免的,但是打孔要避免过孔将参考平面打碎形成沟槽,如下图几个不规范的设计:

以上打孔虽然美观,但是,却造成了信号完整性问题,回流信号的回流路径如下

建议打孔如下:


总之,打孔要给信号回流预留通道

DDR3拓扑选择

DDR3为什么要建立拓扑?拓扑结构有哪些呢?他们有什么区别?
DDR信号属于高速信号,此时的信号线不是普通的信号线,而是传输线,高频和过长的传输线,具有传输线效应,传输线与返回路径形成一系列的电容电感在多负载情况下,除非走线分支长度保持很短.否则边沿快速变化的信号将被信号主干走线上的分支走线所扭曲,此时建立合适的拓扑结构,有利于提高信号的质量,和系统的稳定性。

通常的拓扑有,点对点,星型,远端分支或树形(T型),菊花链,fly-by,周期性负载
下面主要介绍DDR所用到的2个拓扑T型拓扑和菊花链拓扑,以及有菊花链拓扑演变的FLY-by。
T型拓扑又叫树形拓扑如下图所示
该拓扑每个分支的接收端负载和走线长度尽量保持一致,这就保证了每个分支接收端负载同时收到信号,每条分支上一般都需要终端电阻,终端电阻的阻值应和连线的特征阻抗相匹配。星形拓扑结构可以有效地避免时钟、地址和控制信号的不同步问题,但是缺点也是明显的,在频率很高时,比如DDR3(1066MHZ),T型拓扑过长的分支,很难做到阻抗匹配,所以不适合较多颗粒数目的情况,并且T型两端的分支需要等长,就好像我们的两支手臂一样。既然涉及到等长,就需要绕线,绕线势必会增加PCB的空间,空间增大后,成本就会上升。而Fly-by拓扑的结构从头串到尾,不用过多绕线,能够节省PCB上的空间。这也是为什么大多数设计工程师看到DDR3就喜欢用fly_by的缘故吧,其次是需要同等地位的分支完全对称(包括长度及阻抗等),如果不对称那么信号质量的影响比较大。所以我们在使用T型拓扑的时候应该注意预留足够的空间来绕线,另外还需要注意同一个节点分出去的分支(也就是前面说的同等地位的分支)必须对称,

在频率较高,DDR3颗粒较多时(大于4颗)可以选用菊花链,为了减小分支对主干路的影响,可以采用FLY-BY拓扑结构(像穿糖葫芦)。如下图

Fly_by拓扑结构的优点是布线相对简单,其中数据组不需要和时钟信号绕等长,这样就可以节省较多的布线空间,同时也可以支持更高的信号速率;缺点就是信号到达每片颗粒的时间不一致,带来了一定的skew,这个skew需要一定的技术来弥补。同时在前面的文章中也有提到过,对Fly_by拓扑影响最大的是主干到颗粒的那段Stub线,所以必须严格控制stub的长度,越短越好。
如下图

DDR的数据线都是一驱一的拓扑结构,且DDR2和DDR3内部都有ODT做匹配,所以不需要拉到VTT做匹配即可得到较好的信号质量。DDR2的地址和控制信号线如果是多负载的情况下,会有一驱多,并且内部没有ODT,其拓扑结构为走T型的结构,所以常常需要使用VTT进行信号质量的匹配控制。DDR3可以采用Fly-by方式走线

write leveling
前面提到为了更好的提高信号完整性,DDR3存储模块采用了fly-by的拓扑结构。该拓扑应用于地址、控制、时钟线。Fly-by拓扑能有效减少stub的长度,但是较长的走线带来了CK-CK#与DQS-DQS#间的时延(由于CK-CK#的飞行时间,其到达每个DDR3颗粒的时间不同,而DQS-DQS#通常为点到点拓扑,所以时钟与数据不同步)。一般DDR3内存控制器设计了一种叫做Write Leveling的机制,其作用就是在芯片内部进行时钟和数据/Strobe间的延时,在系统初始化的过程中,控制芯片与SDRAM通过数据信号进行通信(training),控制芯片根据收到的反馈信号进行内部延时调节,很显然,控制芯片到每一个SDRAM的延时都会不一样,通过这种机制,使得每个SDRAM看到的时钟,数据和STROBE信号是同步的所以不支持读写平衡的主控DDR控制器是不能够使用fly-by拓扑的(此时控制器不能调整DQS与CK之间的时序关系)。通常这样的主控芯片会有类似的描述:

ODT
前面讲到DDR2和DDR3内部有ODT做匹配,那么什么是ODT,为什么要做匹配呢?
ODT是On Die Termination的缩写,又叫片内端接.具体结构如下:

一个DDR通道,通常会挂接多个Rank,这些Rank的数据线、地址线等等都是共用;数据信号也就依次传递到每个Rank,到达线路末端的时候,波形会有反射(ddr负载内阻只有30几欧)从而影响到原始信号;因此需要加上终端电阻,吸收余波。

DDR3阻抗匹配

为什么要做匹配呢,信号在经过不匹配区会形成反射,为什么阻抗不匹配会形成反射呢,
反射
举个简单的例子将阻抗比作水管,信号比作水:

线路上阻抗不一致,就像水管有粗有细,对水流的阻力也就有大有小。粗的水管“阻力”小,细的水管“阻力”大。由于水管粗细不一,一部分水继续往前流,另一部分水被反射了,反射有正有负,如果负载阻抗小于源阻抗,反射电压为负,反射电压在远端叠加,还形成下冲,反之,如果负载阻抗大于源阻抗,反射电压为正。反射电压在远端叠加,会形成过冲,布线的几何形状、不正确的线端接、经过连接器的传输及电源平面的不连续等因素的变化均会导致此类反射。

反射解决方法

这里主要讲一下端接技术,前面的VTT上拉电阻即是用来消耗多余的反射,且增大了驱动端带负载的能力,那么端接技术的原理使什么呢?

我们在阻抗低的一端串接一个小电阻,等同于把水管塞一塞。或者在阻抗高的一端并联电阻到地或者电源,俗称上拉下拉,等同于给电流增加路径,相当于疏通水管,下面是一些常用的端接技术:

串联端接:
由于电路中,驱动端阻抗比较小,通常是17欧姆左右到40欧姆之间,对应到水管,就是比较粗的部分,所以驱动端需要加串阻。

并联端接:
接收端通常都是高阻,对应到水管,就是比较细的部分,所以我们需要使用上下拉电阻来匹配

我们不能把串阻放到末端,这样等于把细的水管堵的更细了。然后上下拉也不能放在始端,不能把粗水管通得更粗。
戴维南端接:

0

发表评论

电子邮件地址不会被公开。