4. DDR总线拓扑:Fly-by拓扑与T型拓扑的区别

大家好,我是老张。今天咱们聊聊DDR总线拓扑。说实话,这块内容我当年刚入行时也踩过不少坑。你想想看,DDR信号跑得越来越快,拓扑选不对,整个板子可能就废了。

4.1 两种主流拓扑:T型 vs Fly-by

DDR总线的拓扑,说白了就是信号怎么从控制器走到各个颗粒。早期DDR2时代,大家普遍用T型拓扑。到了DDR3以后,Fly-by成了主流。为什么会有这个变化?我来给你讲讲。

核心区别一句话总结:

  • T型拓扑:信号从主干分叉到每个颗粒,分支长度尽量相等
  • Fly-by拓扑:信号像串糖葫芦一样,依次经过每个颗粒

4.2 T型拓扑的特点

T型拓扑,也叫分支拓扑。信号从控制器出来,先走到一个主干,然后在每个分支点分叉到各个颗粒。我早期做DDR2项目时,用的就是这种。

优点:

  • 每个颗粒看到的信号路径基本一致,时序容易对齐
  • 对地址/命令/控制信号的走线长度要求相对宽松

缺点:

  • 分支会产生反射,信号质量容易变差
  • 分支越多,阻抗不连续越严重
  • 走线空间占用大,布线难度高

注意:T型拓扑的分支长度必须严格控制。我曾经有个项目,分支长度差了200mil,结果DDR3跑800MHz就报错。后来查了半天,就是分支不等长导致的信号反射。

4.3 Fly-by拓扑的特点

Fly-by拓扑,也叫菊花链拓扑。信号从控制器出来,依次经过每个颗粒,最后端接匹配电阻。DDR3以后,JEDEC标准就推荐用这种了。

优点:

  • 信号完整性好,反射小
  • 布线简单,节省空间
  • 适合高速DDR3/DDR4/DDR5

缺点:

  • 每个颗粒看到信号的延迟不同,需要靠DQS的写均衡来补偿
  • 对地址/命令/控制信号的走线顺序有要求

我的经验:Fly-by拓扑中,颗粒的排列顺序要和信号走线方向一致。比如控制器在左边,颗粒就从左到右依次排列。这样信号延迟是单调递增的,写均衡算法容易处理。

4.4 地址/命令/控制信号的走线规则

这部分我重点说说。地址、命令、控制信号在DDR总线中属于共同时序组,它们必须满足严格的走线规则。

核心规则:

  1. 等长走线:同一组内的信号,走线长度差控制在±50mil以内
  2. 参考平面完整:信号下方必须有完整的GND或VDD平面
  3. 避免跨分割:跨分割会导致阻抗突变,信号反射
  4. 3W原则:信号间距至少是线宽的3倍,减少串扰

避坑指南:我曾经遇到过一个案例,地址信号走线长度差了120mil,结果DDR3在800MHz时地址建立时间不够。后来把走线绕了一下,控制在30mil以内,问题就解决了。所以,等长不是说着玩的。

4.5 数据线DQS与DQ的等长要求

数据线这块,DQS和DQ必须严格等长。为什么?因为DQS是DQ的采样时钟,它们之间的时序关系决定了数据能否正确读取。

等长要求:

DDR版本 DQS与DQ等长要求 备注
DDR2 ±50mil 相对宽松
DDR3 ±20mil 严格
DDR4 ±10mil 非常严格
DDR5 ±5mil 极其严格

你想想看,DDR4的数据速率已经到3200MT/s了,一个UI(单位间隔)才312ps。如果DQS和DQ差了10mil,换算成时间大约是1.7ps,这已经占到了UI的0.5%以上。再大一点,时序裕量就不够了。

特别注意:DQS和DQ的等长,不仅要考虑走线长度,还要考虑过孔、焊盘、封装等所有路径。我习惯在PCB设计时,把DQS和DQ的走线长度控制在±5mil以内,留出余量给其他因素。

4.6 知识体系结构图

下面这张图,是我自己总结的DDR总线拓扑知识体系。你一看就明白了。

DDR总线拓扑知识体系 DDR总线拓扑 拓扑类型 T型拓扑 Fly-by拓扑 T型拓扑特点 • 分支等长,时序易对齐 • 反射大,信号质量差 • 布线空间占用大 Fly-by拓扑特点 • 信号完整性好 • 布线简单,节省空间 • 需写均衡补偿延迟 走线规则 地址/命令/控制信号 等长±50mil,参考平面完整,3W原则 DQS与DQ等长要求 DDR4: ±10mil, DDR5: ±5mil

4.7 实际项目中的选择建议

说了这么多,到底怎么选?我个人的经验是这样的:

  • DDR2及以下:T型拓扑还能用,但建议控制分支长度在100mil以内
  • DDR3及以上:必须用Fly-by拓扑,别犹豫
  • 颗粒数量少(≤4):两种拓扑都可以,但Fly-by更省事
  • 颗粒数量多(≥8):只能用Fly-by,T型根本布不开

小技巧:如果你用Fly-by拓扑,记得在最后一个颗粒后面加端接电阻。电阻值一般是40-60Ω,具体看你的阻抗设计。我习惯用49.9Ω,刚好匹配50Ω传输线。

好了,这一章的内容就到这里。DDR总线拓扑这块,说白了就是选对结构、控好走线、算准时序。你只要把这三点抓住了,DDR信号完整性就不会出大问题。


专注资料整理