眼图怎么读:眼高、眼宽、眼交叉比与 mask、浴缸曲线
高速串行信号没有随路时钟,接收端要在一串 0、1 电平里自己决定「什么时刻、用什么门限」去判决每一个比特。眼图把成千上万甚至更多个比特周期的波形对齐、叠加在同一张图上,把信号在整个数据序列下「最坏长什么样」压缩成一只「眼睛」。眼图怎么读,本质上就是读两件事:垂直方向上电平分得开多远,水平方向上判决时刻还剩多少余量。眼图属于信号完整性(SI)分析的核心视图,想了解反射、串扰这些让眼睛闭上的通道成因,可先读封装与信号完整性(SI/PI):高速信号为什么会「变形」。
本文要回答的问题
- 眼图是怎么形成的,为什么它能在一张图里代表「所有比特」的表现?
- 眼高、眼宽、眼交叉比分别量化了什么,垂直闭合和水平闭合各由谁造成?
- ISI、随机抖动、占空比失真在眼图上留下的痕迹有什么不同?
- mask 测试是怎么判定合格与否的,BER 与浴缸曲线又怎样把「眼宽」与误码率联系起来?
- 示波器测量和芯片内部的 CDR 应把采样点放在眼睛的什么位置?
一、眼图是叠出来的:把每个 UI 剪成一段再重合
先定义一个词:**UI(Unit Interval,单位间隔)**就是一个比特的时间长度,等于数据率的倒数。1 Gbps 信号的 1 UI 是 1 ns,10 Gbps 信号的 1 UI 只有 100 ps。示波器做眼图时,以恢复出来的比特时钟为基准,把连续波形按每 1 UI(或每 2 UI,取决于显示方式)切一段,再全部对齐叠加。经过数百万个 UI 的积累,屏幕上不再是某一串特定数据,而是信号对「所有历史组合」的集体响应。
读这张概念卡抓住一条主线:输入是「无数段等长波形」,输出是「电平带、交叉点和中间的睁眼区」三类结构,所有定量参数都是对这三类结构的度量。彩色示波器还常用色阶(余晖等级)表示某区域被轨迹经过的频次:越亮代表越多比特落在那里,稀疏的零星轨迹则提示罕见但危险的边缘事件。
为什么必须叠加?因为高速通道的损耗与记忆效应让「这一个比特长什么样」取决于它前面的比特。只看一帧波形,你看到的是某一段特定序列;只有全部历史组合都叠上来,最坏的高电平、最低的低电平、最早和最晚的边沿才会同时暴露。这也是眼图与普通时域波形最大的区别:它是统计视图,不是单次事件记录。
二、眼高、眼宽与眼交叉比:垂直和水平两个方向的余量
眼睛「睁得开」意味着判决又稳又从容,「闭上」意味着无论在哪个时刻、用哪个门限都会频频出错。读图时先建立坐标系:垂直轴是电压(幅度),水平轴是时间(以 1 UI 为单位)。
这张示意图把眼图拆成五个可读区域。上下眼睑不是两条干净的线,而是有厚度的「轨迹带」:带越厚,说明电平在噪声和干扰下晃动得越厉害,两眼睑之间的净空——眼高——就越小。左右两个交叉点是所有上升沿、下降沿跨过判决门限的汇聚处;两点之间在时间方向上的净空就是眼宽。交叉点本身也是弥散的一团而不是一个点,弥散越宽,边沿到达时间的不确定性越大。
| 参数 | 度量方向 | 物理含义 | 被谁压缩 |
|---|---|---|---|
| 眼高 | 垂直(电压) | 最佳判决门限上下两侧的电平净空 | 随机噪声、串扰、电源噪声、码间干扰 |
| 眼宽 | 水平(时间) | 指定判决门限处睁眼的时间宽度,常以 UI 分数表示 | 各类抖动:RJ、DJ、ISI、DCD |
| 眼交叉比 | 垂直位置(比例) | 交叉点电压在 0/1 电平之间的相对位置 | 上升/下降时间不对称、占空比失真 |
| 眼幅度 | 垂直 | 两条电平带中心之间的总幅度 | 通道损耗、阻抗失配 |
眼交叉比容易被忽略但很能说明问题。交叉点位于垂直幅度正中(约 50%)时,上升沿和下降沿基本对称;交叉点明显抬高,说明下降沿相对更陡或高电平偏窄,常见于占空比偏高;压低则相反。它本身不直接决定误码率,却是定位偏置和占空比问题的线索。
需要强调:眼高、眼宽都不是在轨迹最外缘测量的单一极值,工程上通常在某个统计概率(或某个 BER 等值线)上定义。脱离概率口径报一个「眼高 180 mV」,和脱离测试板报散热参数一样没有意义——测量条件、样本量和判决门限必须一起给出。
三、谁让眼睛闭上:ISI、随机抖动与占空比失真的不同表情
闭眼因素分垂直和水平两路,但它们在图上留下的「表情」各不相同,学会分辨这几种典型痕迹,比记住参数定义更实用。
| 闭眼因素 | 作用方向 | 眼图上的典型表现 | 常见根源 |
|---|---|---|---|
| 码间干扰 ISI | 水平为主,兼垂直 | 眼睑出现多条分立轨迹(电平「分层」),睁眼呈菱形收窄 | 通道带宽不足、趋肤效应与介质损耗、过长走线 |
| 随机抖动 RJ | 水平 | 交叉点呈无界弥散,眼宽随积累时间持续缓慢收缩 | 热噪声、散粒噪声,服从高斯分布 |
| 占空比失真 DCD | 水平 | 左右交叉点不对称、脉宽交替长短,眼图左右歪斜 | 判决门限偏移、上升/下降沿不对称、时钟占空比非 50% |
| 周期性抖动 PJ | 水平 | 交叉点周期性散开,有时出现双交叉「双眼皮」 | 开关电源纹波、相邻时钟串扰、锁相环杂散 |
| 随机噪声 | 垂直 | 眼睑均匀增厚、模糊,呈连续带状 | 放大器噪声、电源噪声 |
| 确定性串扰 | 垂直或斜向 | 稀疏毛刺轨迹、特定方向的斜眼睑 | 相邻攻击线耦合 |
三种最常见因素的判别可以照下面的顺序做。先看眼睑是否分层:若上下眼睑不是连续的带而是能数出几条平行轨迹,基本可以判定 ISI 在场——每一条层对应一类比特历史(比如前面连着三个 1 还是一个 1),这是通道「记性太好」、低频分量过不去的典型表现。再看交叉点的弥散形状:RJ 来自高斯噪声,理论上无界,样本量加大后眼宽会缓慢地继续收窄,且交叉点关于中心对称;DCD 则表现为系统性的左右不均,把波形按边沿方向分开统计会看到上升沿和下降沿的过零时刻整体错开。
还有一个实用判据:抖动分随机(RJ)与确定性(DJ)两大类。ISI、DCD、PJ 都属于 DJ,幅度有界、与数据模式或周期相关,可针对根源治理(改善通道、调门限、去耦);RJ 无界、只能用方差描述,靠提升信噪比和留足余量压制。浴盆曲线之所以两端翘起、中间平坦,正是 DJ 划定边沿位置、RJ 决定尾巴能伸多远的共同结果。
四、mask 测试:把合格判据直接画进眼睛里
参数要一个一个量,产线测试要的是一眼判合格与否。mask(掩模)测试的做法是:规范(如各种串行总线合规性文档)在眼图中央和两侧定义若干多边形禁区,信号轨迹不允许任何一点落进禁区。连续观测规定数量的 UI(常见为百万量级)后仍零触碰,才算通过。
这张图的读法是:掩模不是测量线,而是不可侵入的多边形,中间最大的六边形区域保护判决窗口,两侧小块保护过零区。它把眼高、眼宽、边沿斜率等多个要求合成一次「碰或不碰」的判定。看 mask 结果要同时问三件事:碰到了哪块(中间=垂直余量不足或抖动过大,侧边=边沿过慢或交叉点异常)、在多深的积累量下碰到(百万 UI 通过不等于十亿 UI 也通过)、用的是哪个版本规范定义的掩模(不同速率、不同模板的几何尺寸完全不同,不能互相比)。
mask 给的是「在这个测试条件下是否合规」的二元结论,不直接给出 BER 数值。要把余量和误码率挂钩,需要下面的浴缸曲线。
五、BER 与浴缸曲线:眼宽是某个误码率下的宽度
BER(Bit Error Rate,误码率)是判决错误的比特数占传输总比特数的比例。对接收端来说,任何一个判决时刻都对应一个 BER:在眼交叉点附近判决,比特正处在跳变中,对错近乎一半,BER 接近 10 的 -2 量级;判决时刻向眼中心移动,越过跳变区后 BER 急速下降;到达眼中心附近进入平坦的谷底,BER 可低至 10 的 -12 以下。把判决相位从 0 扫到 1 UI、逐点测 BER 画成曲线,形状两头高、中间凹,像浴缸的剖面,故称浴缸曲线(bathtub curve)。
读这条「浴缸」有三个要点。第一,眼宽必须带 BER 口径:所谓「眼宽 0.7 UI」通常指 BER 等于 10⁻¹²(或规范指定值)的等值线在两个坡上截出的宽度;取 10⁻⁶ 会得到一只明显更宽的眼睛,但那是更宽松口径下的宽度。第二,谷底宽度由确定性抖动决定,坡的尾巴长短由随机抖动决定——RJ 越大,高斯尾巴越长,坡越缓,谷底越窄。第三,谷底不保证绝对零误码,它只是低到工程上接受的水平;系统要求 10⁻¹² 就用 10⁻¹² 划线,要求 10⁻¹⁵(如大型数据中心链路预算)则需要更大的睁眼余量。
实测整条 10⁻¹² 以下的浴缸曲线需要极长时间采集,工程上常用双狄拉克(dual-Dirac)模型从较易测得的尾部外推,或用 BERT(误码率测试仪)的统计功能直接给出在某 BER 下的总抖动 TJ(BER)。理解曲线形状,就能理解这些仪器数字在说什么。
六、采样点放在哪:示波器与 CDR 的判决时刻选择
眼图存在的最终目的,是告诉系统在哪一点判决最安全。答案直觉上是「眼睛正中央」,工程上拆成两个坐标:垂直方向选最佳判决门限(通常接近上下电平中点,并按噪声分布微调),水平方向选浴缸曲线谷底中心。这个点距离上下眼睑的噪声余量、距离左右两个坡的抖动余量大致均衡,任何一处恶化最先吃掉的是较薄的一侧余量而非立刻出错。
| 场景 | 采样时刻如何确定 | 与眼图的关系 |
|---|---|---|
| 示波器手动测量 | 人在眼最开处放置门限与光标 | 直接看图选中心,适合调试与合规测量 |
| 芯片内 CDR | 时钟数据恢复环路锁定数据边沿相位,采样相位置于半个 UI 之外 | 眼图由恢复时钟的相位「画」出,CDR 跟踪漂移相当于让眼睛保持居中 |
| 接收端相位插值 | 在谷底内扫描,训练算法选 BER 最低相位 | 等价于自动找浴缸底中心,高速 SerDes 上电训练常用 |
| 板级时序分析 | 建立/保持窗口取信号稳定区间 | 与建立时间违例和保持时间违例根源不同中的采样窗口同源 |
片上 CDR(Clock and Data Recovery,时钟数据恢复)的价值要在这张图里理解:低速并行总线靠随路时钟在固定沿采样,高速链路没有这个时钟,CDR 从数据跳变沿恢复出相位并持续跟踪低频漂移,相当于让采样点自动骑在移动的谷底中心。恢复时钟的抖动还会反过来「吃掉」一部分眼宽——示波器用理想恢复时钟画出的眼往往比芯片实际看到的乐观,这就是测量要按规范配置 CDR 模型(环路带宽、滚降特性)的原因。

