2. 信号完整性基础:高速信号衰减、ISI、串扰、抖动的原因与影响
做 Retimer 评估,绕不开这四个“拦路虎”——衰减、码间干扰、串扰和抖动。说白了,信号从发送端跑到接收端,路上遇到的麻烦基本就这四种。我习惯把它们叫“四座大山”,设计均衡器就是要么削山、要么绕路。
先给张总图,把这四根骨头的关系理一理:
2.1 高速信号衰减:频率才是真正的主角
信号在传输线上跑,每寸走线都在“吃”信号能量。这还不算完,不同频率吃法不一样——高频分量损耗远大于低频。你想想看,方波信号其实是一堆正弦波叠加出来的,高频分量一掉,边沿就变圆了。
为什么会衰减?三个物理根因:
- 导体损耗(趋肤效应):频率越高,电流越往导体表面挤,有效截面变小,阻抗变大。我见过一个12Gbps的项目,换了一种铜箔粗糙度更低的板材,眼图高度直接多了50mV。
- 介质损耗(Df / 耗散因子):PCB板材的极性分子在电场变化中反复极化,产生能量损耗。FR-4在3GHz时损耗就很离谱,到10GHz以上基本没法用。
- 阻抗不连续:过孔、连接器、走线拐弯处反射一部分能量,等效于能量衰减。有些设计者喜欢画等长绕线蛇形,绕多了自己给自己添乱。
影响:衰减直接压低信号幅度,让眼图高度“缩水”。接收器的判决器需要一定电压余量才能分辨0和1,一旦余量不够,误码率直接起飞。
2.2 ISI:前一位“欠的债”后一位还
码间干扰(Inter-Symbol Interference)说白了就是:信号有记忆效应。前面发的bit没走完,后面新的bit又跟上来了,两者叠加在一起。
物理本质很简单——信道带宽有限。带宽不够的通道就像个“慢反应系统”,上升沿和下降沿吊着尾巴拖很久。特别是连续相同bit之后突然变电平的那个跳变,阈值过冲会特别大。
- 长尾效应:比如连续发送5个“1”,然后一个“0”。前几个“1”把传输线电容充满了,突然要放电到“0”,这个边缘就慢得让人着急。
- 符号间干涉:信道响应的时间拖尾会混进后面符号的采样点。
我在做16Gbps SAS测试时遇到过一例:眼图看上去还不错,但误码率就是达不到1e-12。后来用示波器触发码型看了特定pattern(比如经典的K28.5),发现那个“101”的第三个bit眼图高度只有其他bit的一半。这典型就是ISI没处理好。
2.3 串扰:来自邻居的“不速之信号”
串扰就是一条线上跑的信号,通过互感或互容跑到旁边线上去了。频率越高、边沿越陡、平行走线越长,耦合越强。
两种基本模式:
- 近端串扰(NEXT):干扰信号在发射端沿着入侵线反射回被测线的发射端。
- 远端串扰(FEXT):干扰信号沿着入侵线与被测线同向传输,在远端叠加。
| 特性 | NEXT | FEXT |
|---|---|---|
| 耦合方向 | 反向 | 同向 |
| 受影响端 | 近端(驱动侧) | 远端(接收侧) |
| 时间对齐 | 与发射信号同时 | 略有延迟 |
| 主要抑制方式 | 屏蔽、增大间距 | 差分对间距、低Dk材料 |
记得有一次回板测,一个8 Lane的PCIe Gen3链路有一半的lane眼图非常差。排查了两天才发现是两块PCB之间的柔性连接器把差分对间距压缩到只有0.2mm,串扰跑到-15dB。把间距拉开到0.4mm以后,问题直接消失。嗯,有时候事情就这么简单。
影响:串扰在接收端叠加噪声,使眼图垂直方向变“糊”,等效于增大了抖动。如果串扰主要来自相邻lane,且两者跳变方向相反,会产生可观的确定性抖动(DJ)。
2.4 抖动:信号在时间域的“摇摆舞”
抖动就是信号边沿偏离理想时刻的位置。有两种基本分类:随机抖动(RJ)和确定性抖动(DJ)。
- RJ:来自于元器件热噪声、1/f噪声等,统计上呈高斯分布。因为它无处不在,消除不掉,只能靠总抖动预算硬扛。
- DJ:有明确来源,又分几种:数据相关抖动(DDJ,其实就是ISI)、周期抖动(PJ,来自电源噪声或时钟调制)、串扰相关抖动(来自相邻信号耦合)。
抖动的根本成因?我想可以归结为三条线:
- 电源噪声:影响驱动器和接收器的PLL、VCO,产生相位调制。
- 信道失真:ISI和串扰导致边沿位置变化。
- 参考时钟源:晶振相位噪声、锁相环带宽不合适。
关键指标:总抖动(TJ) = DJ + n × RJ(n取决于要求的误码率,通常是14.069对于1e-12 BER)。眼图水平方向开口宽度 = UI - TJ。当TJ超过1个UI时,信号就收不到了。
我在项目中喜欢用双狄拉克模型分解抖动。先把眼图上的时间长直方图采集出来,用数学把RJ的sigma和DJ的双峰值减出来。你想想看,如果DJ远大于RJ,说明问题大概率在信道或者电源上;反过来RJ超大,就得查源端噪声了。
// 示例:抖动分解逻辑(伪代码)
struct JitterBreakdown {
double sigma_RJ; // 随机抖动标准差 (ps)
double DJ_dual; // 确定性抖动双峰峰值 (ps)
double TJ_BER; // 在目标BER下的总抖动
};
// 已知UI = 100ps, 目标BER=1e-12
TJ_BER = DJ_dual + 14.069 * sigma_RJ;
if (TJ_BER > 100) => 不能再使用该链路
2.5 这四根骨头怎么一起啃?
实际上,衰减、ISI、串扰、抖动不是孤立存在的。衰减让信号幅度变低,ISI靠着长尾巴把后面搞乱,串扰加噪声,抖动再在时域上踩一脚。它们最终汇成一个结果——接收端眼图闭合。
做Retimer均衡评估时,我们要会“区分病因”。比如:
- 眼图高度偏低但水平开口尚可 → 大概率是衰减为主
- 眼图高度还行但水平开口窄且有两簇分叉 → ISI占主导
- 眼图“毛边”多且有浅色鬼影 → 串扰嫌疑大
- 眼图轮廓模糊、边界不清 → 抖动量过大
我习惯把这四个分量分别注入测试模型里,观察Retimer均衡器对不同来源的抑制能力。CTLE擅长对付衰减和部分ISI,DFE专啃ISI尾巴,CDR负责抖动跟踪。至于串扰,更多要靠Layout和屏蔽层来解决——均衡器很难完全抵消不相关的耦合噪声。