TA的每日心情 | 开心 2022-12-27 15:07 |
---|
签到天数: 1 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
DDR3的布局和布线非常严格,需要按照一定的设计要求来进行,下面总结一下该设计过程和相关的注意点:
, D' c" H2 e2 ^, P- F; U# O; }3 @. S8 |/ B+ q/ ?7 O
确定拓扑结构
4 g8 V- _5 Z: Q w& \) Z& K● 数据线(DQ,LDM,UDM,LDQS,UDQS):点对点,每一片单独与控制器连接,不存在拓扑结构选择问题。% ?" q4 m8 |6 c# Q* y P
● 地址线和控制线(A0-14,BA0-2,CLK,CKE,RAS,CAS,CS,WE,RESET等):
3 ~) b/ b* L6 k: v Z0 Z( ^" P对于拓扑结构一定要看芯片是否支持读写平衡(Read and Write Leveling),支持读写平衡情况下:
8 H/ `0 f* }+ Q i/ D, E& [2-4片颗粒:走T点或是Fly-by都可以。/ r/ I3 t9 w* g$ K
4片及以上颗粒:建议走Fly-by。
# z# o+ ~8 E2 ]6 L9 ]. f3 o9 E● 拓扑结构只影响地址线的走线方式,不影响数据线,一般DDR3走线选择Fly-by,不只具有最好的兼容性,也容易走线。
3 x6 g }4 o, r1 b! Q' m2 w- P+ |# G" a# |7 n; v' H" |3 ]4 h
摆放器件+ k- N7 J0 w" a& U0 I% p
DDR3靠近控制器摆放,可以取得最短的走线,获得最好的性能。. f o1 l: v: L! R; s
布线顺序
+ u5 i0 F0 q* h' t% g2 t/ z ● 确定好布局后,先尝试走CLK线,看看总长度是否小于4inch。
- y" P: F6 g; _- l' @ ● 根据走线层和板厂叠层结构,确定走线阻抗参数:单端50欧姆,差分100欧姆
6 T V; s: [9 V ● 然后按顺序走LDQS,UDQS,DQ,A0-14,BA0-2,控制线等。% f( ~' I) Y/ [3 n2 ]- X
● 完成走线后,优先扇出DDR和控制器DDR区域的电源和地线,避免后面绕等长线后无法扇出电源和地线。3 V. v, Y# Z1 u6 Q4 Z+ u' d
等长设置5 B1 M! y$ _* g6 c) L$ K& k! N
● 以参考目标线为居中,正负偏差均可
0 n. { r7 ~( G$ n: ` ● 对走线进行分组:DQ0-15,LDQS0,UDQS0和LDM0,UDM0为一组,DQ16-31,LDQS1,UDQS1和LDM1,UDM1为一组, A0-14,BA0-2,CLK和其余控制线为一组。
; @6 H0 T7 g8 t( l1 N0 z: A4 H% R ● 总的原则:CLK的长度要大于ADDR,ADDR要大于DQ
/ T- U; @$ @: Z$ K+ [ ● DQ参考LDQS和UDQS(不是CLK),最大误差±50mil,LDQS和UDQS差分等长误差±5mil
, U5 a% O. X: R2 h1 E ● LDQS和UDQS参考CLK,最大误差±250mil,即DQS=CLK±250mil
6 N2 g! ?8 l6 c+ d0 M/ n4 F1 s ● LDM参考LDQS,UDM参考UDQS,最大误差±50mil, z+ t3 O( e) r3 P5 X7 K- H
● ADD[0-14]:BA0-2,RESET,WE,CS,CAS,RAS,ODT等控制线,参考CLK最大误差±100mil: D2 O9 \2 O8 J, O1 h) U; @* g
其他布线约束和设计经验1 s7 W) x" }% p! t& w, A5 R& `) | N
● 数据线同组同层,等长,±30mil误差,保留一个裕量。
1 M; f, I6 x9 ` g6 i) x ● DQS,CLK差分走线采用紧耦合的方式走线(<2w即间距小于倍线宽),线间误差小于5mil
. b( R5 f1 }: s2 J$ a, z ● 组内线间距大于3H(H为走线到主参考平面的距离),组间大于5H
% X, D$ |. ~6 W0 N- w" ^9 q ● 数据线组内可以交换(不是控制器侧,是DDR侧), 数据线线序,推荐 D0、D16不要改变(每一片的第一个数据线不变),其它的数据线可以在自由调换。原因是内存的数据线只是存放数据,而CPU是根据CPU的数据线来存取,与内存的数据线顺序无关,相当于把数据存到一组容器,数据按什么顺序放就按什么顺序取。有时为了布线方便而调整组内的顺序
' i0 w' B' ?, q% z6 z" Y" X. }" M ● 地址线不能交换。原因是模式寄存器的值是通过地址总线发出的! g5 Z ]; i) u7 `
● 对于双向I/O信号来说,例如DQ,串行端接电阻R放置在走线的中间,用来抑制振铃,过冲和下冲
& |+ a2 T# O3 r( B ● 地址线,控制线,串行端接电阻放置在走线的发送端。
3 L, h w9 Q$ u8 w3 a ^ ● 间距的控制要考虑阻抗要求和走线的密度。# U6 l- ]5 k% T7 ~5 a4 }7 N
● 相邻两层尽量参考GND, D% T- B9 a- l* n
● rt电阻放最后一片DDR1 `/ ^1 m" u! N- w$ _
● 对于DDR3,地址线的等长往往需要过孔来配合,具体的规则均绑定在过孔上和VTT端接电阻上。最优设计,CPU的地址线到达过孔的距离等长,过孔到达VTT端接电阻的距离也等长。本质是保证统一层的走线延时一致(因为同样长度的PCB走线外层和内层的传输时间不一样), C3 p5 P' N) Q/ n7 J2 C6 `
● CLK和DQS布线时不要随意换层,且与其他信号线的间距应大于该信号线相对于参考层的2.5倍,以减少串扰
7 m3 K7 p; Z& ^ ● 注意数据线、地址线、时钟线等信号线的相对延迟,一般时钟线会略长于其他走线,以保证在时钟信号到来时数据信号或地址信号必须准备妥当 k0 q W- U$ ?% v
● 设计阻抗比要求偏小1-2欧姆,因为阻抗越大,线越细。先按小阻抗设计,后续板厂修线调整就方便。因为减小线宽,就可以加大阻抗,同时增加了间距,这样阻抗和性能两个方面都比较好照顾。, f L" H$ ?2 B9 x
● VTT开始上电必须在VDDQ之后(具体实现方式可以采用VDDQ来控制VTT电源芯片的使能),避免器件latch-up,推荐VTT和VREF同时上电4 V2 [: ]% |0 O+ n
● 传输线的速度按照6mil/ps来计算(167ps/inch,6.57ps/mm)1 E* P4 Y6 v+ a( @
● 走完地址线和数据线后,务必将DDR芯片的电源脚,接地脚,去耦电容的电源脚,接地脚全部走完,否则在后面绕等长时会很麻烦。
5 x# c" t' a4 C9 j, k, z ● DDR数据线用DQS来锁存,因此要和DQS保持等长。地址、控制线用时钟来锁存,因此要和时钟保持等长,一般等长就没有什么问题。
5 n* m+ B" n u1 ?" ` ● 串扰方面,只要拉开线距,一层信号一层地,就不会出问题' z9 S, ^' ?' P, \) P; d# O
● 一般来说,DQ,DQS,DM和时钟信号线选择VSS作为参考平面,因为VSS比较稳定,不易受到干扰: b1 K: w& R6 G: l5 q
● 高速信号换层处需要加回流过孔,这里其实就是增加了垂直方向的回流路径,这个对于高速信号是非常有必要的
" a m6 x0 t( S# h L1 E' G1 ~: r. `3 a8 j, Q' J" A# S1 G
4 ?- E g# a0 b+ A' X( A* O6 s% {
|
|