扒一扒DDR4的新功能和PCB设计上的一些注意事项–转

  • Post author:
  • Post category:其他


扒一扒DDR4的新功能和PCB设计上的一些注意事项



转自

http://www.elecfans.com/d/906656.html

DDR4新增了许多功能,这对于我们之前信手拈来的内存


PCB设计


又带来了一些新的挑战,虽然说之前的一些规范可以用,但还是有很多不一样的地方,如果依然按照之前的设计方法来做,说明你还不了解DDR4,一准入坑。今天咱们就来扒一扒它的新功能和


PCB


设计上的一些注意事项。

DDRX发展趋势及参数对比





DDR4信号引脚功能







DDR4新增


pi


n



DDR4新增功能

(1)新的JEDEC POD12


接口


标准(工作电压1.2V) ;

(2)DBI:可以降低功耗并且提升数据信号完整性;

(3)Bank群组结构:是个8n预取群组结构,它可以使用两个或者四个Bank组,这允许DDR4内存在每个Bank群组单独被激活、读取、写入或刷新操作,这样可以带来更高的内存速度和带宽;

(4)取消了Dera


ti


ng,时序仿真计算不再繁琐;

(5)DQ动态确定


Vr


ef ( V_ cen


te


r ) ,增加了眼图要求;

(5)新的终止调度:在DDR4中DQ bus可以转移终止到VDDQ ,这样即使VDD电压降低的情况下也能保证稳定;

(6)新的数据总线CRC技术,可以进行传输过程中的错误侦测,特别对非ECC内存进行写入操作时有帮助;

(7)针对命令和地址总线的新的CA奇偶校验;突发长度和突发停止长度分别为8和4 ;

(8)正常和动态的ODT :改进ODT协议,并且采用新的Park Mode模式可以允许正常终结和动态吸入终结,而不需要去驱动ODT Pin

(9)Differential Signaling(差分信号技术)

信号分组

DDR3数据信号的分组



DDR4数据信号的分组



DDR3地址信号的分组



DDR4地址信号的分组



布局要求

(1)地址线布局


布线


需使用Fly-by的拓扑结构,不可使用T型,拓扑


过孔


到管脚的长度尽量短,长度在150


mi


l左右



(2)VTT上拉


电阻


放置在相应网络的末端,即靠近最后一个DDR4颗粒的位置放置;注意VTT上拉电阻到DDR4颗粒的走线越短越好,走线长度小于500mil;每个VTT上拉电阻对应放置一个VTT的滤波


电容


(最多两个电阻共用一个电容)



(3)


CPU


端和DDR4颗粒端,每个引脚对应一个滤波电容,滤波电容尽可能靠近引脚放置。线短而粗,回路尽量短;CPU和颗粒周边均匀摆放一些储能电容,DDR4颗粒每片至少有一个储能电容。



阻抗控制

(1)单端线:50ohm

(2)差分线:100ohm

带状线和平面

(1)除了从焊盘到过孔之间的短线外,所有的走线都必须走带状线,即


内层


走线



(2)所有的内层走线都要求夹在两个参考平面之间,即相邻层不要有信号层,这样可以避免串扰和跨分割走线,走线到平面的边缘必须保持4mil以上的间距;



(3)数据线参考平面优先两边都是GND,接受一边地,一边自身电源,但是到GND平面的距离要比到电源平面的距离要近;对于地址线,控制信号,CLK来说,参考面首选GND和VDD,也可以选GND和GND。



容性负载补偿

flyby拓扑要求stub走线很短,当stub走线相对于信号边沿变化率很短时,stub支线和负载呈容性。负载引入的电容,实际被分摊到了走线上,所以造成走线的单位电容增加,从而降低了走线的有效阻抗。所以在设计中,我们应该将负载部分的走线设计为较高阻抗,最直接有效的方式就是减小支线线宽。经过负载电容的平均后,负载部分的走线才会和主线阻抗保持一致,从而达到阻抗连续,降低反射的效果。



PCB叠层设计

(1)所有的DQ线必须同组同层。

(2)地址线是否同层不做要求。

(3)为了减少过孔产生的Stub,强烈建议在同一层中优先布DQ,   DQS,CLK等信号。如果所有的BGA都在top层,data线尽量的靠近bottom层走,而地址,控制线则可以靠近top层走;当BGA在top层时,越靠近bottom层,过孔产生的stub越短,信号质量越好。



