最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

DDR PCB设计

IT圈 admin 24浏览 0评论

2024年3月17日发(作者:兴芮安)

1 引言

DDR2(Double Data Rate2)SDRAM是由JEDEC(电子设备工程联合委员会)制定的新

生代内存技术标准,它与上一代DDR内存技术标准最大的不同:虽然采用时钟的上升/

下降沿同时传输数据的基本方式,但DDR2却拥有2倍的DDR预读取能力(即4位预存取

技术)。此外,DDR2还增加ODT(内建核心终结电阻器)功能,内建合适的端接电阻,避免

了以往因片外连接大片终结电阻带来的制板成本增加。

基于FPGA的SDRAM控制器,以高可靠性、强可移植性、易于集成的特点,逐渐取

代以往的专用控制器而成为主流解决方案。本文采用Xilinx公司的Spartan-3A系列FPGA

和Hynix公司的DDR2 SDRAM器件HY5PS121621实现DDR2控制器的设计。

2 FPGA与DDR2存储器接口

图1所示为DDR2与FPGA的外围接口连接图,DDR2的信号线分为:时钟信号线

CK/CK ;数据信号线Data/DQS/DM;地址信号线Address/BA1/BA0;命令信号

线RAS/CAS/WE;控制信号线CS/CKE/ODT。FPGA除与DDR2的所有信号线相连

外,还引出外部环回信号线(图中虚线所示),此信号输出送至输入输出模块(IOB),以补偿

FPGA与存储器之间的IOB、器件和迹线的延迟。

差分时钟线CK/CK为DDR2数据传输提供时钟,在CK的上升沿和下降沿均有数据

被触发;双向差分线DQS/DQS看作数据的同步信号,写入时由控制器发出,读取时由

DDR2产生DQS向控制器发送,它与读数据边沿对齐而与写数据中心对齐。DN为数据信

号屏蔽位在突发写传输时屏蔽不存储的数据;RAS/CAS/WE作为命令信号线向DDR2

发出读取、写人、刷新或预充电命令;片内终结信号线ODT控制是否需要DDR2进行片

内终结。

3 DDR2控制器的设计原理

基于FPGA的DDR2控制器设计是由时钟生成模块、存储控制模块和读写数据接口模

块组成如图2所示。

控制器中所有模块时钟均来自于时钟生成模块,它由数字时钟管理器(DCM)控制,输

出90°、180°和270°时钟。该模块还包含延迟校准监视器,用于校准读取数据(DQ)对读取

数据选通脉冲(DQS)的延迟,以便读取数据选通脉冲边沿能够正确对齐DQ有效窗口的中

间位置。

读写数据接口模块是整个控制器设计的关键,它负责将用户写入的数据DQ和DOS

按照DDR2 SDRAM时序要求发送给DDR2,DDR2在DQS的每一个时钟沿采集写数据。

在读取数据时,DDR2 SDRAM将DQS和相关数据发送到与DQ对齐边沿的FPGA。FPGA

将接收到的DQS信号经过延迟校准,作为内部存储读数据的FIFO的写时钟。FPGA为

DDR2的每个数据位配置一对读写异步的FIFO,每个数据位都输入到上升沿(FIFO0)和下

降沿(FIFO1)的FIFO中,实现原理如图3所示。

存储控制模块用于产生DDR2所需的地址和命令信号。DDR2在正常的读写操作前要

初始化,因此需向DDR2发送初始化命令,待初始化完成后才能发送读写命令。对DDR2

SDRAM的读写访问为突发模式。突发写操作需向DDR2提供写命令(User_command)、

写数据(User_input_data)和写地址(User_address)信号,在最后一个写地址发送突发操作

完成信号(User_burst_done),并保持2个时钟周期有效下终止写操作,突发写时序如图4

所示。突发读操作需向DDR2提供读命令(User_comm-and)和读地址(User-address),

在最后一读地址发送突发完成信号(User-burst_done),并保持2个周期有效下终止读操

作,突发读时序如图5所示

4 DDR2控制器的设计及应用

为了缩短开发周期,采用Xilinx的MIG软件工具直接生成DDR2控制器设计模块,

包括HDL代码和约束文件。用户可在MIG的GUI图形界面选择对应模板、总线宽度和速

度级别,并设置CAS延迟、突发长度、引脚分配等关键参数。如果设计者所选器件与MIG

所列模板不相符,可在代码生成后灵活修改代码,达到系统要求。代码添加到工程前需硬

件验证,采用MIG自动生成的测试模块进行验证。该模块向存储器发出一系列的写入命令

和读取命令,并对写入数据和读回数据进行比较,通过比较信号(led_error)验证控制器的

正确与否。用ChipScope抓取的读数据和相关控制信号时序分别如图6和图7所示,读

写比较信号(led_error)在检测到读写数据相等时输出'0'电平。

在硬件验证通过后,把控制器代码导入到系统工程中,设计者只需输入相应命令(包括

读、写和初始化命令),控制器模块将自动产生命令和控制信号并按照DDR2的时序要求送

至DDR2,命令发送完毕提供给用户一个命令应答信号(User_cmd_ack),设计者根据这一

信号判断是否可以发送下一个命令。至于自动刷新、激活和预充电命令则由控制器自动完

成,无需用户干涉。

5 结束语

通过MIG工具辅助设计,实现500 M/s带宽的DDR2接口数据采集,占用FPGA

资源分别为15%IOB资源,17%逻辑Slice资源和2个DCM。在FPGA中实现DDR2控

制器,节省功耗和空间,并缩短系统开发周期,满足大多数低成本系统设计要求

/user1/4435/archives/2011/

DDR2布线经验总结

做主板已经两年多了,做过龙芯2F内存条和板载内存颗粒的设计,做过凌动N450

内存条和板载内存颗粒的设计。想写点东西总结一下,发现网上已经有很多这类的文章了,

现在再写一点就当作是参考补充吧。以下内容主要是针对DDR2 667内存的设计。

信号分组:

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为一组,对内存条来说DIMM

0用到了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要求控制在时钟信号负5

00mil到正1000mil以内。也就是说最长和最短的信号可以相差1500mil,但是布线的时

候还是尽量把信号长度差缩小比较好。布线的时候这组信号长度完全相等也没有问题,但

是这样占用的PCB空间也大,花费的时间也多。如果地址/命令信号长度超出时钟信号几

千mil,那就需要在BIOS固件中好好调节了。控制在CPU要求的范围内,需要做板载内

存的时候只需要配置好内存SPD就可以了。

控制组信号长度控制要求和地址/命令组信号的要求类似,设计的时候应该按照CPU

厂家的要求来做,INTEL凌动N450要求控制在时钟信号0mil到正1000mil以内。

走线间距:

一般来说走线都应该按照3W原则来走线,也就是同一个平面上线与线的间距为3倍

线的宽度。但是这个不是必须的,intel要求的就比较小。一般走线蜿蜒线的间距可以为1

6到20mil,对时钟信号可以加大到30mil。不同组信号之间的距离应该适当拉大,可以为

20mil以上,地址/命令组和控制组信号的间距可以比较小8mil以下都可以。BGA扇出的

地方间距可以小,出线后应该以CPU设计要求来走线。

其它:

VREF走线可以用一根20mil的线,每接到一个器件应该加一个0.1uf的电容。

VTT走线应该在135mil以上,每四个电阻接一个0.1uf电容,两端接10uf大电容。

点对多点的信号,如地址/命令信号、控制信号、时钟信号应该按照“T”形走线,也

就是芯片中间走上再分支,长度应该满足CPU设计要求。附拓扑图

如何实现FPGA到DDR3 SDRAM存储器的连接

采用90nm工艺制造的DDR3 SDRAM存储器架构支持总线速率为600 Mbps-1.6

