什么是ISI(码间干扰)
ISI,全称 Inter-Symbol Interference,就是码间干扰。说白了,前面那个符号没走干净,后面这个符号就来了,结果两个符号搅在一起,分不清谁是谁。你想想看,这就像在通话里,前一句话的回音还没消失,后一句话又叠上去了,谁也听不清。
我在做高速串行链路调试时,经常遇到这种情况:眼图睁开得很漂亮,但一把PRBS跑起来,眼高就开始掉,眼宽也开始缩。实际上,这就是ISI在捣鬼。它不像随机抖动那么“随机”,而是跟数据模式强相关——这个特性,恰恰是我们后续用S参数去分解它的钥匙。
ISI的物理成因
为什么会发生ISI?根本原因是信道对信号做的“整形”不均匀。一个理想的信道,应该对所有频率成分一视同仁,但现实中的PCB走线、连接器、电缆都有自己的一套脾气。归结起来,至少有三类诱因:
- 带宽限制:高频成分被衰减,上升/下降时间变缓,符号能量向两边扩散。我记得在12Gbps链路里遇到过,一根30cm的微带线就把3dB带宽压到了6GHz,眼图彻底闭合。
- 反射与阻抗不连续:信号经过过孔、接插件时部分能量反弹回来,叠加到后续符号上。我曾经见过一个案例,仅仅是因为BGA焊球和过孔之间多了一段stub,就产生了10%的ISI。
- 介质损耗与色散:高频分量不仅衰减更快,传播速度也会变慢,造成高频脉冲“拖尾巴”。这种损耗非线性的情况,在56Gbps PAM4上尤其头疼。
| 诱因 | 时域表现 | 频域表现 |
|---|---|---|
| 带宽限制 | 上升沿变缓,拖尾变长 | -3dB带宽不足,高频滚降 |
| 反射/阻抗不连续 | 振铃、过冲,延时衰减 | S11/S22 尖刺,谐振峰 |
| 介质损耗/色散 | 非对称拖尾 | 插损随频率非线性增长 |
时域表现——脉冲响应就是“罪证”
我个人习惯,拿到一个信道的第一件事就是看它的脉冲响应。如果响应在单位间隔之外还有不可忽略的分量,那ISI就板上钉钉了。
假设我们发一个00100的序列,理想信道会在中间那个“1”的位置形成一个干净的脉冲。但实际信道会让脉冲左右两边都出现小尾巴(前冲和后拖),这些尾巴正好落在前后符号的采样点上,造成干扰。更麻烦的是,多个符号的尾巴会叠加,而且叠加的方式与前后数据模式直接相关——这就是数据相关抖动(DDJ)的根源。
关键认识:ISI导致的抖动是确定性的,不是随机的。它的统计分布是一个双峰或多峰形状,与PRBS模式中的跳变次数一一对应。后面我们做S参数分解时,正是利用了这种模式依赖性。
对抖动的影响
你或许想问:ISI引起的抖动到底有多大?嗯,这个要看信道的冲击响应持续几个UI。如果拖尾只影响到相邻一个符号,那抖动的峰值大约是拖尾幅度的两倍。如果拖尾跨过若干个UI,抖动就会迅速增大。我在25Gbps的背板项目中看到过,仅仅因为过孔残桩造成3个UI的拖尾,就把总抖动增加了30%。
另外,ISI与S参数之间有直接的数学联系。信道的S参数(尤其是S21)通过逆傅里叶变换可得脉冲响应,而脉冲响应中的非主峰能量就是ISI的量化依据。后面你会看到,我们甚至可以用S参数直接计算出ISI抖动的频谱成分。
避坑指南:我曾经在仿真里只用了理想通道模型,结果TB(Trial Board)眼图开放,但量产时良率暴降。原因就是仿真没考虑封装和过孔的反射ISI。所以,请务必用实测S参数或含寄生参数的3D模型去评估ISI,别偷懒。
如何量化ISI——眼图与浴盆曲线
量化的实用方法有两类:
- 眼图法:观察眼图水平方向上的“叠加厚度”。如果眼图上每个跳变边界的汇聚点不止一个,而是出现多重轨迹,那就是ISI的信号。可以通过测量眼宽、眼高来估算。
- 浴盆曲线法:用BERT扫出误码率与采样延时关系,再提取出确定性的“肩膀”宽度。这个宽度里包含了ISI贡献的部分。
实际工程中,我们更常用一种叫做“双Dirac模型”的工程近似方法,把总抖动分成随机抖动和确定性抖动两部分。但请注意:双Dirac模型要求确定性抖动服从类似Dirac脉冲的分布,而ISI引起的抖动往往是多峰的,直接套用会低估抖动。我自己一般会先用S参数做脉冲响应分解,拿到ISI抖动的精确幅度,再去做总抖动预算。
重要提醒:不要混淆ISI导致的DDJ和串扰引起的干扰。串扰是通过互容互感耦合进来的,与主通道数据模式没有强相关,而ISI是主通道自身的记忆效应。两者的分解方法也很不一样,后面章节会专门对比。