EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 longsoncd 于 2015-11-13 13:33 编辑
7 B* U" D4 E4 O& \5 r' W8 _- P) K1 q! o& B! E7 L! G* |* r) K
虽然DDR3的资料很多,ddr4和 eMMC也出现了,但是目前还是在很多项目里存在DDR3的身影; 这里把DDR3的设计心得搬出来说一说:
0 C2 f, e! R) o: J; B# ]% F" | V
& C$ N7 J3 d& p _4 F1.上一张图纸大家都看得见: # ~& b9 d* l& f1 g& T! B
如图,DDR3 sdram芯片原理上简单得很,就几个注意点:; I2 y" t7 s* U
a.DATA bus--一般都多片拼接,数据线从0往后数,这里位宽32bits【DQ0~DQ31】,实际更据您需要的容量而定;- B+ c2 [+ d8 _; V; r
b.Addr bus--A0~A13,位宽14bits;: ? R8 H3 k) n0 [
c.CLK:差分的7 j5 R& W- t; a0 T' H0 x
cke:时钟使能3 O) Y; y# O% C- o* }, d
ck_P,ck_N差分时钟* z5 T( `6 k0 I( ]4 ~% u
d.复位:ResetN
# b+ R3 N' ?4 He.bank地址选择:BA0~BA2
2 z b, a+ Y1 N2 O% [3 b2 \; t: x( R* jf.端接:ODT% _ f; B7 g6 I; R( M
g.数据掩码、控制命令 如:/cs,/WE
1 G7 D/ N6 }6 {; `6 r6 Z' O, Uh.电源 i,剩下就是电源引脚上的退耦电容/供电 ) A& Q2 \: f% Z n$ m; k# Y
2.引脚说明详细:
3 @2 `7 S: J+ v% f6 E
管脚符号 | | | A0-A9,A10/AP,A11,A12/BC#,A13 | | 地址输入。为ACTIVATE命令提供行地址,和为READ/WRITE命令的列地址和自动预充电位(A10),以便从某个bank的内存阵列里选出一个位置。A10在PRECHARGE命令期间被采样,以确定PRECHARGE是否应有于某个bank:A10为低,这个bank由BA[2:0]来选择,或者A10为高,对所有bank。在LOAD MODE命令期间,地址输入提供了一个操作码。地址输入的参考是VREFCA。A12/BC#:在模式寄存器(MR)使能的时候,A12在READ和WRITE命令期间被采样,以决定burst chop(on-the-fly)是否会被执行(HIGH=BL8执行burst chop),或者LOW-BC4不进行burst chop。 | | | Bank地址输入。定义ACTIVATE、READ、WRITE或PRECHARGE命令是对那一个bank操作的。BA[2:0]定义在LOAD MODE命令期间哪个模式(MR0、MR1、MR2)被装载,BA[2:0] 的参考是VREFCA | | | 时钟。差分时钟输入,所有控制和地址输入信号在CK上升沿和CK#的下降沿交叉处被采样,输出数据选通(DQS、DQS#)参考与CK和CK#的交叉点。 | | | 时钟使能。使能(高)和禁止(低)内部电路和DRAM上的时钟。由DDR3 SDRAM配置和操作模式决定特定电路被使能和禁止。CKE为低,提供PRECHARGE POWER-DOWN和SELF REFRESH操作(所有Bank都处于空闲),或者有效掉电(在任何bank里的行有效)。CKE与掉电状态的进入退出以及自刷新的进入同步。CKE与自刷新的退出异步,输入Buffer(除了CK、CK#、RESET#和ODT)在POWER-DOWN期间被禁止。输入Buffer(除了CKE和RESET#)在SELF REFRESH期间被禁止。CKE的参考是VREFCA。 | | | 片选。使能(低)和禁止(高)命令译码,当CS#为高的时候,所有的命令被屏蔽,CS#提供了多RANK系统的RANK选择功能,CS#是命令代码的一部分,CS#的参考是VREFCA。 | | | 数据输入屏蔽。DM是写数据的输入屏蔽信号,在写期间,当伴随输入数据的DM信号被采样为高的时候,输入数据被屏蔽。虽然DM仅作为输入脚,但是,DM负载被设计成与DQ和DQS脚负载相匹配。DM的参考是VREFCA。DM可选作为TDQS | | | 片上终端使能。ODT使能(高)和禁止(低)片内终端电阻。在正常操作使能的时候,ODT仅对下面的管脚有效:DQ[7:0],DQS,DQS#和DM。如果通过LOAD MODE命令禁止,ODT输入被忽略。ODT的参考是VREFCA | | | 命令输入,这三个信号,连同CS#,定义一个命令,其参考是VREFCA | | | | | | 数据输入/输出。双向数据,DQ[7:0]参考VREFDQ | | | 数据选通。读时是输出,边缘与读出的数据对齐。写时是输入,中心与写数据对齐。 | | | 终端数据选通。当TDQS使能时,DM禁止,TDQS和TDDS提供终端电阻。 | | | | | | DQ电源,1.5V+/-0.075V。为了降低噪声,在芯片上进行了隔离 | | | 控制、命令、地址的参考电压。VREFCA在所有时刻(包括自刷新)都必须保持规定的电压 | | | 数据的参考电压。VREFDQ在所有时刻(除了自刷新)都必须保持规定的电压 | | | | | | | | | 输出驱动校准的外部参考。这个脚应该连接240ohm电阻到VSSQ
6 B% Z4 I5 _/ {5 r1 K5 ^6 a 6 D% B. e8 d& D6 X: `2 J+ |9 j$ `
|
% T3 |) N c5 ]1 r5 q3.pcb设计,上图说明: . R$ }' N$ W% x$ u
关键要点: 0.布局合理,2片ddr芯片与cpu芯片保持同等距离,且需要预留绕线空间,便于走线等长处理,图中ddr芯片离cpu物理距离500mil: 1.数据线 走靠近GND的内部走线层,如图3、10层 2.地址线 走靠近GND的内部走线层,如图4,9层 3.相邻走线层走线尽力垂直交叉 4.差分时钟从源端(cpu)引出到两片ddr芯片,拓扑结构保持"Y"结构,切保证在分支点到两片ddr芯片的距离一致+/-5mil,时钟走线特写: 2 o4 K1 n& s' a1 e! g
5.关于走线间距,需要满足>=3W原则,图示差分时钟线宽间距为3.2mil/10.5mil,具体最好做一下仿真,叠层和板材不一样,相应的阻抗也不一样
# l P ~+ [6 V+ @
6.关于电源:两组VREF/VDD,都需要走足够宽,根据经验需要走电源平面分割
# i A) `5 M% } f$ s* X. }# r4 R, B9 t: i' g8 \* |( B
7.等长蛇形线间gap保持>3w,图中为18.5mil 7 r! M3 p5 K7 I( l" D4 Y( p. R
8.地址线addr bus/ba0~ba2/odt//cs/we等都采用Y结构从源端到ddr芯片端
3 g/ W0 b, f* v8 m3 d+ h
6 Z# a$ g9 D$ G/ e% e9.走线不跨层,过孔最少原则 6 }8 f* P9 j3 y) c* h
专注.诚信.分享.合作.发展 --------------------------- fyi best wishes! 1157323783 longsoncd@sina.cn Longson CD
& i" x% z1 i" h8 ^- a% T---------------------------
/ ]# v8 k# V- f; Q7 i, g' ?' L" r |