目录
1.2 如何设置Width(信号线宽)和Clearance(安全间距)?
3.1 为何同一根信号线在不同区域(CPU_ROOM、DDR2_ROOM、其它)的线宽会不一样?
0. 摘要:
本文首先列出了DDR2布线中面临的困难,接着系统的讲述了DDR2电路板设计的具体方法,最后给出个人对本次电路设计的一些思考。本次设计中CPU的封装为BGA844-SOC-Y,DDR2的封装为FBGA84,DDR2的控制总线采用星形连接,使用的PCB软件为AltiumDesigner10,参考设计教程为《Altium Designer DDR2设计教学视频》[1]!
1. DDR2布线中面临的困难
1.1 DDR与CPU之间的布局[1]
(1)DDR2:内存与CPU的边缘间距建议5~8mm;
(2)DDR3:排阻自身长度为2mm,排阻与CPU边缘间距建议3mm,排阻与内存边缘间距建议3mm。
1.2 如何设置Width(信号线宽)和Clearance(安全间距)?
在封装BGA844-SOC-Y中,焊盘的直径为18.9mil,焊盘间距为39.37mil,两个焊盘之间的间隔为20.47mil,要想从BGA中引出所有的信号线,必须合理的设置Width和Clearance等规则。
在《DDR布线规则与过程》[2]一文中,交代了线宽与线距的设置规则:
(1)DDR的供电线线宽建议8mil以上,信号线默认线宽为5mil;
(2)线与线间距建议采用2W原则为8mil,线与其它sub-class的间距为5mil;
(3)CPU与DDR的区域规则:走线线宽为5mil,允许最小间距为3.3mil;
在博通BCM53344开发板中,CPU采用1006-pin FCBGA封装,DDR3采用FBGA封装,在BGA的区域内,线间距设为3.098mil,如图2所示,线宽设为3.902mil,如图3所示。
1.3 网络分类与差分线的设置
在《DDR2信号分类及等长设计》[3]一文中,DDR2可以分为以下三类:
(1)差分时钟信号:CLK_N,CLK_P;
(2)数据线DQ0~DQ15,数据掩码信号DQM0,DQM1,数据选通信号DQS*_N,DQS*_P;
(3)地址线/控制线:除数据,时钟外的其他信号,如A0~A12,WE,CS,BA0~2,CKE等;
可以设置为以下几个class规则:
(1)DATA_L_BUS:Q0~DQ7,DQM0,DQS0_N,DQS0_P;
(2)DATA_H_BUS:Q8~DQ15,DQM1,DQS1_N,DQS1_P;
(3)ADDR_BUS:除数据线外的其他信号;
(4)CLK_DIFF: CLK_N,CLK_P;
1.4 如何确定小T点与大T点的位置?
如图4所示,小T点对应于DDR2焊盘扇出后的过孔C与D,C与D点扇出的走线方式必须保持一致。大T点对应于地址/命令总线的分支点过孔B,在DDR做等长布线时,地址/命令总线Net-Class(网络类)每条网络满足:
(1)AB+BC=AB+BD;
(2)每条网络的总长度(AB+BC+BD)均相等。
为了降低DDR等长布线的难度,通常将大T点设在C与D的对称轴上,假如大T点没有落在C与D的中轴线上,该怎么办?
在《用Altium Designer实现DDR2的等长布线》[4]和《Altium Designer 中 DDRII SDRAM 的等长布线》[5]中给出了解决办法,文中使用了AD里面的From-To Editor 网络编辑器,将同一个网络在T点处划分为3个部分,然后通过设置焊盘到焊盘之间的等长来实现DDR的等长布线,有兴趣的读者可以查看原文!
1.5 BGA自动扇出与手动优化
在使用AD10给BGA自动扇出时,需要注意一下几点:
(1)在执行自动扇出前,BGA上的所有焊盘均不能连线,否则自动扇出无法完成!
(2)FBGA84封装的DDR2在进行自动扇出时,扇出的效果非常差,必须使用手工扇出。
对CPU和DDR2进行自动扇出,可分别得到图5和图6所示所示结果。