Gbps (300-800 MHz)的高带宽,工作电压低至1.5V,因此功耗小,存储密度更可高达

2Gbits。该架构无疑速度更快,容量更大,单位比特的功耗更低,但问题是如何实现DDR3

SDRAM DIMM与FPGA的接口呢?

关键词——均衡!

如果没有将均衡功能直接设计到FPGA I/O架构中,那么任何设备连接到DDR3

SDRAM DIMM都将是复杂的,而且成本还高,需要大量的外部元器件,包括延时线和相

关的控制。

什么是均衡?为什么如此重要?

为了在支持更高频率时提高信号完整性,JEDEC委员会定义了一个fly-by(飞越式)端

接方案,该方案采用了时钟和命令/地址总线信号来改善信号完整性以支持更高的性能。当

时钟和地址/命令通过DIMM时,fly-by拓扑结构通过故意引起每个DRAM上的时钟和数

据/选通之间的飞行时间偏移(flight-time skew)来减小并发开关噪声(SNN),如图1所示。

飞行时间偏移可能高达0.8 tCK,当该偏移被扩展得足够宽时,将不知道数据在两个时

钟周期中的哪个内返回。因此,均衡功能可以使控制器通过调节每个字节通道内的时序来

补偿这一偏移。最新的FPGA能够为各种应用提供与双倍数据率SDRAM存储器接口的许

多功能。但是,要与最新的DDR3 SDRAM一道使用,还需要更鲁棒的均衡方案。

FPGA I/O结构

像Altera Stratix III系列高性能FPGA提供的I/O速度高达400 MHz (800 Mbps),

还具有很高的灵活性,能够支持现有的和新兴的外部存储器标准,如DDR3。

图1:DDR3 SDRAM DIMM:飞行时间偏移降低了SSN,数据必须被控制器调高到

两个时钟周期。

读均衡

在读取操作中,存储器控制器必须补偿由飞越存储器拓扑引起的、影响读取周期的延

时。均衡可以被视作为出现在数据通道上的比I/O本身延时还要大的延时。每个DQS都

要求一个同步时钟位置的独立相移(经过了工艺、电压和温度(PVT)补偿)。图2显示出同一

读取命令下从DIMM返回的两个DQS组。

图2:I/O单元中的1T、下降沿和均衡寄存器。

一开始,每个分开的DQS被移相90度,从而捕获与该组相关的DQ数据。然后用一

个自由运行的再同步时钟(频率和相位与DQS相同)将数据从捕获域转移到图2所示用粉红

色和橙色连线表示的均衡电路中。在这个阶段,每个DQS组都有一个独立的再同步时钟。

接着DQ数据被送到1T寄存器。图2中给出了一个1T寄存器实例,在上层通道中需

要用这个1T寄存器对特定DQS组中的DQ数据位进行延时。注意在该例中,下层通道不

需要1T寄存器。通过该过程开始对齐上层和下层通道。任何一个指定的通道是否需要1T

寄存器是自动确定的,这是免费物理层IP内核中校准方案的一部分功能。

随后两个DQS组被传送到下降沿寄存器。如果需要的话,还可以在启动时通过自动校

准过程把可选寄存器切换进来或切换出去。最后是将上层和下层通道对齐到同一再同步时

钟上,这样就形成了一个将完全对齐的或经过均衡的单倍数据率(SDR)数据传递到FPGA

结构的源同步接口。

写均衡

与读均衡类似,不过方向相反,DQS组在不同的时刻发出信号,以便与到达DIMM

上的器件的时钟一致,并且必须满足tDQSS参数要求的+/- 0.25 tCK。控制器必须通过创

建反馈环路来调整DQS与CK的关系,在此过程中,控制器会将数据写入DRAM,再通

过顺序相位进行扫描读回,直到发现写入窗的终点。为了更好的建立和保持余量,数据应

该在好窗口的中间点发出。

其他的FPGA I/O功能创新

高性能的Stratix III FPGA还具有许多创新性的其他I/O功能,可以实现到各种存储器

接口的简单且鲁棒性连接,这种功能包括了动态片上端接(OCT)、可变的I/O延时以及半

数据率(HDR)等。

动态OCT

并行和串行OCT为读写总线提供合适的线路端接和阻抗匹配,因此FPGA周边不需要

外接电阻,从而减少了外接元件成本,节约了电路板面积,而且降低了布线复杂度。另外,

它还大大降低了功耗,因为并联端接在写操作时可以有效地被旁路掉。

用于DQ去偏移(deskew)的可变延时

采用可变的输入和输出延时来跟踪长度失配和电气去偏移。精细的输入和输出延时分

辨率(即50皮秒步进)被用于更精细的DQS间去偏移(独立于均衡功能),这种偏移是由电路

板长度失配或FPGA和存储器件上I/O缓存的变化所引起的,如表1所示。最终,这增加

了每个DQS组的捕获余量。

表1:分辨率和绝对值待定特性。

为了将DDR3自动去偏移算法成为启动校准过程的一部分,需要从运行时的FPGA结

构实现延时单元。也可以利用输出延时在输出通道中插入少量偏移来有意地减少同时开关

的I/O数量。

可靠的捕获

DQS信号用作输入选通信号,它必须移位到一个最佳位置才能捕获读取事务。移相电

路可以将输入的DQS信号移相0°, 22.5°, 30°, 36°, 45°, 60°, 67.5°, 72°, 90°, 108°, 120°,

135°, 144°或 180°,具体取决于DLL的频率模式。移相后的DQS信号随后被用作I/O单

元各个输入寄存器的时钟。

延时锁定环路(DLL)在整个PVT范围内将相位保持在一个固定位置。DLL模块的相位

比较器用于将两个输入之间的相位差保持在零。实现的方法是均匀地修正DLL模块中的特

定延时(10-16)。用于更新DLL中某个延时模块的控制信号还被发送到DQS输入路径中的

时延模块。例如,可以利用DLL中的全部16个延时单元和DQS相移输入路径中的第4

个延时抽头来实现90°的相移:

或者选择DLL中的10个延时单元和DQS相移输入路径中的抽头4来实现36°的相移:

或120°:

该DLL采用频率基准为每个DQS引脚中的延时链动态产生控制信号,并允许它补偿

PVT的变化。在Stratix III FPGA中有4个DLL,它们都位于器件的边角,目的是使每个

DLL能够覆盖器件的两侧,从而可以在器件的各个边上支持多种DDR3 SDRAM存储器接

口。

跨越高速数据率域和设计简化

DDR捕获寄存器和HDR寄存器支持数据从双倍数据率域(数据在时钟的两个边沿)安

全传送到SDR域(数据位于频率相同的时钟的上升沿,但数据宽度加倍),再到HDR域(数

据位于时钟的上升沿,数据宽度仍是加倍,但时钟频率仅是SDR域的一半),这样使得内

部设计时序更容易实现。

裸片、封装和数字信号完整性改进

FPGA裸片和封装的设计必须为高性能的存储器接口提供更好的信号完整性(即用户

I/O与地和电源的比例为8:1:1,并具有最佳的信号返回路径,如图3所示)。此外,FPGA

应该提供动态OCT和可变的偏移率,以便能够控制信号的上升和下降时间以及可编程驱动

能力,从而满足所用标准(即SSTL 1.5 Class II)的要求。

图3:连接到每个电源和地的8个用户I/O。

本文小结

高性能Stratix III FPGA可以通过提供高存储器带宽、改进的时序余量以及系统设计中

的灵活性来弥补高性能DDR3 SDRAM DIMM的不足。由于DDR3在实际使用中将很快

超过DDR2,故提供更低成本、更高性能、更高密度和优异的信号完整性的高端FPGA必