这张复核导图把读图顺序收成四组:先确认测量口径,否则后面所有数字不可比;再分别看垂直和水平方向的闭眼痕迹;最后才下 mask 是否合规、采样点放哪的结论。实际调试时还常配合电压-频率二维扫描一起看:在Shmoo 图:电压与频率二维边界怎样读里,工作边界的形状与浴缸曲线互为印证,一个从统计波形出发,一个从功能通过与否出发。IO 规划阶段对阻抗、参考时钟和通道预算的考虑,可参见芯片 IO 规划基础:电源对数、信号完整性、ESD 与引脚复用。
这一篇在知识体系里的位置
眼图处在「物理通道」与「数字判决」的交界处:它的上游是封装、走线、连接器带来的损耗、反射与串扰(信号完整性领域),下游是 CDR、判决门限与链路 BER 预算(SerDes 接收与测试领域)。本篇只讲定性读法与参数语言;进一步定量分析抖动成分(RJ/DJ 分解、双狄拉克外推)与通道仿真(S 参数、脉冲响应)是专门主题。读这篇时若对低速同步接口的采样窗口建立直觉,可以对照建立/保持时间的时序检查;若想从系统侧了解眼图问题的来源,则回到封装与 SI/PI 的通道视角。
总结
**眼图怎么读,记住「叠加—两个方向—一条曲线」:眼图是数百万个 UI 对齐叠加的统计肖像;垂直方向读眼高,它被噪声和串扰压缩,水平方向读眼宽,它被抖动压缩,眼交叉比提示上升下降不对称与占空比失真;ISI 在眼睑上留下分层轨迹,随机抖动让交叉点无界弥散,DCD 让左右交叉系统性歪斜。**mask 测试用不可侵入的多边形给出合规与否的二元判定,浴缸曲线把判决相位与 BER 联系起来,说明任何眼宽都要带误码率口径。最佳采样点是浴缸谷底中心、门限位于电平之间、垂直与水平余量大致均衡的位置;芯片里由 CDR 跟踪并保持这一位置。拿到一张眼图,先问测量口径,再看闭眼痕迹,最后才下结论,顺序不能反。