3. 信号完整性基础:反射、串扰、地弹、时序余量

信号完整性,简称 SI。说白了,就是保证信号从芯片 A 的管脚出发,到达芯片 B 的管脚时,波形没变形、电平没跳错、时序没跑偏。

我刚开始做硬件那几年,总觉得 SI 是射频工程师才该操心的。直到有一次,一块 8 层板的 DDR 项目,跑 200MHz 就随机死机。示波器一抓,波形上全是毛刺和台阶。嗯,从那以后,我再也不敢小看 SI 了。

这一章,我们就把 SI 里最容易导致故障的四个家伙拎出来:反射、串扰、地弹、时序余量。搞懂它们,你的故障定位能力能上一个台阶。

3.1 反射:信号在走线上“撞墙”

反射是怎么来的?

信号在传输线上跑,遇到阻抗突变,一部分能量就弹回来。弹回来的波和原来的波叠加,波形就变形了。

核心公式(记住这个):

反射系数 Γ = (Zload - Z0) / (Zload + Z0)

Z0 是传输线特征阻抗,Zload 是负载阻抗。Γ 越接近 0,反射越小。

我在项目中遇到过一块板子,时钟信号上叠加了明显的台阶。查了半天,发现是走线从表层换到内层时,过孔的阻抗没控制好,从 50Ω 跳到了 85Ω。反射系数算下来 0.26,信号质量能好才怪。

反射导致的典型故障:

  • 过冲/下冲:信号超过接收端耐压,烧坏 IO 或触发 ESD 保护。
  • 振铃:信号在高低电平之间来回震荡,导致逻辑误判。
  • 台阶/回勾:上升沿出现平台,建立时间不够,采样出错。

我的排查习惯:

遇到反射问题,先看 TDR(时域反射计)曲线。没有 TDR 就用示波器看波形台阶的位置,反推阻抗突变点在哪。我曾经靠这个办法,在一条 15cm 的走线上找到了一个间距过小的过孔。

3.2 串扰:隔壁走线的“悄悄话”

串扰,就是一条走线上的信号,通过电磁场耦合到旁边的走线上。

你想想看,高速信号在走线上跑,周围会产生变化的电场和磁场。旁边的走线就像一根天线,把这些能量捡了过来。

串扰分两种:

  • 容性串扰:通过寄生电容耦合,产生同向噪声。
  • 感性串扰:通过互感耦合,产生反向噪声。

实际板子上,两种同时存在。远端串扰(FEXT)和近端串扰(NEXT)的幅度,取决于走线间距、耦合长度、介质高度。

我记得有一次调试一块视频采集卡,ADC 的数据线总是偶尔跳码。示波器触发一看,数据线跳变的时候,旁边的时钟线上会窜过来一个毛刺。这就是典型的串扰——数据线和时钟线平行走了 3cm,间距只有 5mil。

避坑指南:

我曾经以为只要走线不平行就没事。结果发现,在 BGA 扇出区域,走线在过孔层换层时,如果参考平面不连续,回流路径绕远,串扰反而更大。所以,3W 原则(间距是线宽的 3 倍)只是起点,不是终点。

3.3 地弹:参考平面的“晃动”

地弹,全称是“地电位反弹”。

当多个 IO 同时翻转时,瞬间电流很大。这个电流流过电源和地平面的寄生电感,就会在芯片内部的地和板级地之间产生一个电压差。

公式很简单:Vnoise = L * di/dt

L 是寄生电感,di/dt 是电流变化率。IO 越多、速度越快、封装电感越大,地弹就越严重。

地弹导致的故障很隐蔽:

  • 同一个芯片的多个输出,同时从 0 变 1 时,其他本该保持 0 的输出被“弹”高了。
  • 接收端看到的地电平在跳,导致输入信号误判。
  • 严重时,芯片内部逻辑状态翻转,直接死机。

我处理过一个 FPGA 项目,32 位总线同时翻转时,板子就复位。查了电源纹波、时钟抖动都没问题。最后用近场探头扫芯片封装,发现地弹噪声幅度达到了 800mV。解决办法是增加去耦电容、优化电源平面、分时翻转。

我的判断方法:

用示波器探头接芯片的 GND 管脚和板级地,测到的噪声就是地弹。如果幅度超过 300mV,就要小心了。

3.4 时序余量:快一点慢一点都是问题

时序余量,就是信号实际到达时间和要求到达时间之间的富余量。

数字电路里,每个寄存器都有建立时间(tsu)和保持时间(th)要求。数据必须在时钟沿之前稳定,之后也要保持稳定。

时序故障分两类:

故障类型 原因 表现
建立时间违例 数据路径太长,时钟偏斜太大 频率升高时出错,降频正常
保持时间违例 数据路径太短,时钟偏斜反向 频率变化都可能出错,更隐蔽

建立时间违例,说白了就是数据跑得太慢。保持时间违例,是数据跑得太快,把上一拍的数据冲掉了。

我遇到过最头疼的一个案例:一块板子在常温下跑 1GHz 完全正常,温度降到 -20°C 就开始报错。查到最后,是 PCB 走线的温度系数导致时钟偏斜变了,保持时间余量变成了负值。

时序余量的工程经验:

我个人习惯,设计时至少留 20% 的时序余量。对于跨时钟域的信号,一定要做同步处理。不要相信仿真给出的“完美”结果——PCB 制造公差、温度变化、老化效应,都会吃掉你的余量。

3.5 知识体系:四者的关系

反射、串扰、地弹、时序余量,不是孤立存在的。它们经常互相影响:

  • 反射导致波形畸变,会吃掉时序余量。
  • 串扰引入的噪声,可能让接收端误判电平,等效于时序违例。
  • 地弹同时影响多个信号,造成批量性的时序问题。

下面这张图,是我自己总结的 SI 故障定位框架,分享给你:

信号完整性故障定位框架 信号完整性故障定位框架 信号完整性故障 反射 串扰 地弹 时序余量 过冲 / 振铃 / 台阶 毛刺 / 误码 / 跳码 地电平抖动 / 复位 建立/保持时间违例 相互影响关系 反射 → 波形畸变 → 吃掉时序余量 串扰 → 噪声 → 等效时序违例 排查方法:TDR → 近场探头 → 示波器 → 时序分析 先看波形,再测噪声,最后算时序

3.6 小结

这一章我们聊了四个核心概念:

  • 反射:阻抗不连续导致波形变形,用 TDR 和阻抗控制解决。
  • 串扰:相邻走线电磁耦合,靠间距和屏蔽来抑制。
  • 地弹:寄生电感导致地电位波动,靠去耦和平面设计缓解。
  • 时序余量:信号到达时间的富余量,是前面三个问题的最终体现。

记住一句话:信号完整性的本质,就是控制阻抗、管理噪声、留足余量。 下次遇到板子跑不稳,别急着换芯片,先拿示波器看看波形——很多时候,问题就出在这些基础问题上。