DDR走线拓扑

本文深入探讨DDR内存的三种主要拓扑结构:T型、FLY-BY和菊花链,对比其优缺点,如信号完整性和阻抗匹配,并讨论了写入平衡在DDR3中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DDR走线拓扑

DDR与SDRAM

DDR=Double Data Rate双倍速率,DDR SDRAM=双倍速率同步动态随机存储器,人们习惯称为DDR,其中,SDRAM 是Synchronous Dynamic Random Access Memory的缩写,即同步动态随机存取存储器。而DDR SDRAM是Double Data Rate SDRAM的缩写,是双倍速率同步动态随机存储器的意思。DDR内存是在SDRAM内存基础上发展而来的,仍然沿用SDRAM生产体系,因此对于内存厂商而言,只需对制造普通SDRAM的设备稍加改进,即可实现DDR内存的生产,可有效的降低成本。
DDR SDRAM发展至今,已经从第一代发展到了第六代,但是因为工艺与价格的因素,目前使用居多的还是第三代以及第四代的SDRAM;同时由于单片颗粒的内存容量与价格之间的因素,我们经常使用多颗小容量DDR SDRAM组成大容量存储,例如四片2GB的组成8GB的存储。
在这个过程中,因为实际的PCB布线的因素,我们的多片DDR要满足DDR规范的时序,就需要使用一定的拓扑结构来完成时序的要求,接下来我们就来介绍DDR的拓扑。

T型拓扑

T型拓扑如下:在这里插入图片描述
T型拓扑特点是每个分支的接收负载端和走线长度尽量保持一致,这种拓扑保证不同接收端没有skew,在多负载情况下可以有效的避免时钟、地址和控制信号不同步的问题。但是这种情况下的布线比较困难,空间资源使用较多。
该种拓扑在走线不是很长,并且走线可控的情况下可以不适用VTT和RTT电阻端接;只有走线很长且阻抗难以控制时,可以使用端接来实现更好的信号完整性。

FLY-BY拓扑

Fly-By拓扑如下:在这里插入图片描述
FLY-BY拓扑与前面讲到的拓扑不一致,它不能保证每个驱动端到各个负载的走线长度相等,而是确保到每个驱动端长度尽量短,从而避免分支信号产生对主信号的反射干扰。该类型不能保证时钟、地址和控制线号同步。
使用这种拓扑时请注意电阻端接的位置,一般是该拓扑最后一片DDR的后面端接。也就是上图中的(b)所示意的这种端结形式。端结电压是参考电压,也就是Vccq/2,端结电阻根据CPU的不同也不一致,我有见过51欧姆的,也有见过49.9欧姆的,还见过33欧姆的。

该走线比较容易实现,但是该种拓扑在不添加端接电阻时,很难实现阻抗匹配,只有使用合适的段接电阻,才能改善过冲现象;
并且,使用FLY-BY结构,需要CPU支持读写均衡这一技术。

写入平衡

为了获得更好的信号完整性,DDR3内存模块采用了FLY-BY拓扑结构,用于命令,地址,控制信号和时钟。 fly-by拓扑结构受益于减少短截线数量及其长度,但它也会导致DIMM上每个DRAM的时钟和其他时序之间的传输时间偏差。这使得控制器难以满足tDQSS,tDSS和tDSH规范。因此,DDR3 SDRAM支持“写入平衡”功能,允许控制器补偿偏斜。
内存控制器可以使用“写入均衡”功能和来自DDR3 SDRAM的反馈调整DQS - DQS#到CK - CK#的关系。涉及的存储器控制器必须在DQS-DQS#上具有可调延迟设置,以使DQS-DQS#的上升沿与DRAM引脚的时钟对齐。DRAM异步反馈CK-CK#,通过DQ总线以DQS-DQS#的上升沿采样。控制器反复延迟DQS-DQS#,直到检测到从0到1的转换。通过此措施建立的DQS - DQS#延迟,总会确保tDQSS规范。除tDQSS外,还需要满足tDSS和tDSH规范。实现这一目标的一种方法是将应用中的实际tDQSS与DQS上的适当占空比和抖动相结合-DQS#信号。

菊花链拓扑

菊花链拓扑:**加粗样式**
其实DDR3中所说的FLY-BY其实就是从菊花链拓扑进化而来,仔细看两者差异在于连接每个器件的单独分支长短,如果短到为0,这就是菊花链,如果稍微长一些这就是FLY-BY。菊花链的难点在于很难实现完全小分支为0,所以我们一般说是FLY-BY。

请注意,以上所说到的拓扑都是对于多片DDR使用时的连接拓扑。单片的话无论怎么连都是可以的,但是要注意走线特性阻抗的控制,一般而言是单线50欧,差分100欧。

但是需要注意两片DDR的话,现在一般都是使用T型拓扑,就是控制走线长度一致;在时钟差分线分支处需要连接阻抗匹配电阻,一般是100欧,在CPU输出CLK处需要连接一颗电容,容值取决于方案。

