第2章 高速串行链路中的信号完整性问题:损耗、反射与串扰
咱们做高速数字设计,说白了就是在跟物理定律博弈。你想想看,信号在PCB上跑个几十厘米,到了接收端已经面目全非了。这背后就是损耗、反射、串扰这几个“老对手”在搞鬼。我入行第三年做过一个14Gbps的背板项目,眼图闭得死死的,折腾了两周才发现是过孔残桩引起的反射……从那以后我再也不敢小看这些基础问题了。
2.1 损耗——信号的“体力衰减”
信号在传输线上传播时,幅度会随着距离逐渐降低。这叫插入损耗。主要有两类:
- 导体损耗:铜箔的表面粗糙度、趋肤效应带来的电阻,频率越高越严重。
- 介质损耗:FR4之类的板材在交变电场下极化分子来回摩擦生热,消耗能量。
我习惯用奈奎斯特频率处的损耗值来评估链路预算。比如一条10英寸的走线,在5GHz下损耗可能达到-8dB,接收端信号摆幅只有发射端的三分之一不到。这就是为什么眼图会变小、变模糊。
| 板材 | 损耗(dB/inch) | 适合速率 |
|---|---|---|
| 普通FR4 | ~0.8~1.2 | < 5 Gbps |
| 高TG FR4 | ~0.6~0.8 | 5~10 Gbps |
| MEGTRON 6 | ~0.3~0.4 | 10~28 Gbps |
| PTFE(特氟龙) | ~0.15~0.25 | > 28 Gbps |
2.2 反射——阻抗不连续引发的“回音”
反射的本质是阻抗突变。信号走到一个阻抗不匹配的点,一部分能量被反弹回来,叠加到原始信号上。严重时会产生过冲、下冲、振铃,甚至让接收器的逻辑判断出错。
我记得以前调试一个25Gbps的QSFP接口,发现眼图眼皮上有明显的“鬼影”。用TDR(时域反射计)一测,发现连接器焊盘处的阻抗只有75Ω,而走线是100Ω差分。这就是反射导致的。后来我在焊盘下方挖了参考平面,把阻抗拉回100Ω,眼图立刻清晰了。
反射的严重程度可以用反射系数ρ衡量:
ρ = (Z_load - Z_0) / (Z_load + Z_0)
如果ρ=0.2,意味着20%的能量被反射
2.3 串扰——邻近信号的“窃窃私语”
串扰是相邻信号线之间通过电磁场耦合产生的干扰。可以分成近端串扰(NEXT)和远端串扰(FEXT)。前者回灌到干扰源近端,后者跑到被干扰线远端。
高速设计中,串扰最狡猾——它在时域里和主信号混在一起,很难区分。你看到眼图抖动变大,可能是串扰贡献的。
降低串扰的常用招数:
- 拉开间距——三条原则:走线间距≥3倍线宽;差分对内间距更小,对间间距更大。
- 加地孔防护——在敏感信号两侧打地孔墙,特别是时钟差分线。
- 减小并行长度——别让两条高速线平行太长,超过2英寸就得小心。
- 避免参考层开槽——参考面不完整会严重恶化串扰和阻抗。
2.4 三者如何共同影响眼图
损耗让眼图垂直方向缩小(幅度变小);反射让眼图产生过冲、振铃、甚至回环;串扰则增加抖动和噪声,使眼图“眼皮”变厚。它们经常联手作案:一个通道里,损耗已经让信号很弱了,再来点反射和串扰,眼图就彻底闭合。
举个例子,我做过一个16Gbps的SAS扩展器项目。链路总长24英寸,中间经过两个连接器和四个过孔。仿真时看着眼图Margin还有15%,但打样回来实测闭合了。后来排查:过孔残桩加了反射,线间距3.5W但参考层有个槽导致串扰飙升。最终减掉了两个过孔、改了参考层,才勉强达标。
2.5 信号完整性分析的三个层次
我一般把SI分析分成三个看问题的层次。初学的人容易只盯着某一个点,但实际项目里这三个层次都要兼顾。
| 层次 | 关注点 | 常用工具 | 典型问题 |
|---|---|---|---|
| 通道层 | 走线、过孔、连接器、封装 | S参数提取、TDR | 损耗超标、阻抗不匹配 |
| 电路层 | 均衡器、时钟恢复、接收器 | IBIS-AMI、SPICE仿真 | 均衡能力不足、噪声容限低 |
| 系统层 | 整条链路从TX到RX | 眼图仿真、系统级BER bathtub曲线 | 多通道串扰复合、抖动预算超支 |
2.6 从误码率角度理解严酷性
信号完整性问题的最终判据是误码率(BER)。很多标准要求BER ≤ 1e-12。什么概念?相当于在1Gbps的速率下,平均每1000秒才允许错一个比特。眼图的垂直/水平余量就是用来保证在这么小的概率下不出错的。
损耗、反射、串扰会共同消耗这些余量。我个人习惯在项目中专门留一份“余量预算表”,把每一项的贡献量化填入。比如:
- 通道损耗:吃掉30%的垂直余量
- 反射引起的过冲:再吃掉10%
- 串扰导致的抖动:吃掉20%的时域余量
- 工艺偏差和温度:预留15%
剩下的Margin不足5%?那这个设计肯定过不了生产测试。我在一个28Gbps设计中就吃过这种亏,预算做得太理想,结果量产阶段有1%的板子眼图不合格,最后只能降级到低速率出货。