DDR PCB设计.docx
《DDR PCB设计.docx》由会员分享,可在线阅读,更多相关《DDR PCB设计.docx(22页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、1 引言DDR2(Double Data Rate2)SDRAM 是由 JEDEC(电子设备工程联合委员会)制定的生代内存技术标准, 它与上一代 DDR 内存技术标准最大的不同:虽然承受时钟的上升下降沿同时传输数据的根本方式,但DDR2 却拥有 2 倍的 DDR 预读取力量(即 4 位预存取技术)。此外,DDR2 还增加 ODT(内建核心终结电阻器)功能,内建适宜的端接电阻,避开了以往因片外连接大片终结电阻带来的制板本钱增加。基于 FPGA 的 SDRAM 掌握器,以高牢靠性、强可移植性、易于集成的特点,渐渐取代以往的专用掌握器而成为主流解决方案。本文承受 Xilinx 公司的 Spartan
2、-3A 系列FPGA 和 Hynix 公司的 DDR2 SDRAM 器件 HY5PS121621 实现 DDR2 掌握器的设计。2 FPGA 与 DDR2 存储器接口图 1 所示为 DDR2 与 FPGA 的外围接口连接图,DDR2 的信号线分为:时钟信号线 CKCK ;数据信号线 DataDQSDM;地址信号线AddressBA1BA0;命令信号线RASCASWE;掌握信号线CSCKEODT。FPGA 除与 DDR2 的全部信号线相连外,还引出外部环回信号线(图中虚线所示),此信号输出送至输入输出模块(IOB),以补偿 FPGA 与存储器之间的 IOB、器件和迹线的延迟。差分时钟线 CKCK
3、 为 DDR2 数据传输供给时钟,在CK 的上升沿和下降沿均有数据被触发;双向差分线DQSDQS 看作数据的同步信号,写入时由掌握器发出,读取时由DDR2 产生 DQS 向掌握器发送,它与读数据边沿对齐而与写数据中心对齐。DN 为数据信号屏蔽位在突发写传输时屏蔽不存储的数据;RAS CASWE 作为命令信号线向DDR2 发出读取、写人、刷或预充电命令;片内终结信号线 ODT 掌握是否需要 DDR2 进展片内终结。3 DDR2 掌握器的设计原理基于 FPGA 的 DDR2 掌握器设计是由时钟生成模块、存储掌握模块和读写数据接口模块组成如图2 所示。掌握器中全部模块时钟均来自于时钟生成模块,它由数
4、字时钟治理器(DCM)掌握,输出90、180和 270时钟。该模块还包含延迟校准监视器,用于校准读取数据(DQ)对读取数据选通脉冲(DQS)的延迟,以便读取数据选通脉冲边沿能够正确对齐 DQ 有效窗口的中间位置。读写数据接口模块是整个掌握器设计的关键,它负责将用户写入的数据 DQ 和 DOS 依据 DDR2 SDRAM 时序要求发送给 DDR2,DDR2 在 DQS 的每一个时钟沿采集写数据。在读取数据时,DDR2 SDRAM 将DQS 和相关数据发送到与 DQ 对齐边沿的 FPGA。FPGA 将接收到的 DQS 信号经过延迟校准,作为内部存储读数据的 FIFO 的写时钟。FPGA 为 DDR
5、2 的每个数据位配置一对读写异步的 FIFO,每个数据位都输入到上升沿(FIFO0)和下降沿(FIFO1)的 FIFO 中,实现原理如图 3 所示。存储掌握模块用于产生 DDR2 所需的地址和命令信号。DDR2 在正常的读写操作前要初始化,因此需向DDR2 发送初始化命令,待初始化完成后才能发送读写命令。对 DDR2 SDRAM 的读写访问为突发模式。突发写操作需向 DDR2 供给写命令(User_command)、写数据(User_input_data)和写地址(User_address) 信号,在最终一个写地址发送突发操作完成信号(User_burst_done),并保持2 个时钟周期有效
6、下终止写操作,突发写时序如图 4 所示。突发读操作需向DDR2 供给读命令(User_comm-and)和读地址(User-address),在最终一读地址发送突发完成信号(User-burst_done),并保持 2 个周期有效下终止读操作,突发读时序如图 5 所示4 DDR2 掌握器的设计及应用为了缩短开发周期,承受 Xilinx 的 MIG 软件工具直接生成 DDR2 掌握器设计模块,包括 HDL 代码和约束文件。用户可在MIG 的 GUI 图形界面选择对应模板、总线宽度和速度级别,并设置CAS 延迟、突发长度、引脚安排等关键参数。假设设计者所选器件与MIG 所列模板不相符,可在代码生成
7、后敏捷修改代码,到达系统要求。代码添加到工程前需硬件验证,承受MIG 自动生成的测试模块进展验证。该模块向存储器发出一系列的写入命令和读取命令,并对写入数据和读回数据进展比较,通过比较信号(led_error)验证掌握器 的正确与否。用 ChipScope 抓取的读数据和相关掌握信号时序分别如图 6 和图 7 所示,读写比较信号(led_error)在检测到读写数据相等时输出”0”电平。在硬件验证通过后,把掌握器代码导入到系统工程中,设计者只需输入相应命令(包括读、写和初始化命 令),掌握器模块将自动产生命令和掌握信号并依据DDR2 的时序要求送至 DDR2,命令发送完毕供给应用户一个命令应答
8、信号(User_cmd_ack),设计者依据这一信号推断是否可以发送下一个命令。至于自动刷 、激活和预充电命令则由掌握器自动完成,无需用户干预。5 完毕语通过 MIG 工具关心设计,实现 500 Ms 带宽的 DDR2 接口数据采集,占用FPGA 资源分别为 15IOB 资源,17规律 Slice 资源和 2 个 DCM。在 FPGA 中实现 DDR2 掌握器,节约功耗和空间,并缩短系统开发周期,满足大多数低本钱系统设计要求 :/blog.21ic /user1/4435/archives/2023/81836.htmlDDR2 布线阅历总结做主板已经两年多了,做过龙芯 2F 内存条和板载内存
9、颗粒的设计,做过凌动N450 内存条和板载内存颗粒的设计。想写点东西总结一下,觉察网上已经有很多这类的文章了,现在再写一点就当作是参考补充吧。以下内容主要是针对 DDR2 667 内存的设计。信号分组:DDR2 的布线中习惯把信号分成假设干组来进展设计,分成同组的信号具有相关或者相像的信号特性。时钟组:差分时钟信号,每一对信号都是同频同相的。ckp0 和 ckn0 为一对。数据组:对主板 64 位 DDR2 内存来说数据每 8 位也就是一个 byte为一组可以分为八组,数据 dq0: 7、数据掩码dqm0、数据选通差分信号dqsp0 和dqsn0 为一组,以此类推。同个数据组的信号应当在同一个
10、信号层上走线,换层也应当一起换,为了便利在同一个信号层走线可以将数据位互换。比方 dq2 信号在走线的时候觉察假设依据原理图来走线会跟 dq4 穿插,这样就不得不换层走线,我们通过互换数据位就可以使信号走同层,对内存来说每一位存进什么内容读出也是什么内容,互换不会受影响,但是互换的条件必需是在同一组内 8 个bit 之间。地址/命令组:MA0:14、BA0、BA1、BA2、RAS、CAS、WE掌握组:时钟使能 CKE、片选 CS、终端电阻选通 ODT 为一组,对内存条来说DIMM0 用到了CKE0、CKE1、CS0、CS1、ODT0、ODT1。做板载内存设计的时候,可以只用CKE0、CS0、O
11、DT0,掌握4 片 16 位的内存芯片。PCB 叠层:对六层板来说一般的叠层都是top、GND、singnal2、singnal3、POWER、bottom,信号一般状况下以G ND 为参考平面比较好。走线的阻抗由走线宽度、走线的铜箔厚度、走线到参考平面的距离、参考平面的铜箔厚度和板介质材料打算,PCB 设计的时候应当遵守 CPU 厂家阻抗设计要求来设置叠层。一般PCB 设计软件也能计算阻抗,找 PCB 生产厂家了解了板材介质厚度的资料后可以自行设计叠层、线宽。地址/命令信号、掌握信号可以以 1.8V 内存工作电压为参考平面。长度掌握:对DDR2 这种高频的信号来说走线长度应当计算到CPU 核
12、心,这就引入了一个叫封装长度的概念。硅晶元经过物理化学的方法刻蚀而成 CPU 核心,再将CPU 核心封装到一块小的PCB 基板上就成了我们常见的 CPU。那块小的 PCB 上管脚到CPU 核心的走线长度被称为封装长度。到同一行列rank内存的时钟长度应当掌握在正负 5mil 以内。同一个数据组内全部走线长度掌握在数据选通信号DQS 的正负 20mil 范围内为宜,不同数据组之间长度可以不同,但是应当掌握在时钟信号的正负 500mil 以内。地址/命令组信号长度掌握不是特别严格,INTEL 凌动 N450 要求掌握在时钟信号负 500mil 到正 1000m il 以内。也就是说最长和最短的信号
13、可以相差 1500mil,但是布线的时候还是尽量把信号长度差缩小比较好。布线的时候这组信号长度完全相等也没有问题,但是这样占用的 PCB 空间也大,花费的时间也多。假设地址/命令信号长度超出时钟信号几千 mil,那就需要在 BIOS 固件中好好调整了。掌握在 CPU 要求的范围内,需要做板载内存的时候只需要配置好内存 SPD 就可以了。掌握组信号长度掌握要求和地址/命令组信号的要求类似,设计的时候应当依据 CPU 厂家的要求来做,INTEL 凌动 N450 要求掌握在时钟信号 0mil 到正 1000mil 以内。走线间距:一般来说走线都应当依据 3W 原则来走线,也就是同一个平面上线与线的间
14、距为 3 倍线的宽度。但是这个不是必需的,intel 要求的就比较小。一般走线曲折线的间距可以为 16 到 20mil,对时钟信号可以加大到 30mil。不同组信号之间的距离应当适当拉大,可以为 20mil 以上,地址/命令组和掌握组信号的间距可以比较小 8mil 以下都可以。BGA 扇出的地方间距可以小,出线后应当以CPU 设计要求来走线。其它:VREF 走线可以用一根 20mil 的线,每接到一个器件应当加一个 0.1uf 的电容。VTT 走线应当在 135mil 以上,每四个电阻接一个 0.1uf 电容,两端接 10uf 大电容。点对多点的信号,如地址/命令信号、掌握信号、时钟信号应当依
15、据“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
16、 都将是简单的,而且本钱还高,需要大量的外部元器件,包括延时线和相关的掌握。什么是均衡?为什么如此重要?为了在支持更高频率时提高信号完整性,JEDEC 委员会定义了一个 fly-by(飞越式)端接方案,该方案承受了时钟和命令/地址总线信号来改善信号完整性以支持更高的性能。当时钟和地址/命令通过 DIMM 时,fly-by拓扑构造通过有意引起每个DRAM 上的时钟和数据/选通之间的飞行时间偏移(flight-time skew)来减小并发开关噪声(SNN),如图 1 所示。飞行时间偏移可能高达 0.8 tCK,当该偏移被扩展得足够宽时,将不知道数据在两个时钟周期中的哪个内返回。因此,均衡功能可以
17、使掌握器通过调整每个字节通道内的时序来补偿这一偏移。最的FPGA 能够为各种应用供给与双倍数据率 SDRAM 存储器接口的很多功能。但是,要与最的 DDR3 SDRAM 一道使用, 还需要更鲁棒的均衡方案。FPGA I/O 构造像 Altera Stratix III 系列高性能FPGA 供给的 I/O 速度高达 400 MHz (800 Mbps),还具有很高的敏捷性, 能够支持现有的和兴的外部存储器标准,如 DDR3。图 1:DDR3 SDRAM DIMM:飞行时间偏移降低了SSN,数据必需被掌握器调高到两个时钟周期。读均衡在读取操作中,存储器掌握器必需补偿由飞越存储器拓扑引起的、影响读取
18、周期的延时。均衡可以被视作为消灭在数据通道上的比 I/O 本身延时还要大的延时。每个 DQS 都要求一个同步时钟位置的独立相移(经过了工艺、电压和温度(PVT)补偿)。图 2 显示出同一读取命令下从DIMM 返回的两个 DQS 组。图 2:I/O 单元中的1T、下降沿和均衡存放器。一开头,每个分开的DQS 被移相 90 度,从而捕获与该组相关的DQ 数据。然后用一个自由运行的再同步时钟(频率和相位与 DQS 一样)将数据从捕获域转移到图 2 所示用粉红色和橙色连线表示的均衡电路中。在这个阶段,每个 DQS 组都有一个独立的再同步时钟。接着 DQ 数据被送到 1T 存放器。图 2 中给出了一个
19、1T 存放器实例,在上层通道中需要用这个 1T 存放器对特定 DQS 组中的 DQ 数据位进展延时。留意在该例中,下层通道不需要1T 存放器。通过该过程开头对齐上层和下层通道。任何一个指定的通道是否需要 1T 存放器是自动确定的,这是免费物理层 IP 内核中校准方案的一局部功能。随后两个 DQS 组被传送到下降沿存放器。假设需要的话,还可以在启动时通过自动校准过程把可选存放器切换进来或切换出去。最终是将上层和下层通道对齐到同一再同步时钟上,这样就形成了一个将完全对齐的或经过均衡的单倍数据率(SDR)数据传递到 FPGA 构造的源同步接口。写均衡与读均衡类似,不过方向相反,DQS 组在不同的时刻
20、发出信号,以便与到达 DIMM 上的器件的时钟全都, 并且必需满足 tDQSS 参数要求的+/- 0.25 tCK。掌握器必需通过创立反响环路来调整DQS 与 CK 的关系, 在此过程中,掌握器会将数据写入DRAM,再通过挨次相位进展扫描读回,直到觉察写入窗的终点。为了更好的建立和保持余量,数据应当在好窗口的中间点发出。其他的 FPGA I/O 功能创高性能的 Stratix III FPGA 还具有很多创性的其他I/O 功能,可以实现到各种存储器接口的简洁且鲁棒性连接,这种功能包括了动态片上端接(OCT)、可变的 I/O 延时以及半数据率(HDR)等。动态 OCT并行和串行 OCT 为读写总
21、线供给适宜的线路端接和阻抗匹配,因此 FPGA 周边不需要外接电阻,从而削减了外接元件本钱,节约了电路板面积,而且降低了布线简单度。另外,它还大大降低了功耗,由于并联端接在写操作时可以有效地被旁路掉。用于 DQ 去偏移(deskew)的可变延时承受可变的输入和输出延时来跟踪长度失配和电气去偏移。精细的输入和输出延时区分率(即 50 皮秒步进) 被用于更精细的DQS间去偏移(独立于均衡功能),这种偏移是由电路板长度失配或FPGA 和存储器件上I/O缓存的变化所引起的,如表 1 所示。最终,这增加了每个 DQS 组的捕获余量。表 1:区分率和确定值待定特性。为了将 DDR3 自动去偏移算法成为启动
22、校准过程的一局部,需要从运行时的 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 模块的相位比较器用于将两个输入之
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DDR PCB设计 PCB 设计
限制150内