PCB 模块化布局---存储器设计小结
2015-04-16
存储器,也称之为内存,其分类关系如下图:
在PCB 设计的过程中,关注的是它们存取数据的速率,这个速率关系的细节的处理。
如,速率高的内存颗粒,PCB 设计时为了减小串扰,尽量拉大信号线的间距;同时,由于
速率不同,控制蛇形线的误差范围也不一样;
下文结合FLASH、SDRAM、DDR2 来介绍布局布线设计要点。这里先概述一下布局和
布线。
布局:内存中的数据是用来被控制器(CPU,如DSP、MCU、ARM、FPGA 等)读写的,
因此需要结合PCB 单板尺寸、器件密度、走线密度情况,选择合适的位置摆放;至于那些
去耦电容、储能电容时必不可少的,怎么摆放,就不再赘述。如果还有匹配电阻如串阻、上
下拉,结合它们的作用来摆放。
布线:首先要对信号线分类,然后然后分好组,处理这两步后,后续的走线、绕等长等,
同一组的按统一标准处理就行了。在这里将信号线分为三类:数据信号、地址信号、控制信
号。对于PCB 设计工程师,首先要培养出在原理图中识别信号种类的能力,然后能够在PCB
中能把分类的信号线进行分组。通俗的分组方法:数据组和地址组。
数据组:在这里举例说明一下,如果有一片只有8 位的SRAM,自然分成一组。如果
是一颗16 为的DDR2,数据组可以分成高低各8 为的两组。小组成员自然是数据信号线,
可能会有其他信号线,如DDR2 的一组信号线中,要包含相应的数据掩码信号和数据锁存
信号。
地址组:包含地址信号线和控制信号线,时钟信号也属于地址组。
上面说过同一组的按统一标准处理,主要指以下两点:
a. 同一组尽量走在同一层;
b. 同一组在控制等长时标准一样,可以和其他组不一样,这算是自治;当然也不能太离谱,
不能出现一个地球标准、一个火星标准;
接下来结合具体设计来讲解。
FLASH 设计
Flash 的速率一般比较低,因此在布局和布线方面放的比较宽松。首先分析原理图,如
下图,分清数据类型:
从图中示例,Flash 的电源和地管脚很好识别;经判断DQxx 为数据信号;Axx 为地址
信号;其他判定控制信号:这样分析后,就可以在allegro 的规则管理器中对数据分组了。
如下图:
这里没有将数据再分成低8 位和高8 位,因为我评估过,分成一组,我这边也有空间走
线和绕等长。因此,在设置时要灵活把握。
Flash 布局:不再详述,看完后文,应该会找到门路。在此强调一点:摆放时,尽量留
足空间扇孔、扇线和绕等长;
Flash 布线:注意一下三点:
a. Flash 信号线需要控制阻抗,阻抗为50Ω;
b. 如果空间允许,信号线间距为3W;
c. 等长控制范围:±200mil;
设计实例如下图:
SDRAM 设计
前期思路和Flash 设计的思路一致,例如下图所示原理图:
从上图中,信号的定义很清楚,Flash 设计中也讲过,不再赘述。需要注意的是两个信
号:DQML 和DQMH,这两个信号是数据信号的掩码信号,分别属于低8 位和高8 位。因
此在分组时,分别把它们添加到低8 位组和高8 位组。这样每个数据小组将有9 根信号线。
就这么升级下去,到DDR 还会加信号,每小组有10 位了;再升级到DDR2,甚至有一
对差分要加入数据小组。因此,在设计时,从原理图中预演分类和分组时很必要,这个能力
一定要习得。
SDRAM 布局:尽量使信号线不要太长,潜台词---靠近控制器(xxx)放置;
对于1 片SDRAM,采用“点对点”拓扑,如下图:
至于两片的拓扑,可以看下文DDR2 设计的布局,布局要灵活,最好能举一反三。
SDRAM 布线:
a. 分组:根据前面介绍的数据分类,数据组可分为低8 位和高8 位两组:
低8 位:(BUS 名称可自定义一个有意义的名称):D0~D7、DQML,共9 根信号线;
高8 位:D8~D15、DQMH,共9 根信号线;
注:有时候网络名称可能不这么命名,也要能够识别出来;
地址和控制信号分成一组;
b. 信号线控制阻抗为50Ω,保持有完整的参考平面;
c. 拉大信号线间距,保持3W 间距;
d. 等长控制:参照时钟等长;
e. 等长误差控制范围:数据组:±50mil;地址组:±100mil;
f. 在信号层换层的附近添加一些回流地过孔;
DDR2 设计
这里跳过了DDR 而直接介绍DDR2,在正式开始前,先大致说明一下DDR。
DDR 可以看作是SDRAM 的升级,相比较下,数据线分组分别出现了低8 位锁存信号
(LDQS)和高8 位锁存信号( UDQS),此时每个小组有10 根信号线了;而地址、控制、
时钟仍为一组,DDR 管脚如下示例:
而DDR2 是DDR 的升级,数据交换速率升高了;同时在管脚方面也有一些变化:DDR
的单端信号锁存信号变成了一对差分信号,这样一来,数据小组每组有11 根信号线。
另外一个变化就是工作电压的变化,通常FLASH 为3.3V、SDRAM/DDR 为2.5V, DDR2
为1.8V,到后面的DDR3 变为1.5V,因为较低的电压可以带来电平更快的翻转。
DDR2 的布线
和SDRAM 的要求类似;也有一些变化:
a. 由于有了差分信号线,差分信号阻抗控制为100Ω;
b. 差分需要做对内等长,误差控制在5mil;
c. 等长误差控制范围要求更高:数据线:±20mil;地址±50mil;
d. 请注意VREF 电源,这个走线要求加粗15~30mil;滤波电容靠近DDR 管脚放置;
DDR2 的布局
前面分别介绍了FLASH 和SDRAM 的布局,仅为1 颗的情况下采用点对点的布局。在
存在多颗时,布局也比较固定。(布局时,器件间距控制,布局者自己把握)
2 颗内存颗粒,有两种方式:关于控制器对称放置和顶底对贴放置:如下图实例:
这种布局,地址信号的拓扑结构,我们通常称为远端分支,也叫做”T” 型拓扑,地址信
号先接到正中间,然后分到两边的DDR,正中间的VIA 称之为T 点;
当空间比较有限时候,采用顶底对贴的布局方式,地址部分依然可以采用上图中的扇孔
方式,而数据部分的扇孔就比较麻烦了,需要手动调整。如下图示例:
从上图示例中可以看出:地址仍采用中间扇孔、数据需要手动扇孔,由于顶底对贴了
DDR,去耦电容只能摆放在四周了。
当有4 颗DDR 时,布局思路同两颗类似:空间足够,放在同一面,此时注意T 点的位置;空间比较有限时,先两两对贴,然后再采用T 型拓扑;其拓扑分别如下图:
还有一种拓扑形式:菊花链,通常在DDR3 的布局中比较多的采用;还有一种菊花链
的形式:控制器驱动多路负载,如CPU 后挂的有SDRAM,同时夜游FLASH,这时候采用
菊花链拓扑:CPU---SDRAM---FLASH,优先保证速率高的信号拓扑。
关于DDR 布局,还有很多衍生的布局,如5 颗DDR2,其中有一颗是纠错用的,通常
放在中间,它的地址线在做等长时,不再和其他4 颗放在一起了,其他4 颗内存也能形成比
较完美的T 型拓扑。
总而言之,基础就是这些东西,关键是能够理解它,这样就可以灵活发挥了。