4. DDR5差分对走线拓扑:点对点、Fly-by、T型
选择什么拓扑,这个问题我几乎每次项目评审都会被问到。DDR5频率上去了,拓扑选型不再是“用哪个都行”的事。选错的后果?信号反射、时序偏差,严重的直接跑不到目标频率。好,我们一个一个拆开看。
4.1 点对点拓扑
点对点拓扑,说白了就是一个驱动端对一个接收端,中间没有分支。DDR5数据组(DQ、DQS、DM)必须用这个拓扑。为什么?频率太高了,任何分支都会引入反射和串扰,你想想看,3200MT/s以上信号边沿只有几十皮秒,一个 stub 就毁掉眼图。
我在一个服务器项目里就吃过亏。客户想省成本,把两个 x8 颗粒的 DQ 并联到同一个控制器通道,结果跑 5600MT/s 死活不稳。后来换成独立通道的点对点,问题全消。所以,别在数据组上耍小聪明。
4.2 Fly-by 拓扑
Fly-by 是 DDR5 地址/命令/控制/时钟线的标准走法。它像一条总线串起所有颗粒,每个颗粒就近从主干线上 tap 出一小段 stub 连接。我之前第一次画 DDR5 布局时,看到地址线绕来绕去还以为画错了,后来才明白——它就是为了让时钟、地址、命令信号按顺序到达每个颗粒,配合 Write Leveling 补偿时序偏差。
具体走法是这样:主控出来,先经过第一个颗粒,再到第二个、第三个……最后一个结束时端接电阻上拉到 VTT。注意,末端必须接 VTT 端接,否则信号反射会非常严重。
| 参数 | Fly-by 要求 | 个人建议 |
|---|---|---|
| 主干阻抗 | 差分 100Ω ±10% | 务必保持连续,换层处加地过孔 |
| stub 长度 | ≤ 150mil (DDR5-6400) | 能短尽量短,我习惯控制在 100mil 以内 |
| 分支间间距 | 根据颗粒物理位置 | 走线弧度不要小于 45°,避免阻抗突变 |
| 端接电阻 | VTT = 0.5*VDDQ | 0402 封装,靠近最后一个颗粒 |
4.3 T型拓扑
T型拓扑(也叫分支拓扑),就是主干走到中间分叉,左右对称连接到两个颗粒。DDR4 和 LPDDR4 时代很常见,但 DDR5 基本不推荐了。为什么?因为 T 型分支的桩线长度不可能为零,每个分支引入的额外电容和反射会让高速信号很难看。
不过,有些低成本板子上,如果仅用 1~2 个颗粒、速率在 DDR5-4800 以下,T型拓扑仍然可以用。但你必须严格控制分支长度相等,并且分支点到颗粒的 stub 尽量短。我建议不超过 200mil。
· 点对点:DDR5 数据组唯一选择,简单可靠。
· Fly-by:DDR5 地址/命令/控制/时钟标准,配合 Write Leveling 必须用。
· T型:DDR5 尽量别用,除非速率低且负载轻。
4.4 三种拓扑适用场景速查表
| 拓扑 | 适用信号 | DDR5 是否强制 | 典型场景 |
|---|---|---|---|
| 点对点 | DQ, DQS, DM, DBIC | 是 | 所有 DDR5 数据组 |
| Fly-by | 地址、命令、控制、时钟 | 是 | DIMM 模组、板载多颗粒 |
| T型 | 低速或兼容设计 | 否(不推荐) | 仅限 DDR5-4800 以下,2颗粒 |
4.5 我个人的选型建议
每次 layout 启动前,先确定颗粒数量和速率。如果数据颗粒超过 1 个,老老实实用 Fly-by 走地址线,点对点走数据线。别想着省层数去走 T 型,后面仿真出问题你会后悔。我曾经有一个项目,为了省一层走线,在地址线上用了 T 型分支,结果 SI 仿真不过,重新改版多花两周。
另外,记得给 Fly-by 主干上的每个 tap 点附近加地过孔。地回路不连续,你的差分对就发挥不了优势。