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 信号完整性知识体系
下面这张图,是我自己整理的知识框架。每次做高速设计前,我都会对照着过一遍。
1.5 什么时候开始考虑SI?
我建议你在原理图设计阶段就开始规划。别等到Layout完成了再回头改,那代价太大了。
具体来说,以下几个场景必须提前介入:
- 时钟频率超过100MHz,或者上升时间小于1ns。
- 走线长度超过信号波长的1/10。波长 = 光速 / (频率 × √介电常数)。FR4板材下,1GHz信号的波长大约15cm,1.5cm以上就要小心。
- 多层板设计,尤其是存在高速信号跨分割参考平面的情况。
- 连接器、过孔、拐角等阻抗突变点较多时。
我曾经踩过的坑: 有一款产品,DDR3走线在BGA扇出区域用了8mil线宽,到了外层变成了5mil。阻抗从50Ω跳到了65Ω。结果信号反射严重,眼图测试完全不合格。后来不得不加端接电阻,还多花了一版PCB的改板费。
1.6 小结
信号完整性不是什么玄学。它就是一门关于阻抗、时序、耦合的工程学问。你只要记住:
- 上升时间比频率更重要
- 阻抗连续性是第一要务
- 提前规划比事后补救省钱省时间