1、信号完整性基础:什么是信号完整性?为什么高速信号需要特殊处理?高速信号的定义与挑战。

各位工程师朋友,咱们开始这门课之前,先聊聊最基础的问题——信号完整性到底是什么?

说白了,信号完整性(SI)就是保证信号从驱动端发出,经过传输路径,到达接收端时,还能保持它该有的样子。不畸变、不丢数据、不产生误判。

我刚开始做硬件那会儿,觉得只要原理图连对了,PCB走通就完事了。结果有一次调试一块板子,时钟信号在示波器上看着像正弦波,可芯片就是不工作。查了两天才发现,是走线太长,反射把信号边沿搞得一塌糊涂。嗯,从那以后,我再也不敢小看SI了。

信号完整性的核心目标: 保证信号在传输过程中的 时序正确、幅度达标、波形完整。

1.1 为什么低速信号不用太操心?

你想想看,几十KHz的I2C信号,上升沿可能有几百纳秒。走线长一点、短一点,反射回来的能量早就衰减没了,根本影响不到逻辑电平的判断。

但到了高速信号,情况就完全不一样了。

我个人的习惯是:当信号的上升时间小于走线延迟的6倍时,就必须开始认真考虑SI问题。这个经验值来自我踩过的坑——有一次DDR3的地址线没做等长,结果系统跑在800MHz时频繁死机,降频到667MHz就稳定了。后来一算,就是走线延迟差太大,时序裕量不够。

1.2 高速信号的定义——别只看频率

很多人以为“高速”就是频率高。其实不准确。

真正决定信号是否需要特殊处理的,是信号的上升时间(Tr),而不是时钟频率。一个上升沿只有100ps的信号,哪怕重复频率只有1MHz,它也是高速信号。

为什么?因为上升沿越陡,包含的高频分量越多。这些高频分量在传输过程中更容易产生反射、串扰和辐射。

判断依据 低速信号 高速信号
上升时间 vs 走线延迟 Tr > 6 × Td Tr ≤ 6 × Td
走线长度 vs 信号波长 L < λ/10 L ≥ λ/10
典型例子 I2C (100kHz), UART DDR4, PCIe Gen4, USB 3.0

我的经验法则: 只要信号的上升时间小于1ns,你就得把它当高速信号来设计。别管它跑多慢的时钟。

1.3 高速信号面临的三大挑战

高速信号在PCB上跑,就像一辆赛车在颠簸的山路上飞驰。路况稍微不好,就可能翻车。我总结下来,主要挑战有三个:

  • 反射(Reflection):阻抗不连续的地方,信号会反弹回来。轻则振铃,重则误判逻辑电平。
  • 串扰(Crosstalk):相邻走线之间的电磁耦合。一条线上跳变,隔壁线上跟着抖。我在一个10层板项目里遇到过,两根间距3mil的差分对,串扰大到眼图闭合。
  • 时序偏差(Timing Skew):信号到达时间不一致。尤其是并行总线,数据线和时钟线如果不等长,建立时间/保持时间很容易出问题。

我曾经调试过一个HDMI接口,画面偶尔出现雪花点。查了半天,发现是TMDS时钟对的等长误差超过了50mil。重新调整走线后,问题消失。你看,有时候就是几毫米的差距。

1.4 信号完整性知识体系

下面这张图,是我自己整理的知识框架。每次做高速设计前,我都会对照着过一遍。

信号完整性知识体系 信号完整性 (SI) 反射 串扰 时序偏差 阻抗匹配 端接策略 间距与耦合 等长走线 设计建议 • 控制走线阻抗:单端50Ω,差分100Ω • 保持3W原则:走线间距 ≥ 3倍线宽 • 并行总线等长误差控制在 ±50mil 以内

1.5 什么时候开始考虑SI?

我建议你在原理图设计阶段就开始规划。别等到Layout完成了再回头改,那代价太大了。

具体来说,以下几个场景必须提前介入:

  1. 时钟频率超过100MHz,或者上升时间小于1ns。
  2. 走线长度超过信号波长的1/10。波长 = 光速 / (频率 × √介电常数)。FR4板材下,1GHz信号的波长大约15cm,1.5cm以上就要小心。
  3. 多层板设计,尤其是存在高速信号跨分割参考平面的情况。
  4. 连接器、过孔、拐角等阻抗突变点较多时。

我曾经踩过的坑: 有一款产品,DDR3走线在BGA扇出区域用了8mil线宽,到了外层变成了5mil。阻抗从50Ω跳到了65Ω。结果信号反射严重,眼图测试完全不合格。后来不得不加端接电阻,还多花了一版PCB的改板费。

1.6 小结

信号完整性不是什么玄学。它就是一门关于阻抗、时序、耦合的工程学问。你只要记住:

  • 上升时间比频率更重要
  • 阻抗连续性是第一要务
  • 提前规划比事后补救省钱省时间