须提供与JEDEC兼容的读写均衡功能,以便与高性能的DDR3 SDRAM DIMM相接。FPGA

与DDR3 SDRAM的有机整合将能够满足目前和下一代通信、网络以及数字信号处理系统

的要求

在现代高速数字电路的设计过程中,工程师总是不可避免的会与DDR或者DDR2,SDRAM

打交道。DDR的工作频率很高,因此,DDR的布线(或者Layout)也就成为了一个十分

关键的问题,很多时候,DDR的布线直接影响着信号完整性。下面本文针对DDR的布线

问题(Layout)进行讨论。

信号引脚说明

VSS为数字地,VSSQ为信号地,若无特别说明,两者是等效的。VDD为器件内核供电,

VDDDQ为器件的DQ和I/O供电,若无特别说明,两者是等效的。

对于DRAM来说,定义信号组如下:

数字信号组DQ,DQS,xDM,其中每个字节又是内部的一个信道Lane组,如

DQ0~DQ7,DQS,LDM为一个信号组。

地址信号组:ADDRESS

命令信号组:CAS#,RAS#,WE#

控制信号组:CS#,CKE

时钟信号组:CK,CK#

印制电路板叠层,PCB Stackups

推荐使用6层电路板,分布如下:

电路板的阻抗控制在50~60ohm

印制电路板的厚度选择为1.57mm(62mil)

填充材料Prepreg厚度可变化范围是4~6mil

电路板的填充材料的介电常数一般变化范围是3.6~4.5,它的数值随着频率,温度等

因素变化。FR-4就是一种典型的介电材料,在100MHz时的平均介电常数为4.2。推荐使

用FR-4作为PCB的填充材料,因为它便宜,更低的吸湿性能,更低的电导性。

一般来说,DQ,DQS和时钟信号线选择VSS作为参考平面,因为VSS比较稳定,不易受

到干扰,地址/命令/控制信号线选择VDD作为参考平面,因为这些信号线本身就含有噪声。

电路板的可扩展性

根据JEDEC标准,不同容量的内存芯片一般引脚兼容,为了实现电路板的可扩展性,可以

做如下处理,如128Mb与256Mb的兼容应用。

未用的DQ引脚

对于x16的DDR器件来说,未用的引脚要作一定的处理。例如x16的DDR来说,DQ15:

DQ8未用,则处理如下,将相关的UDM/DQMH拉高用来屏蔽DQ线,DQ15:DQ8通

过1~10k的电阻接地用来阻止迸发写时的噪声。

端接技术

串行端接,主要应用在负载DDR器件不大于4个的情况下。

对于双向I/O信号来说,例如DQ,串行端接电阻Rs放置在走线的中间,用来抑制振铃,

过冲和下冲。

对于单向的信号来说,例如地址线,控制线,串行端接电阻放置在走线中间或者是信号的

发送端,推荐放置在信号的发送端。

说明:DDR的CK与CK# 是差分信号,要用差分端接技术。

并行端接,主要应用在负载SDRAM器件大于4个,走线长度>2inch,或者通过仿真验证

需要并行端接的情况下。

并行端接电阻Rt取值大约为2Rs,Rs的取值范围是10~33ohm,故Rt的取值范围为

22~66ohm。

如果有必要的话,所有DDR的数据,地址,命令,控制线都是SSTL_2接口,要使用

single-ended Parallel Termination,如上图。CKE也可以使用这种端接。

导线宽度和间距:

导线间距和导线宽度S1,S2,S3的定义如下:

S1表示同一信号组内两相邻导线之间的间距

S2表示不同信号组之间两相邻导线之间的间距

S3表示导线的宽度

导线宽度选择为:

导线间距选择:

几点说明:

1. DQS一般布线的位置是数据信号组内同一信号组中DQ走线的中间,因此DQS与

DQS之间的间距一般不提

2. DQS与时钟信号线不相邻

3. 为了避免串扰,数据信号组与地址/命令/控制信号组之间的走线间距至少20mil,建

议它们在不同的信号层走线

4. 时钟信号组走线尽量在内层,用来抑制EMI

导线走线长度

所有DDR的差分时钟线CK与CK#必须在同一层布线,误差+-20mil,最好在内层布线以

抑制EMI。如果系统有多个DDR器件的话,要用阻值100~200ohm的电阻进行差分端

接。

(1) 若时钟线的分叉点到DDR器件的走线长度<1000mil,要使用100~120ohm的差分

端接,如下图:

(2) 若时钟线的分叉点到DDR器件的走线长度>1000mil,要使用200~240ohm的电阻

差分端接,因为两个200~240ohm的电阻并联值正好为100~120ohm。如下图所示。

数据信号组的走线长度与时钟信号线的误差为+-500mil,组内同一信道的信号线走

线误差为+-50mil,从而可以得到,组内不同信道的走线误差为+-1000mil,相同信道的

DQS一般走线在DQ中间

地址线/命令/控制信号线与时钟信号走线的误差为+-400mil,组内走线误差为

+-50mil

所有信号的走线长度控制在2inch(5cm)最好

去耦电容

推荐使用低ESL(2nH)的电容,大小在0.01uF~0.22uF,其中0.01uF针对高频,

0.22uF针对低频

建议使用钽电容。相对于电解电容来说,虽然它比较贵,但它具有较好的稳定性,较

长的使用周期。一般电解电容随着使用时间的加长,性能下降较多

参考电压

对于较轻的负载(<4DDR器件),可使用下图的方法:

对于较重的负载(>4 DDR器件),可使用IC来产生VREF。IC内部集成了两种电压VTT和

VREF,其中VTT在重负载的情况下最高电流可达3.5A,平均电流为0A,VREF的电流比

较小,一般只有3mA左右。

VREF走线控制

具体如下图所示:

DDR的VTT设计

当数据线地址线负载较重时,VTT的暂态电流峰值可达到3.5A左右,这种暂态电流的平

均值为0A。一些情况下不需要VTT技术(并行端接)。

系统中有2个或更少的DDR

总线上需要的电流不是很高,中等左右

通过仿真验证不需要

VTT电压的产生一般用IC,厂商包括:Intersilm Philips, Semiconductors, Fairchild,

National, TI等等。

选用了IC实现VTT,推荐使用下面的原则

高速PCB过孔的使用

过孔设计是由孔及孔周围的焊盘区和内层电气隔离区组成,如图1所示。过孔的寄生

电感、寄生电容等会影响通过过孔的高速信号,过孔的尺寸和与之相连接的焊盘对过孔的

属性具有直接的影响。

1.寄生电容

过孔本身存在着对地或电源的寄生电容,如果已知过孔在内层上的隔离孔直径为D

2

过孔焊盘的直径为D

1

;PCB的厚度为T;板基材的相对介电常数为ε;则过孔的寄生电容

大小近似为

过孔的寄生电容延Κ了电路中信号的上升时问,降低了电路的速度。如果一块厚度为

25mil的PCB,使用内径为10mil,焊盘直径为20mil的过孔,内层电气间隙宽度为32mil

时,可以通过上面的公式近似算出过孔的寄生电容大致为0.259 pF。如果走线的特性阻抗

为30Ω,则该寄生电容引起的信号上升时间延长量为

式中的系数1/2是因为过孔在走线的中途。从这些数值可以看出,尽管单个过孔的寄

生电容引起的上升沿变缓的效用不是很明显,但是如果走线中多次使用过孔进行层间的切

换,设计者还是要慎重考虑的。

图 过孔的结构

2.寄生电感

过孔还具有与其高度和直径直接相关的串联寄生电感。若九是过孔的高度;d是中心

钻孔的直径;则过孔的寄生电感L近似为