单片DDR有些的是RC端结方式(电阻电容接VCC),端结点位于DDR的CLK端(引脚处)。当然也有电阻电容接地的,此时我也见过在CLK过孔处放置,所以说具体还是要看原始设计。这种RC端接一般是处于EMI的考虑,因为时钟输出还有共模信号,使得共模信号泄放到地。

但是如果片数太多,例如我们使用四片DDR的话,就需要注意我们使用的拓扑结构了,请注意T型和FLY-BY之间的差异,T型走线要求较高,但是基本上不用端接处理;FLY-BY走线对于等长要求不高,但是需要做端接,因此需要额外的电路元件,除此之外还需要所谓的写入“写入均衡”的支持才行。

Reference
1、http://www.tontektech.com/content/s2018031712.html

2、http://download.icxbk.com/201707/03197c8745bf7bf0fe899be4b7f75e98.pdf

### DDR走线规则设计规范与最佳实践 DDR(Double Data Rate)存储器的PCB布线规则对于确保信号完整性、降低电磁干扰和提高系统性能至关重要。以下是关于DDR走线规则的设计规范和最佳实践,结合JEDEC标准及具体布线要求进行详细说明。 #### 一、DDR走线的基本原则 DDR走线需要遵循严格的长度匹配、阻抗控制和差分信号对称性要求,以确保数据传输的稳定性和可靠性[^3]。具体原则如下: 1. **等长规则**: 在DDR设计中,地址/命令/控制信号、时钟信号和数据信号需要满足特定的长度匹配要求。例如,时钟信号到任意DDR芯片的距离必须比其对应的strobe信号更长[^4]。这是为了保证信号到达时间的一致性,避免时序偏差。 2. **差分信号对称性**: 差分信号对(如CLK、CKE等)需要保持严格的对称性,且两根信号之间的间距应保持一致。这种设计可以减少串扰并增强信号完整性[^2]。 3. **阻抗控制**: DDR信号线需要严格控制阻抗值(通常为50Ω),以避免反射和信号失真。这要求在PCB设计阶段选择合适的层叠结构,并确保过孔设计不会破坏阻抗连续性。 #### 二、DDR3布线规范 DDR3的设计规范主要包括以下几个方面: 1. **时钟信号布线**: - 时钟信号应尽量短且直,避免不必要的弯曲或绕线。 - 避免与其他高速信号交叉,以减少串扰。 2. **数据信号布线**: - 数据信号(DQ、DM、DQS)需要满足严格的长度匹配要求。DQS(Data Strobe)信号与对应的数据信号之间的长度差异应控制在一定范围内(通常为±25mil)[^4]。 - 使用菊花链拓扑结构(Fly-by Topology)连接多个DDR芯片,以减少信号延迟差异。 3. **电源和地平面设计**: - 提供充足的去耦电容,以降低电源噪声。 - 确保电源和地平面的完整性,避免分割或断裂。 #### 三、DDR4布线规范 DDR4相比DDR3有更高的性能要求,因此布线规范也更加严格: 1. **时钟和数据线长度匹配**: DDR4要求更精确的长度匹配,尤其是对于VREF信号和其他关键信号。时钟信号和数据信号之间的长度差异需要严格控制在±10mil以内。 2. **差分信号对称性**: 差分信号对(如CLK、CKE等)需要保持更严格的对称性,间距误差应小于2mil。 3. **电源设计**: DDR4需要更低的电压(1.2V),因此对电源噪声的要求更高。设计时需增加更多的去耦电容,并优化电源分配网络(PDN)。 #### 四、DDR PCB布局规则 合理的PCB布局是实现良好走线的基础。以下是一些布局建议: 1. **芯片位置安排**: -DDR芯片尽可能靠近内存控制器放置,以缩短信号路径。 - 避免DDR芯片与其他高速器件过于接近,以减少干扰。 2. **信号分组**: - 将地址/命令/控制信号、时钟信号和数据信号分别分组布线,避免不同组信号之间的干扰。 3. **过孔设计**: - 尽量减少过孔数量,以降低阻抗不连续性。 - 如果必须使用过孔,则需添加适当的补偿措施(如增加接地过孔)。 #### 五、总结 DDR走线规则的设计规范和最佳实践需要综合考虑信号完整性、时序匹配和电源完整性等因素。通过遵循JEDEC标准和具体的布线要求,可以有效提高系统的性能和可靠性。 ```python # 示例代码:DDR3 DQS与DQ信号长度匹配检查 def check_length_match(dqs_length, dq_length, tolerance=25): if abs(dqs_length - dq_length) <= tolerance: return True else: return False dqs_length = 1000 # 单位:mil dq_length = 1020 # 单位:mil if check_length_match(dqs_length, dq_length): print("Length match is within tolerance.") else: print("Length mismatch detected.") ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值