4. 眼图基本原理:从波形到“眼睛”的修行
各位好,我们继续。今天聊眼图——这玩意儿在SerDes领域,就跟医生的听诊器一样基础且重要。你不把眼图看透,面试官随便一问就能问住你。
眼图说白了,就是把一串数字信号的比特,通过示波器重叠显示出来。
你想想看,示波器触发一次,扫描一段波形;再触发,再扫。把这些波形叠在一起,结果就是中间出现了一个像眼睛一样的形状。
这就是眼图的由来。
4.1 眼图形成机制
先聊聊眼图是怎么形成的。
我记得刚入行时,第一天上手测眼图,导师扔给我一句话:“把长伪随机码丢进信道,在示波器上选persistence无限余晖,看着就行。”
我当时一脸懵。但后来理解了,核心就三个字——叠加。
- 信号源发送PAM-2或PAM-4的非归零码,常用PRBS7或PRBS31。
- 示波器在时钟触发下,把每一位的波形从左到右画出。
- 位与位之间的转换、幅度的波动、抖动——统统叠在一个窗口里。
当足够多的比特叠加后,你不会看到一堆乱线,而是看到一个稳定的“眼”。
4.2 眼高(Eye Height)
眼高,就是眼睛睁开的垂直开口。
单位通常用mV。你看到的“眼”上下两边之间的距离,就是眼高。
这个参数直接反映信号的信噪比余量。眼高低了,意味着噪声把幅度吃掉了一大块。
| 眼高标准 | 典型LVDS | 典型高速SerDes |
|---|---|---|
| 最低接收灵敏度 | 约100 mV | 约30~50 mV |
| 典型全摆幅 | 350 mV | 800~1200 mV |
| 容差范围 | ±15% | ±10% |
我在项目中遇到过一个问题:眼高看着还有200 mV,但接收机就是锁不住。后来发现是眼高带了很多“毛刺”,实际有效眼高被均衡器削了。嗯,这里要注意,眼高得看最窄处的垂直开口,而不是中间最宽处。
我建议从三方面下手——
1. 增加发射摆幅。
2. 优化均衡器(CTLE+DFE)。
3. 改善阻抗匹配减少反射。
4.3 眼宽(Eye Width)
眼宽,是眼睛水平方向的开口。
单位是皮秒(ps)或UI(Unit Interval)。一个UI就是一位的宽度。比如28Gbps下,1 UI ≈ 35.7 ps。
眼宽为什么会收缩?说白了就是抖动惹的祸。
信号在时间轴上不稳定,眼的中部就会变窄。理论上完美的眼宽应接近1 UI,但现实中能达到0.5 UI就算不错了。
4.4 抖动(Jitter)
抖动,是信号边沿偏离理想位置的偏移量。它直接把眼宽吃掉。
按成因分,业界通常分为:
- 确定性抖动(DJ):由串扰、EMI、阻抗不连续、码间干扰(ISI)等引起。有固定模式可循。
- 随机抖动(RJ):由热噪声、散粒噪声等产生。符合高斯分布,峰峰值随时间增长。
- 周期性抖动(PJ):电源纹波、时钟耦合导致。有固定的频率分量。
面试官常问:如何分离总抖动?
我习惯用双狄拉克法——把总抖动的直方图分解为DJ的“双峰”和RJ的“高斯尾巴”。当然,实际调试时我更依赖频谱分析仪来找抖动的根因。
// 抖动的数学简化表达(非标准公式):
Tj = Dj + 2 * Q * Rj
其中:
Tj = Total Jitter (总抖动)
Dj = Deterministic Jitter (确定性抖动)
Rj = Random Jitter 的 RMS 值
Q = 目标 BER 对应的分位数(BER=1e-12 时,Q≈7.0)
4.5 品质因数
品质因数,有时也叫眼图信噪比。它不是一个固定参数,而是用来衡量眼图质量的综合指标。
常见的有两种:
- Eye SNR = (眼高 / 2) / 眼交叉点的噪声RMS。
- Q因子 = (μ₁ - μ₀) / (σ₁ + σ₀),其中μ是“1”或“0”电平的平均值,σ是噪声标准差。
Q因子直接和误码率(BER)挂钩。理论上,Q = 7 时对应 BER ≈ 1e-12。
我自己的经验是,在65nm以下工艺中,Q因子做到6以上才算可靠。低于5的话,量产大概率要翻车。
| Q因子 | 对应BER | 工程师评价 |
|---|---|---|
| 3.0 | 1e-3 | 差,几乎不能工作 |
| 5.0 | 2.9e-7 | 勉强可用,需FEC |
| 7.0 | 1.3e-12 | 理想,直接使用 |
| 9.0 | 1.0e-19 | 奢侈,大部分系统不需要 |
眼高 → 决定幅度裕量
眼宽 → 决定时序裕量
抖动 → 决定眼宽收缩度
品质因数 → 拍板:这眼图行不行
我个人的经验口诀是:先看眼开着没,再看眼多胖,再看眼边抖不抖,最后算Q因子。顺序对了,问题定位就快。