走线线宽和线间距

(1)线宽和线间距必须满足阻抗控制,即单端线50ohm,差分线100ohm。ZQ属于模拟信号,布线尽可能短,并且阻抗越低越好,所以尽可能的把线走宽一点,建议3倍50ohm阻抗控制的线宽;

(2)DQ和DBI数据线,组内要求满足3W间距,与其他组外信号之间保持至少4W;

(3)DQS和CLK距离其他信号间距做到5W以上;

(4)在过孔比较密集的BGA区域,同组内的数据线,地址线的间距可以缩小到2W,但是要求这样的走线尽可能的短,并且尽可能的走直线;

(5)如果空间允许,所有的信号线走线之间的间距尽可能的保证均匀美观;

(6)内存信号与其他非内存信号之间应该保证4倍的介质层高的距离。





等长要求

(1)数据走线尽量短,不要超过2000mil,分组做等长,组内等长参考DQS误差范围控制在+/-5mil;

(2)地址线、控制线、


时钟


线作为一组等长,组内等长参考CLK误差范围控制在+/-10mil;

(3)DQS、时钟差分线对内误差范围控制在+/-2mil;

(4)RESET和ALERT不需要做等长控制

(5)信号实际长度应当包括零件管脚的长度,尽量取得零件管脚长度,并导入软件中;

(6)因有些IC内核设计比较特别,按新品设计指导书或说明按参考板做,特别是


Intel





AMD


的芯片,请特别留意芯片手册要求;





电源处理

(1)VDD(1.2V)电源是DDR3的核心电源,其引脚分布比较散,且


电流


相对会比较大,需要在电源平面分配一个区域给VDD(1.2V);VDD的容差要求是5%,详细在JEDEC里有叙述。通过电源层的平面电容和专用的一定数量的去耦电容,可以做到电源完整性。



(2)VTT(0.6V)电源,它不仅有严格的容差性,而且还有很大的瞬间电流;可以通过增加去耦电容来实现它的目标阻抗;由于VTT是集中在上拉电阻处,不是很分散,且对电流有一定的要求,在处理VTT电源时,一般是在元件面同层通过铺铜直接连接,铜皮要有一定宽度(120mil)。



(3)VREF(0.6V)VREF要求更加严格的容差性,但是它承载的电流比较小。它不需要非常宽的走线,且通过一两个去耦电容就可以达到目标阻抗的要求。因其相对比较独立,电流也不大,布线处理时建议用与器件同层的铜皮或走线直接连接,无须再电源平面层为其分配电源。注意铺铜或走线时,要先经过电容再接到芯片的电源引脚,不要从分压电阻那里直接接到芯片的电源引脚。



(4)VPP(2.5V)内存的激活供电,容差相对宽松,最小2.375V,最大2.75V。电流也不是很大,一般走根粗线或者画块小铜皮即可。



以下参考:

https://www.cnblogs.com/zhongguo135/p/8486961.html

DDR4接口
A[17:0] input

为激活命令提供行地址,为读、写命令

地址输入

:提供列地址,也为模式寄存器设

置提供操作码,A[16]只用于8Gb和16Gb,A[17]只用于16Gb,另外

(A10/AP, A12/BC_n, WE_n/A14, CAS_n/A15, RAS_n/A16还有一些别

的功能)

A10/AP input


自预充电(Auto precharge)

:在读写命令期间采样A10,决定是

否对访问的Bank在读写操作之后进行Auto Precharge,高电平表示进

行Auto Precharge,低电平表示不进行Auto Precharge。

另外PRECHARGE命令期间也会对A10进行采样,来决定是对一个(A10为

低电平)Bank进行还是对所有的Banks(A10为高电平)进行PRECHARGE,

如果选择一个,则选择的Bank由Bank组和Bank地址决定

A12/BC_n input


突发突变(Burst chop)

:在读和写命令期间对A12/BC_n进行采样,

来决定是否进行突发突变,高电平表示进行,低电平表示不进行.具体

可以查看命令真值表

ACT_n input


命令输入(command input)

:ACT_n用于指示激活命令。当ACT_n(与CS_n)是低电平时,输入RAS_n/A16,CAS_n/A15, 和WE_n/A14 看作行地址用于激活命令。

