主题位置:论坛首页>>论坛大类>>PCB设计  发布新贴 版 主:linelayout
楼 主
·网名:jia123
·头衔:大咕噜
·级别:
·资历:16620
·经验:1170
·注册:2012/11/23
·发送短信 加为好友
主 题:DDR3 PCB布线规则

 

第一步,确定拓补结构(仅在多片DDR芯片时有用)

 

首先要确定DDR的拓补结构,一句话,DDR1/2采用星形结构,DDR3采用菊花链结构。拓补结构只影响地址线的走线方式,不影响数据线。以下是示意图。

 

 

星形拓补就是地址线走到两片DDR中间再向两片DDR分别走线,菊花链就是用地址线把两片DDR“串起来”,就像羊肉串,每个DDR都是羊肉串上的一块肉,哈哈,开个玩笑。

 

第二步,元器件摆放

 

确定了DDR的拓补结构,就可以进行元器件的摆放,有以下几个原则需要遵守:

 

原则一,考虑拓补结构,仔细查看CPU地址线的位置,使得地址线有利于相应的拓补结构

 

原则二,地址线上的匹配电阻靠近CPU

 

原则三,数据线上的匹配电阻靠近DDR

 

原则四,将DDR芯片摆放并旋转,使得DDR数据线尽量短,也就是,DDR芯片的数据引脚靠近CPU

 

原则五,如果有VTT端接电阻,将其摆放在地址线可以走到的最远的位置。一般来说,DDR2不需要VTT端接电阻,只有少数CPU需要;DDR3都需要VTT端接电阻。

 

原则六,DDR芯片的去耦电容放在靠近DDR芯片相应的引脚

 

以下是DDR2的元器件摆放示意图(未包括去耦电容),可以很容易看出,地址线可以走到两颗芯片中间然后向两边分,很容易实现星形拓补,同时,数据线会很短。

 

 

以下是带有VTT端接电阻的DDR2元器件摆放示意图,在这个例子中,没有串联匹配电阻,VTT端接电阻摆放在了地址线可以到达的最远距离。

 

 

以下是DDR3元器件摆放示意图,请注意,这里使用的CPU支持双通道DDR3,所以看到有四片(参考设计是8片)DDR3,其实是每两个组成一个通道,地址线沿着图中绿色的走线传递,实现了菊花链拓补。地址线上的VTT端接电阻摆放在了地址线可以到达的最远的地方。同样地,数据线上的端接电阻也放置在了靠近DDR3芯片的位置,数据线到达CPU的距离很短。同时,可以看到,去耦电容放置在了很靠近DDR3相应电源引脚的地方。

 

第三步,设置串联匹配电阻的仿真模型

 

摆放完元器件,建议设置串联匹配电阻的仿真模型,这样对于后续的布线规则的设置是有好处的。点击AnalyzeSI/EMI SimModel Assignment,如下图。

 

 

然后会出来Model Assignment的界面,如下图

 

 

然后点击需要设置模型的器件,通常就是串联匹配电阻,分配或创建合适的仿真的模型。

 

 

分配好仿真模型之后的网络,使用Show Element命令,可以看到相关的XNET属性。

第四步,设置线宽与线距

 

1. DDR走线线宽与阻抗控制密切相关,经常可以看到很多同行做阻抗控制。对于纯数字电路,完全有条件针对高速线做单端阻抗控制;但对于混合电路,包含高速数字电路与射频电路,射频电路比数字电路要重要的多,必须对射频信号做50欧姆阻抗控制,同时射频走线不可能太细,否则会引起较大的损耗,所以在混合电路中,本人往往舍弃数字电路的阻抗控制。到目前为止,本人设计的混合电路产品中,最高规格的DDRDDR2-800,未作阻抗控制,工作一切正常。

 

2. DDR的供电走线,建议8mil以上,在Allegro可以针对一类线进行物理参数的同意设定,我本人喜欢建立PWR-10MIL的约束条件,并为所有电源网络分配这一约束条件。

 

3. 线距部分主要考虑两方面,一是线-线间距,建议采用2W原则,即线间距是2倍线宽,3W很难满足;二是线-Shape间距,同样建议采用2W原则。对于线间距,也可以在Allegro中建立一种约束条件,为所有DDR走线(XNET)分配这样的约束条件。

 

4. 还有一种可能需要的规则,就是区域规则。Allegro中默认的线宽线距都是5mil,在CPU引脚比较密集的时候,这样的规则是无法满足的,这就需要在CPUDDR芯片周围设定允许小间距,小线宽的区域规则。

 

第五步,走线

 

走线就需要注意的内容比较多,这里只做少许说明。

 