在高速数字电路的设计中,寄生电感带来的危害超过寄生电容的影响。过孔的寄生串

联电感会削弱旁路电容在电源或地平面滤除噪声的作用,减弱整个电源系统的滤波效用c

因此旁路和去耦电容的过孔应该尽可能短,以使其电感值最小。

通过上面对过孔寄生特性的分析,为了减小过孔的寄生效应带来的不利影响,在进行

高速PCB设计时应尽量做到:

· 尽量减少过孔,尤其是时钟信号走线;

· 使用较薄的PCB有利于减小过孔的两种寄生参数;

· 过孔阻抗应该尽可能与其连接的走线的阻抗相匹配,以便减小信号的反射;

· 选择合理的过孔尺寸。对于多层、密度一般的PCB,选用0.25 mm/0.51 mm/0.91

mm(钻孔直径/焊盘直径/内层隔离区直径)的过孔较好;对于一些高密度的PCB可以使

用0.20 mm/0.46 mm/0.86 mm的过孔,也可以尝试非穿导孔;对于电源或地线的过孔

则可以考虑使用较大尺寸,以减小阻抗;

· 内层电气隔离区越大越好,考虑PCB上的过孔密度,一般使其满足D2=Dg+0.41

mm;

· 电源和“地”的引脚要就近放置过孔,过孔和引脚之间的引线越短越好,因为它们

会导致电感的增加。同时电源和地的引线要尽可能粗,以减少阻抗;

· 在信号换层的过孔附近放置一些接地过孔,以便为信号提供短距离回路。

在设计时要从成本和信号质量两方面综合考虑,在高速PCB设计时,都希望过孔越小

越好,这样板上就留有更多的布线空间,此外,过孔越小,寄生电容也越小,更适合用于

高速电路。因此,在高速PCB的过孔设计时应给于均衡考虑

过孔(via)是多层PCB的重要组成部分之一,钻孔的费用通常占PCB制板费用的30%

到40%。简单的说来,PCB上的每一个孔都可以称之为过孔。从作用上看,过孔可以分成

两类: 1、用作各层间的电气连接。2、用作器件的固定或定位。如果从工艺制程上来说,

这些过孔一般又分为三类,即盲孔(blind via)、埋孔(buried via)和通孔(through via)。盲

孔位于印刷线路板的顶层和底层表面,具有一定深度,用于表层线路和下面的内层线路的

连接,孔的深度通常不超过一定的比率(孔径)。埋孔是指位于印刷线路板内层的连接孔,

它不会延伸到线路板的表面。上述两类孔都位于线路板的内层,层压前利用通孔成型工艺

完成,在过孔形成过程中可能还会重叠做好几个内层。第三种称为通孔,这种孔穿过整个

线路板,可用于实现内部互连或作为元件的安装定位孔。由于通孔在工艺上更易于实现,

成本较低,所以绝大部分印刷电路板均使用它,而不用另外两种过孔。以下所说的过孔,

没有特殊说明的,均作为通孔考虑。

从设计的角度来看,一个过孔主要由两个部分组成,一是中间的钻孔(drill hole),

二是钻孔周围的焊盘区,见下图。这两部分的尺寸大小决定了过孔的大小。很显然,在高

速,高密度的PCB设计时,设计者总是希望过孔越小越好,这样板上可以留有更多的布线空

间,此外,过孔越小,其自身的寄生电容也越小,更适合用于高速电路。但孔尺寸的减小

同时带来了成本的增加,而且过孔的尺寸不可能无限制的减小,它受到钻孔(drill)和电镀

(plating)等工艺技术的限制:孔越小,钻孔需花费的时间越长,也越容易偏离中心位置;

且当孔的深度超过钻孔直径的6倍时,就无法保证孔壁能均匀镀铜。比如,现在正常的一

块6层PCB板的厚度(通孔深度)为50Mil左右,所以PCB厂家能提供的钻孔直径最小

只能达到8Mil。

二、过孔的寄生电容

过孔本身存在着对地的寄生电容,如果已知过孔在铺地层上的隔离孔直径为D2,过孔

焊盘的直径为D1,PCB板的厚度为T,板基材介电常数为ε,则过孔的寄生电容大小近似于:

C=1.41εTD1/(D2-D1)

过孔的寄生电容会给电路造成的主要影响是延长了信号的上升时间,降低了电路的速

度。举例来说,对于一块厚度为50Mil的PCB板,如果使用内径为 10Mil,焊盘直径为

20Mil的过孔,焊盘与地铺铜区的距离为32Mil,则我们可以通过上面的公式近似算出过孔

的寄生电容大致是:C= 1.41x4.4x0.050x0.020/(0.032-0.020)=0.517pF,这部分电容引

起的上升时间变化量为:T10-90=2.2C (Z0/2)=2.2x0.517x(55/2)=31.28ps 。从这些数

值可以看出,尽管单个过孔的寄生电容引起的上升延变缓的效用不是很明显,但是如果走

线中多次使用过孔进行层间的切换,设计者还是要慎重考虑的。

三、过孔的寄生电感

同样,过孔存在寄生电容的同时也存在着寄生电感,在高速数字电路的设计中,过孔

的寄生电感带来的危害往往大于寄生电容的影响。它的寄生串联电感会削弱旁路电容的贡

献,减弱整个电源系统的滤波效用。我们可以用下面的公式来简单地计算一个过孔近似的

寄生电感:

L=5.08h[ln(4h/d)+1]

其中L指过孔的电感,h是过孔的长度,d是中心钻孔的直径。从式中可以看出,过

孔的直径对电感的影响较小,而对电感影响最大的是过孔的长度。仍然采用上面的例子,

可以计算出过孔的电感为:L=5.08x0.050[ln(4x0.050/0.010)+1]=1.015nH 。如果信号

的上升时间是1ns,那么其等效阻抗大小为:XL=πL/T10-90=3.19Ω。这样的阻抗在有高

频电流的通过已经不能够被忽略,特别要注意,旁路电容在连接电源层和地层的时候需要

通过两个过孔,这样过孔的寄生电感就会成倍增加。

四、高速PCB中的过孔设计

通过上面对过孔寄生特性的分析,我们可以看到,在高速PCB设计中,看似简单的过

孔往往也会给电路的设计带来很大的负面效应。为了减小过孔的寄生效应带来的不利影响,

在设计中可以尽量做到:

1.从成本和信号质量两方面考虑,选择合理尺寸的过孔大小。比如对6-10层的内存

模块PCB设计来说,选用10/20Mil(钻孔/焊盘)的过孔较好,对于一些高密度的小尺寸

的板子,也可以尝试使用8/18Mil的过孔。目前技术条件下,很难使用更小尺寸的过孔了。

对于电源或地线的过孔则可以考虑使用较大尺寸,以减小阻抗。

2.上面讨论的两个公式可以得出,使用较薄的PCB板有利于减小过孔的两种寄生参

数。

3.PCB板上的信号走线尽量不换层,也就是说尽量不要使用不必要的过孔。

4.电源和地的管脚要就近打过孔,过孔和管脚之间的引线越短越好,因为它们会导致

电感的增加。同时电源和地的引线要尽可能粗,以减少阻抗。

5.在信号换层的过孔附近放置一些接地的过孔,以便为信号提供最近的回路。甚至可

以在PCB板上大量放置一些多余的接地过孔。

当然,在设计时还需要灵活多变。前面讨论的过孔模型是每层均有焊盘的情况,也有

的时候,我们可以将某些层的焊盘减小甚至去掉。特别是在过孔密度非常大的情况下,可

能会导致在铺铜层形成一个隔断回路的断槽,解决这样的问题除了移动过孔的位置,我们

还可以考虑将过孔在该铺铜层的焊盘尺寸减小