当ACT_n为高电平(CS_n为低)时,RAS_n/ A16, CAS_n/A15, and WE_n/A14,用作RAS_n, CAS_n,和WE_n

BA[1:0] input


Bank地址输入(bank address inputs)

:指示被ACTIVTE,READ,

WRITE或者PRECHARGE命令操作的Bank。另外用作指示在MODE REGISTER

SET命令期间要访问的模式寄存器

BG[1:0] input


Bank组地址输入(Bank group address inputs)

:指示被ACTIVTE,

READ,WRITE或者PRECHARGE命令操作的Bank组。另外用作指示在MODE REGISTER SET命令期间要访问的模式寄存器,BG[1:0]用于x4和x8配

置,而BG[1]不用于x16配置

C0/CKE1,

C1/CS1_n,

C2/ODT1

input Stack address inputs:

CK_t,

CK_c,

input


时钟:

差分时钟输入,所有的地址,命令和控制输入信号在CK_t和

CK_c的低电平被采样

CKE input


时钟使能:

高电平激活,低电平禁止内部时钟信号,输入缓存和输

出驱动。拉低CKE提供PRECHARGE,POWER_DOWN和SELF REFRESH操作。

CKE在读写期访问期间必须保持HIGH,

CS_n input 片选

DM_n,

UDM_n,

LDM_n

input


输入数据Mask:

用于写数据,DM在DQS的双沿采样,DM不支持x4配置,

UDM_n用于x16的高8位,LDM_n用于x16低8位,

ODT

input

On-die termination:ODT为高电平时使能内部终端电阻到DDR4.当使

能时,ODT(Rtt)只用于x4和x8的DQ, DQS_t,DQS_c,

DM_n/DBI_n/TDQS_t, 和TDQS_c信号(当TDQS功能通过模式寄存器

使能)。对于x16配置,Rtt应用于DQ, DQSU_t, DQSU_c, DQSL_t,

DQSL_c, UDM_n,和 LDM_n信号,如果模式寄存器禁止Rtt,ODT脚将

被忽略。

PAR INPUT

RAS_n/A16,

CAS_n/A15,

WE_n/A14

INPUT

命令输入:

RESET_n

input 低电平异步复位:

TEN

input 连通性测试模式:高电平有效,低电平无效

DQ

IO


数据输入输出 :

对于x4,x8和x16分别代表DQ[3:0],DQ[7:0]和

DQ[15:0].如果在模式寄存器中使能了写CRC,写CRC会添加在写

突发的后面

DBI_n,

UDBI_n,

LDBI_n

I/O


DBI输入输出:

数据总线翻转。DBI_n用于x8,UDBI_n用于x16的

高8位,LDBI_n用于x16的低8位。不支持x4。通过模式寄存器可

以配置DBI用于读和写操作。

DQS_t,

DQS_c,

DQSU_t,

DQSU_c,

DQSL_t,

DQSL_c,

IO


数据选通:

输入用于写数据输出用于读数据。与输出数据边沿对

齐,与输入数据中心对齐,DQS用于x4,x8,DQSU用于x16高8位,

DQSL用于x16低8位。DDR4只支持差分数据选通,不支持单端数据

选通道。

ALERT_n

TDQS_t,

TDQS_c

output


终端数据选通道

:TDQS只用于x8 DRMAs.如果在模式寄存器使能该功能,DRAM会在TDQS_t和TDQS_c使能与DQS_t和DQS_c同样

的Rtt终端电阻。当TDQS功能通过模式寄存器禁止,DM/TDQS_t脚会提供DATA MASK(DM)功能,TDQS_c脚不使用。对于x4和x16模式,

必须禁止TDQS功能。DM功能只支持x8和x16配置

ZQ

参考 外部通过240欧姆电阻连接到VssQ



Bank与Bank 组

的区分

这是从DDR4框图中截取的一部分。该DDR总共有16个Bank,每4个Bank组成一个Bank组。


Bank与Bank 组

的区分


READ Buust操作

DDR4 读命令支持突发长度为BL8,BC4两种,或者OTF(实时修改BL8和BC4)。这由A12来控制

.A12 = 0 ,BC4(BC4 = burst chop)

.A12 = 1 ,BL8