一、信号完整性基本概念
1.1 什么是信号完整性?
信号完整性,简称为 SI(Signal Integrity)。用大白话说——
就是信号从驱动器出发,经过走线、过孔、连接器,到达接收器时,还能保持波形质量,不丢数据。我经常跟团队里的新人讲:SI 就是数字世界里的“传话游戏”。源头说的是一句“1”,到了终点解码出来还是“1”,中间没失真、没丢包、没多一跳。
实际项目中,我见过一个很简单的 8 位并行总线,就因为一条走线长了不到 0.5 英寸,接收端把“01010101”读成了“01000101”。查了两天才找到根因——反射。嗯,从那时起我就明白:SI 不是玄学,是算得清、测得出的物理规律。
信号完整性的核心关注点:
- 时序——信号到达的时间窗口是否满足建立/保持时间
- 幅度——眼图张开高度是否足够,逻辑电平能否正确判决
- 形状——过冲、下冲、振铃、毛刺是否在可接受范围内
- 完整性——噪声、串扰、电源纹波不破坏信号逻辑
1.2 一段不长的历史,但教训很深
上世纪 80 年代,PCB 设计很单纯。信号频率几十兆赫兹,工程师画板子只看连通性,没人提 SI。那时候一根线长几英寸,信号走完全程依然方方正正。
转折点在 90 年代初。我记得很清楚,Intel 推出 Pentium 处理器,时钟爬升到 66 MHz。突然之间,大家发现“连对了也跑不动”。反射、串扰、地弹这些词开始出现在项目复盘报告里。业界把这种现象叫“信号完整性危机”。
从那以后,PCB 设计从“连通设计”进入了“信号完整性设计”时代。2000 年后,高速串行总线(PCIe、SATA、USB)普及,SI 从“能工作”变成了“要精确控制阻抗、等长、回流路径”。
现在呢?DDR5 速率到 6400 Mbps,PCIe 6.0 到 64 GT/s。每条走线都在跟皮秒级的时间窗口赛跑。你再不重视 SI,板子调出来可能连协议握手都过不了。
| 时期 | 典型信号速率 | SI 问题表现 | 应对手段 |
|---|---|---|---|
| 1980s | ~10 MHz | 基本无 SI 问题 | 连通性检查 |
| 1990s | 33~133 MHz | 反射、振铃、地弹 | 端接、走线拓扑优化 |
| 2000s | 1~6 Gbps | 串扰、阻抗失配 | 阻抗控制、差分对、等长 |
| 2010s~今 | 10~64 Gbps | 损耗、ISI、抖动、码间干扰 | 预加重、均衡、去加重、PCB 板材升级 |
1.3 现代高速设计,到底在挑战什么?
说白了就是——信号越来越快,板子越来越小,成本压力还越来越大。我总结出三条绕不过去的大坎:
- 边沿速率越来越陡:时钟频率高了,上升时间缩到几十皮秒。你以为走线很短,但在 50 ps 的边沿面前,3 英寸的走线就是一根传输线。反射、振铃、过冲全来了。你想想看,几十皮秒的过冲能直接把接收器的 ESD 结构打穿,这不是玩笑。
- 损耗成为主角:铜线的趋肤效应、介质材料的介电损耗,在 10 Gbps 以上会显著衰减信号高频分量。我以前遇到一个 PCIe 3.0 项目,走线长了 12 英寸,眼图完全闭合。后来换了低损耗板材(比如 Megtron 6),板材成本涨了三倍,但眼图终于打开了。所以现在高速设计,选板材跟选芯片一样重要。
- 串扰和电源噪声都在恶化:板子密度高,走线间距被压缩。DDR5 的 VDDQ 电压只有 1.1 V,噪声裕量小得可怜。我曾经测过一个样机,DDR 读操作时电源纹波峰值达到 120 mV,直接导致数据抓包错误,调试了三天才发现是去耦电容布局不对。
避坑指南|我曾经踩过的坑
我曾经做过一块 FPGA 加 4 片 DDR3 的板子。布局时想着对称好走线,就把所有 DDR 颗粒排成一条线。结果中间的两片颗粒数据总是抓错。后来用 TDR 一测,发现中间走线的阻抗比两边低了 8 Ω——因为穿过了过孔区域,回流路径被切断了。从那以后,我做 DDR 布局一定先模拟阻抗连续性,绝不凭感觉排颗粒。
这些挑战归纳起来,可以用一张图看清楚。
个人小建议
初学者总喜欢先学什么仿真工具、什么协议标准。我的感觉是——先把 SI 基本物理原理吃透:传输线、反射公式、串扰耦合机制。这些原理搞懂了,工具只是手熟的问题。否则你一遇到问题,根本不知道是反射、损耗还是串扰,调起来像无头苍蝇。