2024年3月17日发(作者:兴芮安)

1 引言

DDR2(Double Data Rate2)SDRAM是由JEDEC(电子设备工程联合委员会)制定的新

生代内存技术标准,它与上一代DDR内存技术标准最大的不同:虽然采用时钟的上升/

下降沿同时传输数据的基本方式,但DDR2却拥有2倍的DDR预读取能力(即4位预存取

技术)。此外,DDR2还增加ODT(内建核心终结电阻器)功能,内建合适的端接电阻,避免

了以往因片外连接大片终结电阻带来的制板成本增加。

基于FPGA的SDRAM控制器,以高可靠性、强可移植性、易于集成的特点,逐渐取

代以往的专用控制器而成为主流解决方案。本文采用Xilinx公司的Spartan-3A系列FPGA

和Hynix公司的DDR2 SDRAM器件HY5PS121621实现DDR2控制器的设计。

2 FPGA与DDR2存储器接口

图1所示为DDR2与FPGA的外围接口连接图,DDR2的信号线分为:时钟信号线

CK/CK ;数据信号线Data/DQS/DM;地址信号线Address/BA1/BA0;命令信号

线RAS/CAS/WE;控制信号线CS/CKE/ODT。FPGA除与DDR2的所有信号线相连

外,还引出外部环回信号线(图中虚线所示),此信号输出送至输入输出模块(IOB),以补偿

FPGA与存储器之间的IOB、器件和迹线的延迟。

差分时钟线CK/CK为DDR2数据传输提供时钟,在CK的上升沿和下降沿均有数据

被触发;双向差分线DQS/DQS看作数据的同步信号,写入时由控制器发出,读取时由

DDR2产生DQS向控制器发送,它与读数据边沿对齐而与写数据中心对齐。DN为数据信

号屏蔽位在突发写传输时屏蔽不存储的数据;RAS/CAS/WE作为命令信号线向DDR2

发出读取、写人、刷新或预充电命令;片内终结信号线ODT控制是否需要DDR2进行片

内终结。

3 DDR2控制器的设计原理

基于FPGA的DDR2控制器设计是由时钟生成模块、存储控制模块和读写数据接口模

块组成如图2所示。

控制器中所有模块时钟均来自于时钟生成模块,它由数字时钟管理器(DCM)控制,输

出90°、180°和270°时钟。该模块还包含延迟校准监视器,用于校准读取数据(DQ)对读取

数据选通脉冲(DQS)的延迟,以便读取数据选通脉冲边沿能够正确对齐DQ有效窗口的中

间位置。

读写数据接口模块是整个控制器设计的关键,它负责将用户写入的数据DQ和DOS

按照DDR2 SDRAM时序要求发送给DDR2,DDR2在DQS的每一个时钟沿采集写数据。

在读取数据时,DDR2 SDRAM将DQS和相关数据发送到与DQ对齐边沿的FPGA。FPGA

将接收到的DQS信号经过延迟校准,作为内部存储读数据的FIFO的写时钟。FPGA为

DDR2的每个数据位配置一对读写异步的FIFO,每个数据位都输入到上升沿(FIFO0)和下

降沿(FIFO1)的FIFO中,实现原理如图3所示。

存储控制模块用于产生DDR2所需的地址和命令信号。DDR2在正常的读写操作前要

初始化,因此需向DDR2发送初始化命令,待初始化完成后才能发送读写命令。对DDR2

SDRAM的读写访问为突发模式。突发写操作需向DDR2提供写命令(User_command)、

写数据(User_input_data)和写地址(User_address)信号,在最后一个写地址发送突发操作

完成信号(User_burst_done),并保持2个时钟周期有效下终止写操作,突发写时序如图4

所示。突发读操作需向DDR2提供读命令(User_comm-and)和读地址(User-address),

在最后一读地址发送突发完成信号(User-burst_done),并保持2个周期有效下终止读操

作,突发读时序如图5所示

4 DDR2控制器的设计及应用

为了缩短开发周期,采用Xilinx的MIG软件工具直接生成DDR2控制器设计模块,

包括HDL代码和约束文件。用户可在MIG的GUI图形界面选择对应模板、总线宽度和速

度级别,并设置CAS延迟、突发长度、引脚分配等关键参数。如果设计者所选器件与MIG

所列模板不相符,可在代码生成后灵活修改代码,达到系统要求。代码添加到工程前需硬

件验证,采用MIG自动生成的测试模块进行验证。该模块向存储器发出一系列的写入命令

和读取命令,并对写入数据和读回数据进行比较,通过比较信号(led_error)验证控制器的

正确与否。用ChipScope抓取的读数据和相关控制信号时序分别如图6和图7所示,读

写比较信号(led_error)在检测到读写数据相等时输出'0'电平。

在硬件验证通过后,把控制器代码导入到系统工程中,设计者只需输入相应命令(包括

读、写和初始化命令),控制器模块将自动产生命令和控制信号并按照DDR2的时序要求送

至DDR2,命令发送完毕提供给用户一个命令应答信号(User_cmd_ack),设计者根据这一

信号判断是否可以发送下一个命令。至于自动刷新、激活和预充电命令则由控制器自动完

成,无需用户干涉。

5 结束语

通过MIG工具辅助设计,实现500 M/s带宽的DDR2接口数据采集,占用FPGA

资源分别为15%IOB资源,17%逻辑Slice资源和2个DCM。在FPGA中实现DDR2控

制器,节省功耗和空间,并缩短系统开发周期,满足大多数低成本系统设计要求

/user1/4435/archives/2011/

DDR2布线经验总结

做主板已经两年多了,做过龙芯2F内存条和板载内存颗粒的设计,做过凌动N450

内存条和板载内存颗粒的设计。想写点东西总结一下,发现网上已经有很多这类的文章了,

现在再写一点就当作是参考补充吧。以下内容主要是针对DDR2 667内存的设计。

信号分组:

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为一组,对内存条来说DIMM

0用到了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要求控制在时钟信号负5

00mil到正1000mil以内。也就是说最长和最短的信号可以相差1500mil,但是布线的时

候还是尽量把信号长度差缩小比较好。布线的时候这组信号长度完全相等也没有问题,但

是这样占用的PCB空间也大,花费的时间也多。如果地址/命令信号长度超出时钟信号几

千mil,那就需要在BIOS固件中好好调节了。控制在CPU要求的范围内,需要做板载内

存的时候只需要配置好内存SPD就可以了。

控制组信号长度控制要求和地址/命令组信号的要求类似,设计的时候应该按照CPU

厂家的要求来做,INTEL凌动N450要求控制在时钟信号0mil到正1000mil以内。

走线间距:

一般来说走线都应该按照3W原则来走线,也就是同一个平面上线与线的间距为3倍

线的宽度。但是这个不是必须的,intel要求的就比较小。一般走线蜿蜒线的间距可以为1

6到20mil,对时钟信号可以加大到30mil。不同组信号之间的距离应该适当拉大,可以为

20mil以上,地址/命令组和控制组信号的间距可以比较小8mil以下都可以。BGA扇出的

地方间距可以小,出线后应该以CPU设计要求来走线。

其它:

VREF走线可以用一根20mil的线,每接到一个器件应该加一个0.1uf的电容。

VTT走线应该在135mil以上,每四个电阻接一个0.1uf电容,两端接10uf大电容。

点对多点的信号,如地址/命令信号、控制信号、时钟信号应该按照“T”形走线,也

就是芯片中间走上再分支,长度应该满足CPU设计要求。附拓扑图

如何实现FPGA到DDR3 SDRAM存储器的连接

采用90nm工艺制造的DDR3 SDRAM存储器架构支持总线速率为600 Mbps-1.6

