DDR2的设计经验经典流程.docx
- 文档编号:4872399
- 上传时间:2022-12-11
- 格式:DOCX
- 页数:21
- 大小:1,001.86KB
DDR2的设计经验经典流程.docx
《DDR2的设计经验经典流程.docx》由会员分享,可在线阅读,更多相关《DDR2的设计经验经典流程.docx(21页珍藏版)》请在冰豆网上搜索。
DDR2的设计经验经典流程
DDR2的设计经验经典流程-1
发布时间:
2012-11-2321:
28:
34来源:
EDA中国
DDR2的设计经验经典流程
EDA中国撰写
一、获取设计要求参数
1、DDR信号:
主要分为以下5类:
<1>Data线(0-63)
<2>Address线(0-13)
<3>Command线
<4>Control线
<5>CLK线(0-3)
<6>电源线
2.获得电气参数要求(如:
阻抗要求)
DDR_DQS100欧
DDR_CLK100欧
DDR_command60欧
DDR_Control60欧
DDR_Data60欧
二、确定叠构
1.从PCB加工商了解板材以及相关参数,
2.通过设计经验结合仿真工具确定最佳叠构。
确定如下叠层结构:
根据数据传输特性和DATASHEET要求将DDR线分成
1)DDR_command(BUS):
a)M_a_a0…..M_a_a13
b)M_a_bs0….M_a_bs2
c)M_a_Cas#
d)M_a_Ras#
e)M_a_We#
2)DDR_Control(BUS):
a)M_cke0,M_cke1,
b)M_cs#0,M_cs#1,
c)M_odt0,M_odt1
3)DDR_DATA(8XBUS):
①DDR_D0
a)M_A_DQ0…M_A_DQ7
b)M_A_Dm0
c)M_A_DQs0,M_A_DQs#0
②DDR_D1
--------
⑧DDR_D7
a)M_A_DQ56…M_A_DQ63
b)M_A_Dm7
c)M_A_DQs7,M_A_DQs#7
4)DDR_CLK(DVI):
①DDR_CLK0
a)M_CLK_Ddr#0
b)M_CLK_Ddr0
②DDR_CLK1
a)M_CLK_Ddr#1
b)M_CLK_Ddr1
将BUS和差分对分类信息输入ConstraintManager,同时参考叠构结合仿真工具和设计经验将(线宽,间距,拓扑结构等)规则参数输入ConstraintManager
三、布局
ConstraintManager驱动布局。
主要元件定位:
考虑:
1.从机构角度讲,一般DDR连接器的位置是机构外型决定,CPU的位置是由NET关系和DDR信号的要求物理参数决定,用测量工具测量大致定位,
2.考虑到一些长度控制约束和时序匹配问题,建议将元件中心距控制在最短限长线的2/3左右,可以结合ConstraintManager和DRC功能来近一步确认。
3.连接长度限制线,当走线不在Constraint允许范围内,软件会显示DRC,ConstraintManager也会显示其超出值,为布局调整提供依据。
当走线在Constraint允许范围内,ConstraintManager也会显示需要后续饶线长度,为饶线空间提供参考依据。
周边电路布局:
BGA区域3mm内不能放器件,一般为4mm,便于BGA的贴装,
DDR部分布局
考虑:
DXF、DFM、电气特性和电源分配,做出以下布局:
四、布线
整体网络分布:
无法区分<1>Data线(0-63)Address线(0-13)Command线,Control线,CLK线(0-3)等信号线
网络信息区分整理:
通过“colordialog”不同组的BUS赋予不同的颜色,从而更加直接不同BUS的分布状况。
区分显示:
用NET显示工具将不同BUS和NET区分开,清晰显示便于走线规划,
BUS拓扑设计:
考虑:
网络的密度和产品整体成本和电气特性以及EMI和EMC问题,结合PCB建议叠构对整个产品做出如下分配。
通过GREplaner,灵活规划不同BUS的叠层和BUS之间的相对位置,近一步衡量EMI和EMC问题.综合各种问题,对DDR的各组BUS做出如下图规划。
DDR的所有信号网络都做微带线处理,分布于3和4层。
如下图;
布线及线处理:
考虑问题如下:
1)Ddr_clk和DQS差分处理,
a)线宽
b)间距(差分对内间距,对与对之间间距,差分对与其他线的间距)
c)等长(差分对内等长,对与对之间等长)
2)DataBUS线处理
a)线宽
b)间距(BUS内间距,BUS之间间距,BUS与其他线的间距)
c)等长(BUS内等长,BUS之间等长)
3)Command和controlBUS线处理
a)线宽
b)间距(BUS内间距,BUS之间间距,BUS与其他线的间距)
c)等长(BUS内等长,BUS之间等长)
1.Ddr_clk差分线处理
对Ddr_clk0(M_Clk_Ddr#0,M_Clk_Ddr0)和Ddr_clk1(M_Clk_Ddr#1,M_Clk_Ddr1)做差分等长处理。
同时与其他信号之间距离大于3倍的差分对间距,建议5倍以上,Ddr_clk差分对内等长,两对差分线,允许误差有时序决定,建议误差在15mil以内。
2.DQS差分线处理
DQS到其他信号间距最小是DQS差分对间距的3倍以上,建议5倍以上。
等长处理
建议:
1)Ddr_clk误差控制在10mil以内
2)Ddr_DataDdr_CommandDdr_AddressDdr_Control误差控制在15mil以内
3)Ddr_DataDdr_CommandDdr_AddressDdr_ControlDdr_clk之间的长度误差控制在30mil以内.、
4)PinDelay
注意:
一定要将芯片封装内部的绕线长度计算在内,绕线长度参数可以从芯片封装厂商获取,输入ConstraintManager中,来驱动布线处理.
五、电源处理
VREF处理:
VREF主要用作输入缓冲电平判断,电流较小,一般不大于3mA,,推荐线宽为15~25mil;
VREF到其他信号线的间距不应小于20mil。
VTT处理:
一般在DDR2系统中VTT仅用于地址、命令和控制信号的端接。
标准DDR2电源为1.8v,VTT电源为0.9V,VTT所使用的铜皮宽度应该足够大(推荐150mil以上)。
1.8v处理:
六、EMC处理
1)完整的参考平面
2)带状线处理
建议重要信号杜绝有下图走线处理,
整体效果:
以下内容主要是针对DDR2667内存的设计。
信号分组:
DDR2的布线中习惯把信号分成若干组来进行设计,分成同组的信号具有相关或者相似的信号特性。
时钟组:
差分时钟信号,每一对信号都是同频同相的。
ckp0和ckn0为一对。
数据组:
对主板64位DDR2内存来说数据每8位(也就是一个byte)为一组可以分为八组,数据dq[0:
7]、数据掩码dqm0、数据选通差分信号dqsp0和dqsn0为一组,以此类推。
同个数据组的信号应该在同一个信号层上走线,换层也应该一起换,为了方便在同一个信号层走线可以将数据位互换。
比如dq2信号在走线的时候发现如果按照原理图来走线会跟dq4交错,这样就不得不换层走线,我们通过互换数据位就可以使信号走同层,对内存来说每一位存进什么内容读出也是什么内容,互换不会受影响,但是互换的条件必须是在同一组内8个bit之间。
地址/命令组:
MA[0:
14]、BA0、BA1、BA2、RAS、CAS、WE
控制组:
时钟使能CKE、片选CS、终端电阻选通ODT为一组,对内存条来说DIMM0用到了CKE0、CKE1、CS0、CS1、ODT0、ODT1。
做板载内存设计的时候,可以只用CKE0、CS0、ODT0,控制4片16位的内存芯片。
PCB叠层:
对六层板来说一般的叠层都是top、GND、singnal2、singnal3、POWER、bottom,信号一般情况下以GND为参考平面比较好。
走线的阻抗由走线宽度、走线的铜箔厚度、走线到参考平面的距离、参考平面的铜箔厚度和板介质材料决定,PCB设计的时候应该遵守CPU厂家阻抗设计要求来设置叠层。
一般PCB设计软件也能计算阻抗,找PCB生产厂家了解了板材介质厚度的资料后可以自行设计叠层、线宽。
地址/命令信号、控制信号可以以1.8V内存工作电压为参考平面。
长度控制:
对DDR2这种高频的信号来说走线长度应该计算到CPU核心,这就引入了一个叫封装长度的概念。
硅晶元经过物理化学的方法刻蚀而成CPU核心,再将CPU核心封装到一块小的PCB基板上就成了我们常见的CPU。
那块小的PCB上管脚到CPU核心的走线长度被称为封装长度。
到同一行列(rank)内存的时钟长度应该控制在正负5mil以内。
同一个数据组内所有走线长度控制在数据选通信号DQS的正负20mil范围内为宜,不同数据组之间长度可以不同,但是应该控制在时钟信号的正负500mil以内。
地址/命令组信号长度控制不是特别严格,INTEL凌动N450要求控制在时钟信号负500mil到正1000mil以内。
也就是说最长和最短的信号可以相差1500mil,但是布线的时候还是尽量把信号长度差缩小比较好。
布线的时候这组信号长度完全相等也没有问题,但是这样占用的PCB空间也大,花费的时间也多。
如果地址/命令信号长度超出时钟信号几千mil,那就需要在BIOS固件中好好调节了。
控制在CPU要求的范围内,需要做板载内存的时候只需要配置好内存SPD就可以了。
控制组信号长度控制要求和地址/命令组信号的要求类似,设计的时候应该按照CPU厂家的要求来做,INTEL凌动N450要求控制在时钟信号0mil到正1000mil以内。
走线间距:
一般来说走线都应该按照3W原则来走线,也就是同一个平面上线与线的间距为3倍线的宽度。
但是这个不是必须的,intel要求的就比较小。
一般走线蜿蜒线的间距可以为16到20mil,对时钟信号可以加大到30mil。
不同组信号之间的距离应该适当拉大,可以为20mil以上,地址/命令组和控制组信号的间距可以比较小8mil以下都可以。
BGA扇出的地方间距可以小,出线后应该以CPU设计要求来走线。
其它:
VREF走线可以用一根20mil的线,每接到一个器件应该加一个0.1uf的电容。
VTT走线应该在135mil以上,每四个电阻接一个0.1uf电容,两端接10uf大电容。
点对多点的信号,如地址/命令信号、控制信号、时钟信号应该按照“T”形走线,也就是芯片中间走上再分支,长度应该满足CPU设计要求。
附拓扑图:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DDR2 设计 经验 经典 流程