所有走线尽量短

 

走线不能有锐角

 

尽量少打过孔

 

保证所有走线有完整的参考面,地平面或这电源平面都可以,对于交变信号,地与电源平面是等电位的

 

尽量避免过孔将参考面打破,不过这在实际中很难做到

 

走完地址线和数据后,务必将DDR芯片的电源脚,接地脚,去耦电容的电源脚,接地脚全部走完,否则在后面绕等长时会很麻烦的

 

第六步,设置等长规则

 

对于数据线,DDR1/2DDR3的规则是一致的:每个BYTE与各自的DQSDQM等长,即DQ0:7DQS0DQM。等长,DQ8:15DQS1DQM1等长,以此类推。

 

地址线方面的等长,要特别注意,DDR1/2DDR是很不一样的。

 

对于DDR1/2,需要设定每条地址到达同一片DDR的距离保持等长。

 

对于DDR3,地址线的等长往往需要过孔来配合,具体的规则均绑定在过孔上和VTT端接电阻上,如下图。可以看到,CPU的地址线到达过孔的距离等长,过孔到达VTT端接电阻的距离也等长。

 

补充一点,很多时候,地址线的等长要求不严格,这一点我还没有尝试过。在本人设计的这些产品中,地址线,数据线都做了25milRelative Propagation Delay的等长规则设定。关于等长规则设定的细节在这里不再赘述。

 

第七步,绕等长

 

完成等长规则的设定后,最后一步也是工作量最大的一步:绕等长。

 

在这一步,我认为只有一点规则需要注意:尽量采用3倍线宽,45度角绕等长。

 

绕等长完成后,最好把DDR相关网络锁定,以免误动。

 

 

到这里,DDR走线就已经完成了,在本人设计过的三,四十种产品中,都是按照上面的规则与过程完成的,DDR2最高规格是DDR2-800512MBDDR3最高规格是DDR3-16001GB,都可以很稳定的工作,无论性能还是可靠性,都未曾出过问题。

[此贴子已经被jia123于2016-6-8 10:04:37编辑过]
个人签名档还未设置,请点击这里进行设置
  删除 置顶 推荐 精华 加锁 编辑 取消
 2016/6/8 9:41:28 
Re:DDR3 PCB布线规则
·网名:jia123
·头衔:大咕噜
·级别:
·资历:16620
·经验:1170
·注册:2012/11/23
·发送短信 加为好友
1.DDR的地址线不能换pin
2.DDR的Data线,比如:有8组,相当于有8个group,理论上8个组内部是可以互换的,但为了万无一失,在实践中一般不这样换。一般只在组内的8根线换,并不是8个组之间任意交换!
[此贴子已经被jia123于2018/7/5 11:15:04编辑过]
个人签名档还未设置,请点击这里进行设置
  删除 置顶 推荐 精华 加锁 引用 编辑
 2017/10/21 10:28:05 
Re:DDR3 PCB布线规则
·网名:jia123
·头衔:大咕噜
·级别:
·资历:16620
·经验:1170
·注册:2012/11/23
·发送短信 加为好友
DDR3的数据线是肯定要同组同层的,且间距要保持在两倍线宽间距以上,一般都是做1:2,数据线同组同层很容易做到,但地址线就比较难,地址线没数据线严格,可以不同层,但能做到做好不过了,至于间距就看空间而定了,空间大的话做好都做到1:2,是在没办法也只能做1:1的间距。长度误差10%.
[此贴子已经被jia123于2018/10/21 20:49:53编辑过]
个人签名档还未设置,请点击这里进行设置
  删除 置顶 推荐 精华 加锁 引用 编辑
 2018/10/21 20:49:17 
Re:DDR3 PCB布线规则
·网名:jia123
·头衔:大咕噜
·级别:
·资历:16620
·经验:1170
·注册:2012/11/23
·发送短信 加为好友
下DDR3也可以用T拓仆嘛,还是必须要用Fly-by菊花链拓仆?
==================================
解答:看是否支持读写平衡,如果是的话,必须要用Fly-by菊花链拓仆。支持读写平衡里面集成了ODT,ODT为片内终结电阻,调整阻抗的。
T型信号质量太差,可能会导致速率跑不上去。
能支持fly-by的就尽量fly-by了,4片以上的DRAM都用Fly-BY
[此贴子已经被jia123于2019/4/23 20:07:31编辑过]
个人签名档还未设置,请点击这里进行设置
  删除 置顶 推荐 精华 加锁 引用 编辑
 2019/4/18 21:22:04 
 
回 复:DDR3 PCB布线规则
回复内容: