2. 信号完整性基础:SI问题概述、反射、串扰、衰减
做DDR仿真这些年,我见过太多“调了半天眼图还是闭合”的案例。说来说去,根子都出在几个基础SI问题上。你别看SI听起来高大上,其实说白了就是信号从发送端到接收端,一路上的“意外”到底有多少。
你想想看,DDR信号跑在几百兆甚至上千兆赫兹。这时候,走线就不再是一根单纯的导线了。它变成了传输线,会表现出各种“脾气”。如果不摸透反射、串扰、衰减这几个家伙,眼图质量基本没戏。
2.1 反射:信号在半路上撞了墙
反射是怎么回事?说白了,就是信号到了半路,遇到阻抗变化点,一部分能量被弹了回来。 弹回来的能量和原来的信号叠加,波形就畸变了。
为什么会反射?阻抗不连续。比如走线过孔、连接器、分支(stub),或者走线宽度突然变了。频率越高,波长越短,这些“不连续点”对信号的影响就越明显。
我记得有个项目,DDR3的地址信号眼图怎么调都闭合。翻来覆去查,最后发现是一个T型分支的stub太长。信号在分支口反射了好几轮,直接把时序给打乱了。
反射的关键公式
反射的严重程度用反射系数(Γ)来衡量:
Γ = (Z_load - Z0) / (Z_load + Z0)
Z0是走线的特征阻抗,Z_load是负载阻抗。Γ的值在-1到1之间。0表示完美匹配,没有反射。1表示全反射(开路),-1表示反相全反射(短路)。
| 负载情况 | 反射系数 Γ | 结果 |
|---|---|---|
| 匹配(Z_load = Z0) | 0 | 无反射,完美 |
| 开路(Z_load = ∞) | 1 | 全反射,正峰加倍 |
| 短路(Z_load = 0) | -1 | 全反射,负峰加倍 |
| 容性或感性 | 复数 | 振铃,过冲 |
2.2 串扰:邻线之间在“互撩”
串扰,就是一根线上的信号,通过电磁场耦合到了旁边的走线上。DDR走线密集,串扰几乎是必然的,只是程度多少的问题。
串扰分两种:
- 容性耦合:通过分布电容,高频信号直接“跨”过去。主要影响近端串扰(NEXT)。
- 感性耦合:通过互感,电流变化产生感应电压。主要影响远端串扰(FEXT)。
印象很深的是,有个DDR4项目,数据线跑到2400MT/s,发现一组DQ眼图质量特别差。查了半天,最后定位是邻线串扰。两条数据线间距只有3W,靠得太近,远端串扰直接把噪声灌进来了。
串扰的核心影响
- 增加噪声容限压力:串扰噪声可能让“0”变成“1”,或者反之。
- 恶化眼图高度:噪声叠加在信号上,眼高变小。
- 增加抖动的概率:串扰会导致边沿位置偏移,产生抖动。
2.3 衰减:信号越走越弱
那么衰减又是什么呢?信号从驱动端到接收端,在走线上传输,能量会逐渐损耗。 频率越高,损耗越大。
衰减主要由两个物理效应引起:
- 趋肤效应:高频电流倾向于集中在导线表面流动,等效电阻变大。频率越高,损耗越大。
- 介质损耗:PCB绝缘材料(FR-4、Megtron等)在高频下会有介电损耗。损耗角正切(Df)越大,信号衰减越厉害。
我在项目里遇到过一根走线长度超过15英寸(约38cm),DDR4跑2666MT/s,眼图已经快闭合了。后来不得不用CTLE(连续时间线性均衡)和DFE(判决反馈均衡)来补偿衰减。
衰减的量化指标
衰减量 (dB) ≈ α × L
其中 α 是单位长度的衰减系数 (dB/inch 或 dB/cm)
通常在仿真软件中,可以直接看S参数(S21)来评估通道的衰减情况。S21的值越小(负得越多),衰减越大。
走线损耗对比表(@ DDR4 2400MT/s 典型值)
| PCB材料 | 趋肤损耗 (dB/inch) | 介质损耗 (dB/inch) | 总损耗 |
|---|---|---|---|
| FR-4 (普通) | 0.03 | 0.06 | ≈ 0.09 dB/inch |
| Megtron 4 | 0.03 | 0.02 | ≈ 0.05 dB/inch |
| Megtron 6 | 0.03 | 0.01 | ≈ 0.04 dB/inch |
反射、串扰、衰减——这三个问题几乎是DDR仿真的全部敌人。搞明白了它们,做眼图质量评估就有了方向。你会发现在仿真报告里,眼图闭合、眼高不足、抖动过大,根源基本都能对应到这三个家伙中的某一个。
别急,把这些基础理清楚后,我们才能接着聊怎么做仿真、怎么看眼图。嗯,先消化这些吧。