Gbps (300-800 MHz)的高带宽,工作电压低至1.5V,因此功耗小,存储密度更可高达

2Gbits。该架构无疑速度更快,容量更大,单位比特的功耗更低,但问题是如何实现DDR3

SDRAM DIMM与FPGA的接口呢?

关键词——均衡!

如果没有将均衡功能直接设计到FPGA I/O架构中,那么任何设备连接到DDR3

SDRAM DIMM都将是复杂的,而且成本还高,需要大量的外部元器件,包括延时线和相

关的控制。

什么是均衡?为什么如此重要?

为了在支持更高频率时提高信号完整性,JEDEC委员会定义了一个fly-by(飞越式)端

接方案,该方案采用了时钟和命令/地址总线信号来改善信号完整性以支持更高的性能。当

时钟和地址/命令通过DIMM时,fly-by拓扑结构通过故意引起每个DRAM上的时钟和数

据/选通之间的飞行时间偏移(flight-time skew)来减小并发开关噪声(SNN),如图1所示。

飞行时间偏移可能高达0.8 tCK,当该偏移被扩展得足够宽时,将不知道数据在两个时

钟周期中的哪个内返回。因此,均衡功能可以使控制器通过调节每个字节通道内的时序来

补偿这一偏移。最新的FPGA能够为各种应用提供与双倍数据率SDRAM存储器接口的许

多功能。但是,要与最新的DDR3 SDRAM一道使用,还需要更鲁棒的均衡方案。

FPGA I/O结构

像Altera Stratix III系列高性能FPGA提供的I/O速度高达400 MHz (800 Mbps),

还具有很高的灵活性,能够支持现有的和新兴的外部存储器标准,如DDR3。

图1:DDR3 SDRAM DIMM:飞行时间偏移降低了SSN,数据必须被控制器调高到

两个时钟周期。

读均衡

在读取操作中,存储器控制器必须补偿由飞越存储器拓扑引起的、影响读取周期的延

时。均衡可以被视作为出现在数据通道上的比I/O本身延时还要大的延时。每个DQS都

要求一个同步时钟位置的独立相移(经过了工艺、电压和温度(PVT)补偿)。图2显示出同一

读取命令下从DIMM返回的两个DQS组。

图2:I/O单元中的1T、下降沿和均衡寄存器。

一开始,每个分开的DQS被移相90度,从而捕获与该组相关的DQ数据。然后用一

个自由运行的再同步时钟(频率和相位与DQS相同)将数据从捕获域转移到图2所示用粉红

色和橙色连线表示的均衡电路中。在这个阶段,每个DQS组都有一个独立的再同步时钟。

接着DQ数据被送到1T寄存器。图2中给出了一个1T寄存器实例,在上层通道中需

要用这个1T寄存器对特定DQS组中的DQ数据位进行延时。注意在该例中,下层通道不

需要1T寄存器。通过该过程开始对齐上层和下层通道。任何一个指定的通道是否需要1T

寄存器是自动确定的,这是免费物理层IP内核中校准方案的一部分功能。

随后两个DQS组被传送到下降沿寄存器。如果需要的话,还可以在启动时通过自动校

准过程把可选寄存器切换进来或切换出去。最后是将上层和下层通道对齐到同一再同步时

钟上,这样就形成了一个将完全对齐的或经过均衡的单倍数据率(SDR)数据传递到FPGA

结构的源同步接口。

写均衡

与读均衡类似,不过方向相反,DQS组在不同的时刻发出信号,以便与到达DIMM

上的器件的时钟一致,并且必须满足tDQSS参数要求的+/- 0.25 tCK。控制器必须通过创

建反馈环路来调整DQS与CK的关系,在此过程中,控制器会将数据写入DRAM,再通

过顺序相位进行扫描读回,直到发现写入窗的终点。为了更好的建立和保持余量,数据应

该在好窗口的中间点发出。

其他的FPGA I/O功能创新

高性能的Stratix III FPGA还具有许多创新性的其他I/O功能,可以实现到各种存储器

接口的简单且鲁棒性连接,这种功能包括了动态片上端接(OCT)、可变的I/O延时以及半

数据率(HDR)等。

动态OCT

并行和串行OCT为读写总线提供合适的线路端接和阻抗匹配,因此FPGA周边不需要

外接电阻,从而减少了外接元件成本,节约了电路板面积,而且降低了布线复杂度。另外,

它还大大降低了功耗,因为并联端接在写操作时可以有效地被旁路掉。

用于DQ去偏移(deskew)的可变延时

采用可变的输入和输出延时来跟踪长度失配和电气去偏移。精细的输入和输出延时分

辨率(即50皮秒步进)被用于更精细的DQS间去偏移(独立于均衡功能),这种偏移是由电路

板长度失配或FPGA和存储器件上I/O缓存的变化所引起的,如表1所示。最终,这增加

了每个DQS组的捕获余量。

表1:分辨率和绝对值待定特性。

为了将DDR3自动去偏移算法成为启动校准过程的一部分,需要从运行时的FPGA结

构实现延时单元。也可以利用输出延时在输出通道中插入少量偏移来有意地减少同时开关

的I/O数量。

可靠的捕获

DQS信号用作输入选通信号,它必须移位到一个最佳位置才能捕获读取事务。移相电

路可以将输入的DQS信号移相0°, 22.5°, 30°, 36°, 45°, 60°, 67.5°, 72°, 90°, 108°, 120°,

135°, 144°或 180°,具体取决于DLL的频率模式。移相后的DQS信号随后被用作I/O单

元各个输入寄存器的时钟。

延时锁定环路(DLL)在整个PVT范围内将相位保持在一个固定位置。DLL模块的相位

比较器用于将两个输入之间的相位差保持在零。实现的方法是均匀地修正DLL模块中的特

定延时(10-16)。用于更新DLL中某个延时模块的控制信号还被发送到DQS输入路径中的

时延模块。例如,可以利用DLL中的全部16个延时单元和DQS相移输入路径中的第4

个延时抽头来实现90°的相移:

或者选择DLL中的10个延时单元和DQS相移输入路径中的抽头4来实现36°的相移:

或120°:

该DLL采用频率基准为每个DQS引脚中的延时链动态产生控制信号,并允许它补偿

PVT的变化。在Stratix III FPGA中有4个DLL,它们都位于器件的边角,目的是使每个

DLL能够覆盖器件的两侧,从而可以在器件的各个边上支持多种DDR3 SDRAM存储器接

口。

跨越高速数据率域和设计简化

DDR捕获寄存器和HDR寄存器支持数据从双倍数据率域(数据在时钟的两个边沿)安

全传送到SDR域(数据位于频率相同的时钟的上升沿,但数据宽度加倍),再到HDR域(数

据位于时钟的上升沿,数据宽度仍是加倍,但时钟频率仅是SDR域的一半),这样使得内

部设计时序更容易实现。

裸片、封装和数字信号完整性改进

FPGA裸片和封装的设计必须为高性能的存储器接口提供更好的信号完整性(即用户

I/O与地和电源的比例为8:1:1,并具有最佳的信号返回路径,如图3所示)。此外,FPGA

应该提供动态OCT和可变的偏移率,以便能够控制信号的上升和下降时间以及可编程驱动

能力,从而满足所用标准(即SSTL 1.5 Class II)的要求。

图3:连接到每个电源和地的8个用户I/O。

本文小结

高性能Stratix III FPGA可以通过提供高存储器带宽、改进的时序余量以及系统设计中

的灵活性来弥补高性能DDR3 SDRAM DIMM的不足。由于DDR3在实际使用中将很快

超过DDR2,故提供更低成本、更高性能、更高密度和优异的信号完整性的高端FPGA必

