TA的每日心情 | 开心 2022-12-27 15:07 |
---|
签到天数: 1 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
DDR3的布局和布线非常严格,需要按照一定的设计要求来进行,下面总结一下该设计过程和相关的注意点:
% e8 i/ v8 f1 |! s4 `
- y. ~: V$ o+ a确定拓扑结构
! r2 C1 ^( I, f! z- r/ j! c9 e● 数据线(DQ,LDM,UDM,LDQS,UDQS):点对点,每一片单独与控制器连接,不存在拓扑结构选择问题。
3 `: U# x- N" t6 A/ F/ G; f● 地址线和控制线(A0-14,BA0-2,CLK,CKE,RAS,CAS,CS,WE,RESET等):
* F T6 @% @4 [% b* ^$ q+ Y+ D* {对于拓扑结构一定要看芯片是否支持读写平衡(Read and Write Leveling),支持读写平衡情况下:5 C7 I( Y( H& M1 w }" }
2-4片颗粒:走T点或是Fly-by都可以。
) ~" l* [2 n0 ]4片及以上颗粒:建议走Fly-by。
$ R/ J& {$ W- S0 o; |● 拓扑结构只影响地址线的走线方式,不影响数据线,一般DDR3走线选择Fly-by,不只具有最好的兼容性,也容易走线。
# |$ F* B: D$ u9 X9 r. N( J" w; F8 ^7 u$ F3 T' A3 a. r8 F; N% s
摆放器件
5 `5 \! g1 M ]7 \4 B$ C$ vDDR3靠近控制器摆放,可以取得最短的走线,获得最好的性能。
/ \. s+ ^, d& o8 O' v: ^5 z布线顺序/ u3 V+ d8 b, H7 j
● 确定好布局后,先尝试走CLK线,看看总长度是否小于4inch。 }: z) n, ?! K" ~
● 根据走线层和板厂叠层结构,确定走线阻抗参数:单端50欧姆,差分100欧姆( v, A8 x+ ~- s8 `$ h
● 然后按顺序走LDQS,UDQS,DQ,A0-14,BA0-2,控制线等。! m+ H- s+ {# e. W: Z
● 完成走线后,优先扇出DDR和控制器DDR区域的电源和地线,避免后面绕等长线后无法扇出电源和地线。1 u. m- m8 ^ D8 p! w" k+ m0 R
等长设置
0 a/ D2 Q& S8 b$ r2 w- N5 { ● 以参考目标线为居中,正负偏差均可+ Y4 [* e/ s" o# a2 }
● 对走线进行分组:DQ0-15,LDQS0,UDQS0和LDM0,UDM0为一组,DQ16-31,LDQS1,UDQS1和LDM1,UDM1为一组, A0-14,BA0-2,CLK和其余控制线为一组。$ F- [2 D6 Q- v- W
● 总的原则:CLK的长度要大于ADDR,ADDR要大于DQ# f5 D# Z* I. v: c9 Y" H( q% q9 k
● DQ参考LDQS和UDQS(不是CLK),最大误差±50mil,LDQS和UDQS差分等长误差±5mil
8 W) q% k/ e% B3 B. ~: g1 _7 S ● LDQS和UDQS参考CLK,最大误差±250mil,即DQS=CLK±250mil' M2 o7 H2 e# b e" `+ `
● LDM参考LDQS,UDM参考UDQS,最大误差±50mil( e( Z& ] @2 x& F
● ADD[0-14]:BA0-2,RESET,WE,CS,CAS,RAS,ODT等控制线,参考CLK最大误差±100mil+ D0 F5 Z; c* H0 H
其他布线约束和设计经验/ K$ h* O6 }3 M5 A
● 数据线同组同层,等长,±30mil误差,保留一个裕量。1 U1 |2 F# D, I I
● DQS,CLK差分走线采用紧耦合的方式走线(<2w即间距小于倍线宽),线间误差小于5mil
, x/ D1 C% H7 n) G) n ● 组内线间距大于3H(H为走线到主参考平面的距离),组间大于5H# D) y8 g+ E8 H. s5 N* v
● 数据线组内可以交换(不是控制器侧,是DDR侧), 数据线线序,推荐 D0、D16不要改变(每一片的第一个数据线不变),其它的数据线可以在自由调换。原因是内存的数据线只是存放数据,而CPU是根据CPU的数据线来存取,与内存的数据线顺序无关,相当于把数据存到一组容器,数据按什么顺序放就按什么顺序取。有时为了布线方便而调整组内的顺序
/ L, j2 }3 {/ p) r ● 地址线不能交换。原因是模式寄存器的值是通过地址总线发出的
5 y4 j2 l9 D! y, E! a: K$ i/ C) @& N ● 对于双向I/O信号来说,例如DQ,串行端接电阻R放置在走线的中间,用来抑制振铃,过冲和下冲
2 S/ [2 G# N1 x/ N2 V ● 地址线,控制线,串行端接电阻放置在走线的发送端。( a5 Z5 g" m: _
● 间距的控制要考虑阻抗要求和走线的密度。$ _5 X- i0 g# I# b6 _+ k- i
● 相邻两层尽量参考GND
, q, _) v* S7 m$ q" k% R) w ● rt电阻放最后一片DDR
% L; G( i+ v+ u- W! j( L1 m: x ● 对于DDR3,地址线的等长往往需要过孔来配合,具体的规则均绑定在过孔上和VTT端接电阻上。最优设计,CPU的地址线到达过孔的距离等长,过孔到达VTT端接电阻的距离也等长。本质是保证统一层的走线延时一致(因为同样长度的PCB走线外层和内层的传输时间不一样)) g! s5 u9 N2 o7 f8 U& A O8 L
● CLK和DQS布线时不要随意换层,且与其他信号线的间距应大于该信号线相对于参考层的2.5倍,以减少串扰5 I/ X3 h, G0 v8 @) k8 p# `- D" l
● 注意数据线、地址线、时钟线等信号线的相对延迟,一般时钟线会略长于其他走线,以保证在时钟信号到来时数据信号或地址信号必须准备妥当' f/ c9 w7 t, Y4 N E; k! L. i4 F
● 设计阻抗比要求偏小1-2欧姆,因为阻抗越大,线越细。先按小阻抗设计,后续板厂修线调整就方便。因为减小线宽,就可以加大阻抗,同时增加了间距,这样阻抗和性能两个方面都比较好照顾。
' }: y6 F! r4 D3 F0 q ● VTT开始上电必须在VDDQ之后(具体实现方式可以采用VDDQ来控制VTT电源芯片的使能),避免器件latch-up,推荐VTT和VREF同时上电, B; g+ y2 {7 Y: `" ~/ H
● 传输线的速度按照6mil/ps来计算(167ps/inch,6.57ps/mm)2 h5 g6 k5 W: @2 h
● 走完地址线和数据线后,务必将DDR芯片的电源脚,接地脚,去耦电容的电源脚,接地脚全部走完,否则在后面绕等长时会很麻烦。" @( v, N' W& K P1 Q$ |
● DDR数据线用DQS来锁存,因此要和DQS保持等长。地址、控制线用时钟来锁存,因此要和时钟保持等长,一般等长就没有什么问题。* O0 F4 B F% T$ `
● 串扰方面,只要拉开线距,一层信号一层地,就不会出问题
! u' J. i* i/ s, V/ h' m ● 一般来说,DQ,DQS,DM和时钟信号线选择VSS作为参考平面,因为VSS比较稳定,不易受到干扰
4 E' _: w" L& I ● 高速信号换层处需要加回流过孔,这里其实就是增加了垂直方向的回流路径,这个对于高速信号是非常有必要的+ }# C+ L# M: w
: `% t F h w' }! I) o; ^6 h+ l, Z1 Z# w) n+ Y8 h
|
|