眼图基础:形成原理与关键指标
做高速数字设计的人,每天跟眼图打交道。但你真的吃透了它吗?
说实话,我刚入行那会儿,总觉得眼图就是个示波器里显示的“眼睛”,漂亮就完事了。后来被串扰问题坑过几次才明白——眼图里面藏着的全是信号质量的密码。这一章,我就带你仔细拆解一下。
眼图是怎么形成的?
原理其实不复杂。你把一串随机比特流在示波器上不断叠加,每个比特的波形会重叠在一起。持续几万个周期后,这些波形就形成了“眼睛”的形状。
关键点:示波器的时间基准要和数据速率同步。一般是让示波器以数据速率的整数分之一作为触发时钟,然后把所有波形累加显示。
眼图形成的两个必要条件
- 数据必须足够随机(PRBS 码型最常用)
- 示波器触发必须锁定在时钟上
我个人习惯用 PRBS7 或 PRBS15 来做眼图测试。 PRBS7 伪随机序列长度 127,对付 1-2Gbps 的信号够了。如果速率更高,我会换 PRBS31,伪随机序列更长,更能暴露低频段的串扰问题。
一个小技巧:实测时记得先让示波器跑几万个比特再触发叠加,否则眼图会“睁不开”。我刚开始调试时犯过这错,折腾了半小时才发现是触发时机没调好。
眼图的三个核心指标
你拿到一张眼图,第一眼看什么?我通常看三个方面:眼高、眼宽、抖动。这仨指标几乎决定了信号的可靠性能到什么程度。
眼高(Eye Height)
眼高就是眼睛垂直方向开口的大小,单位是 mV 或 V。它代表接收端能分辨“1”和“0”的电压裕量。
为什么重要?假如眼高只有 50mV,接收端的判决器稍微有点噪声偏移,就会误判。我曾经遇到过一块板子,眼高从 300mV 掉到 80mV,排查到最后是相邻信号线之间的串扰把电压裕量吃掉了。
实际经验:对于 3.3V 的 LVCMOS 信号,眼高低于 200mV 基本就危险了。对于差分信号(比如 LVDS、CML),眼高通常差模在 300mV-400mV 算健康,低于 200mV 就要警惕。
| 信号类型 | 典型单端摆幅 | 建议最小眼高 | 预警阈值 |
|---|---|---|---|
| LVCMOS 3.3V | 3.3V | 500mV | 200mV |
| LVCMOS 1.8V | 1.8V | 300mV | 120mV |
| LVDS 差分 | 350mV(差模) | 250mV | 150mV |
| CML 差分 | 400mV(差模) | 300mV | 180mV |
眼宽(Eye Width)
眼宽是眼睛水平方向开口的大小,单位是 ps 或 ns。它表示数据有效采样窗口的时间宽度。
说白了,眼宽告诉你接收时钟能在哪个时间点采样而不出错。眼宽越小,对时钟相位的要求越苛刻。抖动、码间干扰、信号反射都会压窄眼宽。
我记得遇到过一块 FPGA 到 DDR3 的 PCB,时钟频率 800MHz。眼图测量发现眼宽只有 120ps,而 DDR3 的建立保持窗口总共才 200ps。事后分析是走线等长没做好,导致数据偏斜(skew)把眼宽挤掉了。
注意:眼宽必须大于接收芯片的 tSU(建立时间)+ tH(保持时间)之和。否则哪怕眼高再漂亮,采样也会出错。
抖动(Jitter)
抖动就是信号的边沿位置在时间上的随机漂移,单位是 ps rms 或 ps peak-to-peak。经常说“总抖动 TJ”,下面分两大类:
- 随机抖动 RJ:热噪声、散粒噪声导致,服从高斯分布,无法预测
- 确定性抖动 DJ:串扰、反射、电源噪声、码间干扰导致,有规律可循
你想想看,抖动直接吃掉眼宽。100ps 的峰峰抖动加上 100ps 的其他损耗,一个 400ps 的比特窗口就剩 200ps 了。
我做排查时,会用示波器的抖动分解功能分离 RJ 和 DJ。如果 RJ 占主导,大概率是电源或参考时钟问题。如果 DJ 占主导,那就盯着串扰和阻抗不连续找原因。
三个指标的相互关系
它们不是独立的。举个例子:你加长了走线,损耗变大 → 眼高降低;同时反射变大 → 抖动增加 → 眼宽变窄。一个点往往影响两个指标。
实测顺序建议:拿到一块板子,先看眼图整体有没有明显“塌陷”。如果眼图闭合严重,先测眼宽,再测眼高,最后分解抖动。因为眼宽往往是第一瓶颈。
实测中我踩过的坑
讲几个我亲身经历的事情,希望能帮你少走弯路。
- 触发电平设太高:有一次我测 1.8V 的 LVCMOS,示波器触发电平设成了 1.0V,结果眼图一直不对称。后来发现触发电平应该设在中值电压(0.9V 左右),波形才能对称叠加。
- 采样点数不够:我习惯至少采 1 百万个比特(1000 个 UI 以上),采样太少眼图轮廓会虚。记得有次只采了 10000 个点,眼图显得很大,加大采样后才发现抖动其实很严重。
- 忽略了信号路径上的去耦电容:某次 10Gbps 的 PCB 眼图抖动超标,排查了两天,最后发现是板上一个去耦电容脱落了。电源噪声通过串扰耦合到信号线上,抖动直接翻倍。
关键参数速查表
| 参数 | 符号 | 单位 | 典型测量方法 | 常见退化原因 |
|---|---|---|---|---|
| 眼高 | EH | mV | 直方图法(眼图开眼处顶部-底部) | 串扰、电源噪声、信号衰减 |
| 眼宽 | EW | ps | 直方图法(眼图交叉点之间的时间) | 抖动、码间干扰、反射 |
| 总抖动 | TJ | ps | BERT 扫 BER 浴缸曲线 | 各种噪声源 |
| 确定性抖动 | DJ | ps | 双狄拉克法(分离高斯尾巴) | 串扰、反射、电源噪声 |
| 随机抖动 | RJ | ps rms | 抖动谱分析 / 直方图拟合 | 热噪声、闪烁噪声 |
我个人的判断经验:在产品设计阶段,我通常要求眼高不低于信号摆幅的 30%,眼宽不小于数据位宽的 40%。如果抖动超过位宽的 15%,就必须排查抖动来源。这些数字虽然保守,但能保证量产良率。