须提供与JEDEC兼容的读写均衡功能,以便与高性能的DDR3 SDRAM DIMM相接。FPGA

与DDR3 SDRAM的有机整合将能够满足目前和下一代通信、网络以及数字信号处理系统

的要求

在现代高速数字电路的设计过程中,工程师总是不可避免的会与DDR或者DDR2,SDRAM

打交道。DDR的工作频率很高,因此,DDR的布线(或者Layout)也就成为了一个十分

关键的问题,很多时候,DDR的布线直接影响着信号完整性。下面本文针对DDR的布线

问题(Layout)进行讨论。

信号引脚说明

VSS为数字地,VSSQ为信号地,若无特别说明,两者是等效的。VDD为器件内核供电,

VDDDQ为器件的DQ和I/O供电,若无特别说明,两者是等效的。

对于DRAM来说,定义信号组如下:

数字信号组DQ,DQS,xDM,其中每个字节又是内部的一个信道Lane组,如

DQ0~DQ7,DQS,LDM为一个信号组。

地址信号组:ADDRESS

命令信号组:CAS#,RAS#,WE#

控制信号组:CS#,CKE

时钟信号组:CK,CK#

印制电路板叠层,PCB Stackups

推荐使用6层电路板,分布如下:

电路板的阻抗控制在50~60ohm

印制电路板的厚度选择为1.57mm(62mil)

填充材料Prepreg厚度可变化范围是4~6mil

电路板的填充材料的介电常数一般变化范围是3.6~4.5,它的数值随着频率,温度等

因素变化。FR-4就是一种典型的介电材料,在100MHz时的平均介电常数为4.2。推荐使

用FR-4作为PCB的填充材料,因为它便宜,更低的吸湿性能,更低的电导性。

一般来说,DQ,DQS和时钟信号线选择VSS作为参考平面,因为VSS比较稳定,不易受

到干扰,地址/命令/控制信号线选择VDD作为参考平面,因为这些信号线本身就含有噪声。

电路板的可扩展性

根据JEDEC标准,不同容量的内存芯片一般引脚兼容,为了实现电路板的可扩展性,可以

做如下处理,如128Mb与256Mb的兼容应用。

未用的DQ引脚

对于x16的DDR器件来说,未用的引脚要作一定的处理。例如x16的DDR来说,DQ15:

DQ8未用,则处理如下,将相关的UDM/DQMH拉高用来屏蔽DQ线,DQ15:DQ8通

过1~10k的电阻接地用来阻止迸发写时的噪声。

端接技术

串行端接,主要应用在负载DDR器件不大于4个的情况下。

对于双向I/O信号来说,例如DQ,串行端接电阻Rs放置在走线的中间,用来抑制振铃,

过冲和下冲。

对于单向的信号来说,例如地址线,控制线,串行端接电阻放置在走线中间或者是信号的

发送端,推荐放置在信号的发送端。

说明:DDR的CK与CK# 是差分信号,要用差分端接技术。

并行端接,主要应用在负载SDRAM器件大于4个,走线长度>2inch,或者通过仿真验证

需要并行端接的情况下。

并行端接电阻Rt取值大约为2Rs,Rs的取值范围是10~33ohm,故Rt的取值范围为

22~66ohm。

如果有必要的话,所有DDR的数据,地址,命令,控制线都是SSTL_2接口,要使用

single-ended Parallel Termination,如上图。CKE也可以使用这种端接。

导线宽度和间距:

导线间距和导线宽度S1,S2,S3的定义如下:

S1表示同一信号组内两相邻导线之间的间距

S2表示不同信号组之间两相邻导线之间的间距

S3表示导线的宽度

导线宽度选择为:

导线间距选择:

几点说明:

1. DQS一般布线的位置是数据信号组内同一信号组中DQ走线的中间,因此DQS与

DQS之间的间距一般不提

2. DQS与时钟信号线不相邻

3. 为了避免串扰,数据信号组与地址/命令/控制信号组之间的走线间距至少20mil,建

议它们在不同的信号层走线

4. 时钟信号组走线尽量在内层,用来抑制EMI

导线走线长度

所有DDR的差分时钟线CK与CK#必须在同一层布线,误差+-20mil,最好在内层布线以

抑制EMI。如果系统有多个DDR器件的话,要用阻值100~200ohm的电阻进行差分端

接。

(1) 若时钟线的分叉点到DDR器件的走线长度<1000mil,要使用100~120ohm的差分

端接,如下图:

(2) 若时钟线的分叉点到DDR器件的走线长度>1000mil,要使用200~240ohm的电阻

差分端接,因为两个200~240ohm的电阻并联值正好为100~120ohm。如下图所示。

数据信号组的走线长度与时钟信号线的误差为+-500mil,组内同一信道的信号线走

线误差为+-50mil,从而可以得到,组内不同信道的走线误差为+-1000mil,相同信道的

DQS一般走线在DQ中间

地址线/命令/控制信号线与时钟信号走线的误差为+-400mil,组内走线误差为

+-50mil

所有信号的走线长度控制在2inch(5cm)最好

去耦电容

推荐使用低ESL(2nH)的电容,大小在0.01uF~0.22uF,其中0.01uF针对高频,

0.22uF针对低频

建议使用钽电容。相对于电解电容来说,虽然它比较贵,但它具有较好的稳定性,较

长的使用周期。一般电解电容随着使用时间的加长,性能下降较多

参考电压

对于较轻的负载(<4DDR器件),可使用下图的方法:

对于较重的负载(>4 DDR器件),可使用IC来产生VREF。IC内部集成了两种电压VTT和

VREF,其中VTT在重负载的情况下最高电流可达3.5A,平均电流为0A,VREF的电流比

较小,一般只有3mA左右。

VREF走线控制

具体如下图所示:

DDR的VTT设计

当数据线地址线负载较重时,VTT的暂态电流峰值可达到3.5A左右,这种暂态电流的平

均值为0A。一些情况下不需要VTT技术(并行端接)。

系统中有2个或更少的DDR

总线上需要的电流不是很高,中等左右

通过仿真验证不需要

VTT电压的产生一般用IC,厂商包括:Intersilm Philips, Semiconductors, Fairchild,

National, TI等等。

选用了IC实现VTT,推荐使用下面的原则

高速PCB过孔的使用

过孔设计是由孔及孔周围的焊盘区和内层电气隔离区组成,如图1所示。过孔的寄生

电感、寄生电容等会影响通过过孔的高速信号,过孔的尺寸和与之相连接的焊盘对过孔的

属性具有直接的影响。

1.寄生电容

过孔本身存在着对地或电源的寄生电容,如果已知过孔在内层上的隔离孔直径为D

2

过孔焊盘的直径为D

1

;PCB的厚度为T;板基材的相对介电常数为ε;则过孔的寄生电容

大小近似为

过孔的寄生电容延Κ了电路中信号的上升时问,降低了电路的速度。如果一块厚度为

25mil的PCB,使用内径为10mil,焊盘直径为20mil的过孔,内层电气间隙宽度为32mil

时,可以通过上面的公式近似算出过孔的寄生电容大致为0.259 pF。如果走线的特性阻抗

为30Ω,则该寄生电容引起的信号上升时间延长量为

式中的系数1/2是因为过孔在走线的中途。从这些数值可以看出,尽管单个过孔的寄

生电容引起的上升沿变缓的效用不是很明显,但是如果走线中多次使用过孔进行层间的切

换,设计者还是要慎重考虑的。

图 过孔的结构

2.寄生电感

过孔还具有与其高度和直径直接相关的串联寄生电感。若九是过孔的高度;d是中心

钻孔的直径;则过孔的寄生电感L近似为

在高速数字电路的设计中,寄生电感带来的危害超过寄生电容的影响。过孔的寄生串

联电感会削弱旁路电容在电源或地平面滤除噪声的作用,减弱整个电源系统的滤波效用c

因此旁路和去耦电容的过孔应该尽可能短,以使其电感值最小。

通过上面对过孔寄生特性的分析,为了减小过孔的寄生效应带来的不利影响,在进行

高速PCB设计时应尽量做到:

· 尽量减少过孔,尤其是时钟信号走线;

· 使用较薄的PCB有利于减小过孔的两种寄生参数;

· 过孔阻抗应该尽可能与其连接的走线的阻抗相匹配,以便减小信号的反射;

· 选择合理的过孔尺寸。对于多层、密度一般的PCB,选用0.25 mm/0.51 mm/0.91

mm(钻孔直径/焊盘直径/内层隔离区直径)的过孔较好;对于一些高密度的PCB可以使

用0.20 mm/0.46 mm/0.86 mm的过孔,也可以尝试非穿导孔;对于电源或地线的过孔

则可以考虑使用较大尺寸,以减小阻抗;

· 内层电气隔离区越大越好,考虑PCB上的过孔密度,一般使其满足D2=Dg+0.41

mm;

· 电源和“地”的引脚要就近放置过孔,过孔和引脚之间的引线越短越好,因为它们

会导致电感的增加。同时电源和地的引线要尽可能粗,以减少阻抗;

· 在信号换层的过孔附近放置一些接地过孔,以便为信号提供短距离回路。

在设计时要从成本和信号质量两方面综合考虑,在高速PCB设计时,都希望过孔越小

越好,这样板上就留有更多的布线空间,此外,过孔越小,寄生电容也越小,更适合用于

高速电路。因此,在高速PCB的过孔设计时应给于均衡考虑

过孔(via)是多层PCB的重要组成部分之一,钻孔的费用通常占PCB制板费用的30%

到40%。简单的说来,PCB上的每一个孔都可以称之为过孔。从作用上看,过孔可以分成

两类: 1、用作各层间的电气连接。2、用作器件的固定或定位。如果从工艺制程上来说,

这些过孔一般又分为三类,即盲孔(blind via)、埋孔(buried via)和通孔(through via)。盲

孔位于印刷线路板的顶层和底层表面,具有一定深度,用于表层线路和下面的内层线路的

连接,孔的深度通常不超过一定的比率(孔径)。埋孔是指位于印刷线路板内层的连接孔,

它不会延伸到线路板的表面。上述两类孔都位于线路板的内层,层压前利用通孔成型工艺

完成,在过孔形成过程中可能还会重叠做好几个内层。第三种称为通孔,这种孔穿过整个

线路板,可用于实现内部互连或作为元件的安装定位孔。由于通孔在工艺上更易于实现,

成本较低,所以绝大部分印刷电路板均使用它,而不用另外两种过孔。以下所说的过孔,

没有特殊说明的,均作为通孔考虑。

从设计的角度来看,一个过孔主要由两个部分组成,一是中间的钻孔(drill hole),

二是钻孔周围的焊盘区,见下图。这两部分的尺寸大小决定了过孔的大小。很显然,在高

速,高密度的PCB设计时,设计者总是希望过孔越小越好,这样板上可以留有更多的布线空

间,此外,过孔越小,其自身的寄生电容也越小,更适合用于高速电路。但孔尺寸的减小

同时带来了成本的增加,而且过孔的尺寸不可能无限制的减小,它受到钻孔(drill)和电镀

(plating)等工艺技术的限制:孔越小,钻孔需花费的时间越长,也越容易偏离中心位置;

且当孔的深度超过钻孔直径的6倍时,就无法保证孔壁能均匀镀铜。比如,现在正常的一

块6层PCB板的厚度(通孔深度)为50Mil左右,所以PCB厂家能提供的钻孔直径最小

只能达到8Mil。

二、过孔的寄生电容

过孔本身存在着对地的寄生电容,如果已知过孔在铺地层上的隔离孔直径为D2,过孔

焊盘的直径为D1,PCB板的厚度为T,板基材介电常数为ε,则过孔的寄生电容大小近似于:

C=1.41εTD1/(D2-D1)

过孔的寄生电容会给电路造成的主要影响是延长了信号的上升时间,降低了电路的速

度。举例来说,对于一块厚度为50Mil的PCB板,如果使用内径为 10Mil,焊盘直径为

20Mil的过孔,焊盘与地铺铜区的距离为32Mil,则我们可以通过上面的公式近似算出过孔

的寄生电容大致是:C= 1.41x4.4x0.050x0.020/(0.032-0.020)=0.517pF,这部分电容引

起的上升时间变化量为:T10-90=2.2C (Z0/2)=2.2x0.517x(55/2)=31.28ps 。从这些数

值可以看出,尽管单个过孔的寄生电容引起的上升延变缓的效用不是很明显,但是如果走

线中多次使用过孔进行层间的切换,设计者还是要慎重考虑的。

三、过孔的寄生电感

同样,过孔存在寄生电容的同时也存在着寄生电感,在高速数字电路的设计中,过孔

的寄生电感带来的危害往往大于寄生电容的影响。它的寄生串联电感会削弱旁路电容的贡

献,减弱整个电源系统的滤波效用。我们可以用下面的公式来简单地计算一个过孔近似的

寄生电感:

L=5.08h[ln(4h/d)+1]

其中L指过孔的电感,h是过孔的长度,d是中心钻孔的直径。从式中可以看出,过

孔的直径对电感的影响较小,而对电感影响最大的是过孔的长度。仍然采用上面的例子,

可以计算出过孔的电感为:L=5.08x0.050[ln(4x0.050/0.010)+1]=1.015nH 。如果信号

的上升时间是1ns,那么其等效阻抗大小为:XL=πL/T10-90=3.19Ω。这样的阻抗在有高

频电流的通过已经不能够被忽略,特别要注意,旁路电容在连接电源层和地层的时候需要

通过两个过孔,这样过孔的寄生电感就会成倍增加。

四、高速PCB中的过孔设计

通过上面对过孔寄生特性的分析,我们可以看到,在高速PCB设计中,看似简单的过

孔往往也会给电路的设计带来很大的负面效应。为了减小过孔的寄生效应带来的不利影响,

在设计中可以尽量做到:

1.从成本和信号质量两方面考虑,选择合理尺寸的过孔大小。比如对6-10层的内存

模块PCB设计来说,选用10/20Mil(钻孔/焊盘)的过孔较好,对于一些高密度的小尺寸

的板子,也可以尝试使用8/18Mil的过孔。目前技术条件下,很难使用更小尺寸的过孔了。

对于电源或地线的过孔则可以考虑使用较大尺寸,以减小阻抗。

2.上面讨论的两个公式可以得出,使用较薄的PCB板有利于减小过孔的两种寄生参

数。

3.PCB板上的信号走线尽量不换层,也就是说尽量不要使用不必要的过孔。

4.电源和地的管脚要就近打过孔,过孔和管脚之间的引线越短越好,因为它们会导致

电感的增加。同时电源和地的引线要尽可能粗,以减少阻抗。

5.在信号换层的过孔附近放置一些接地的过孔,以便为信号提供最近的回路。甚至可

以在PCB板上大量放置一些多余的接地过孔。

当然,在设计时还需要灵活多变。前面讨论的过孔模型是每层均有焊盘的情况,也有

的时候,我们可以将某些层的焊盘减小甚至去掉。特别是在过孔密度非常大的情况下,可

能会导致在铺铜层形成一个隔断回路的断槽,解决这样的问题除了移动过孔的位置,我们

还可以考虑将过孔在该铺铜层的焊盘尺寸减小

发布评论

评论列表 (0)

  1. 暂无评论