眼图分析

分类: 電磁場解析 > 信号品質 | 综合版 2026-04-11
Eye diagram analysis showing overlaid bit waveforms forming eye opening with height and width margins
アイダイアグラム解析 — 全ビットパターンの波形を重ね描きして信号品質マージンを可視化する

理论与物理

概述 — 什么是眼图

🧑‍🎓

老师,“眼图睁开”具体是什么意思?前辈说“眼图闭上了,要重做电路板”,我完全不明白是什么情况…

🎓

问得好。先从原理说起。在数字通信中,发送端将“0”和“1”的比特序列作为电压波形发送出去。接收端则对这个波形进行采样,以判定是“0”还是“1”。

眼图是将所有比特模式的波形按1UI(单位间隔 = 1比特宽度的时间)为单位切割出来并叠加绘制而成的。这样在中央就会形成一个像“眼睛”一样的开口区域。这个开口越大,接收端就越容易正确判定比特。

🧑‍🎓

原来如此,是叠加绘制啊!但是为什么会形成“眼睛”的形状呢?如果只是叠加理想的矩形波,不会形成长方形吗?

🎓

如果是理想的矩形波,确实会形成长方形。但现实的传输路径存在带宽限制。高频成分会衰减,导致波形的上升沿和下降沿变得平缓。此外,前后的比特模式还会使波形发生微妙变化——这就是ISI(码间干扰)

例如,“0→1→1→1”模式和“0→1→0→1”模式中,第二个“1”的到达电压是不同的。前者能充分充电,而后者则很快转为放电,电压无法完全上升。将所有这些模式叠加起来,轨迹就会扩散开,形成“眼睛”的形状。

🧑‍🎓

啊,所以才会说眼睛“闭上”了!如果ISI很严重,轨迹就会重叠,眼睛就塌陷了。

🎓

正是如此。眼睛睁开,意味着即使存在噪声或时序偏差,也仍有正确判定比特的裕量。对于PCIe Gen5(32 GT/s),均衡后的眼图开口高度要求至少15 mV以上,抖动要求在3.5 ps以下。Gen6(64 GT/s,PAM4)的要求则更加严格。

眼图开口的量化指标

🧑‍🎓

“眼睛睁开”的程度可以用数值来衡量吗?

🎓

当然可以。眼图有两个基本指标。

眼图开口高度(Eye Height),是采样时刻“1”电平的最低电压与“0”电平的最高电压之差:

$$ \text{Eye Height} = V_{\text{high,min}} - V_{\text{low,max}} $$
🎓

$V_{\text{high,min}}$ 是所有比特模式中“1”电平的最小电压,$V_{\text{low,max}}$ 是“0”电平的最大电压。这个值越大,噪声裕量就越大。它表示接收缓冲器的阈值电压有多少余量。

眼图开口宽度(Eye Width),是左右交叉点之间的时间差:

$$ \text{Eye Width} = T_{\text{UI}} - \text{Jitter}_{\text{pp}} $$
🎓

$T_{\text{UI}}$ 是1UI的时间宽度,$\text{Jitter}_{\text{pp}}$ 是交叉点的峰峰值抖动。这个值越大,时序裕量就越大。

例如,PCIe Gen5(32 GT/s)的 $T_{\text{UI}} = 1/32 \times 10^9 \approx 31.25\,\text{ps}$,如果有3.5 ps的抖动,则 Eye Width 约为 27.75 ps。这样就可以知道相对于接收端CDR的锁定范围有多少余量。

🧑‍🎓

高度对应噪声,宽度对应时序,是这样吗?是不是只要一个方面好也不行?

🎓

没错。在实际工作中,会在眼睛中央定义一个眼图模板(六边形的禁止区域),并确认所有波形轨迹都不触碰该模板。必须同时满足高度和宽度两方面的要求,否则就不符合规格。USB4或PCIe的规格书中会明确规定模板的坐标。

抖动分解(RJ/DJ)

🧑‍🎓

我一直以为抖动就是波形的简单晃动,把它分成RJ和DJ是为了什么?

🎓

抖动分解对于BER(误码率)估计是必不可少的。抖动主要分为两类:

  • DJ(确定性抖动):原因可确定的有界抖动。包括ISI、串扰、占空比失真(DCD)、周期性抖动(PJ)等。其峰峰值存在上限
  • RJ(随机抖动):由热噪声或散粒噪声引起的高斯分布抖动。理论上没有上限。
🎓

总抖动(TJ)是针对特定BER目标,用以下公式估算的:

$$ \text{TJ}(\text{BER}) = \text{DJ}_{\text{pp}} + 2 \cdot Q(\text{BER}) \cdot \sigma_{\text{RJ}} $$
🎓

这里 $Q(\text{BER})$ 是正态分布的逆累积分布函数(Q函数的逆)。BER = $10^{-12}$ 时 $Q \approx 7.03$,BER = $10^{-15}$ 时 $Q \approx 7.94$。

举个例子。假设某个通道的 $\text{DJ}_{\text{pp}} = 5\,\text{ps}$,$\sigma_{\text{RJ}} = 0.3\,\text{ps}$。BER = $10^{-12}$ 时的TJ为:

$$ \text{TJ}(10^{-12}) = 5 + 2 \times 7.03 \times 0.3 = 5 + 4.22 = 9.22\,\text{ps} $$
🧑‍🎓

即使RJ看起来很小,但乘以Q函数的倍数后影响还是很大啊…!相对于 DJ 5 ps,RJ 0.3 ps 就额外增加了4.2 ps。

🎓

是的。所以降低RJ是高速串行设计最重要的课题之一。PLL的抖动性能、电源噪声抑制、电路板的接地完整性都会直接影响RJ。DJ有很多部分可以通过均衡器补偿,但RJ无法补偿。

BER浴盆曲线

🧑‍🎓

BER浴盆曲线经常出现,它和眼图有什么关系呢?

🎓

浴盆曲线是采样相位(横轴)对BER(纵轴)的绘图。正如其名,形状像浴缸的截面。左右壁陡峭上升,中央有BER最小的“底部”。

🎓

从数学上讲,采样相位 $\phi$ 处的BER,可以通过RJ的高斯分布与DJ分布的卷积求得。单侧BER(例如左壁)为:

$$ \text{BER}_{\text{left}}(\phi) = \frac{1}{2}\,\text{erfc}\!\left(\frac{\phi - \mu_{\text{DJ,left}}}{\sqrt{2}\,\sigma_{\text{RJ}}}\right) $$
🎓

右壁也类似求得,总BER为:

$$ \text{BER}(\phi) = \text{BER}_{\text{left}}(\phi) + \text{BER}_{\text{right}}(\phi) $$
🎓

浴盆“底部的宽度”就是该BER目标下的时序裕量。例如,BER = $10^{-12}$ 时底部宽度为 0.3 UI,就意味着CDR的采样相位有 0.3 UI 的余量。PCI-SIG的规格中,将这个底部宽度规定为“BER = $10^{-12}$ 时的最小眼图宽度”。

🧑‍🎓

也就是说浴盆的底部越深越宽越好。普通眼图难以看到的BER信息,通过浴盆曲线就能一目了然。

🎓

是的。眼图是波形的叠加,所以看起来是“最坏情况”,但从统计角度看,它只包含大约BER $10^{-5}$ 级别的信息。要评估 $10^{-12}$ 或 $10^{-15}$ 的BER,抖动分解和浴盆曲线是必不可少的。

通道的传递函数模型

🧑‍🎓

眼睛是睁开还是闭上,归根结底是由通道特性决定的吧?通道是如何建模的呢?

🎓

通道(传输路径)用S参数来表征。对于双端口网络,基本参数是插入损耗 $S_{21}(f)$ 和回波损耗 $S_{11}(f)$。如果是差分对,则使用 $S_{dd21}$(差分插入损耗)。

时域的脉冲响应 $h(t)$ 可以通过 $S_{21}(f)$ 的逆傅里叶变换得到:

$$ h(t) = \mathcal{F}^{-1}\{S_{21}(f)\} $$
🎓

接收波形 $y(t)$ 是发送波形 $x(t)$ 与通道脉冲响应的卷积:

$$ y(t) = x(t) * h(t) = \int_{-\infty}^{\infty} x(\tau)\,h(t-\tau)\,d\tau $$
🎓

在实际工作中,通常使用测量仪器(VNA)实测S参数,或者通过3D电磁场求解器(HFSS、CST)仿真获取。将PCB布线、连接器、过孔、封装的S参数级联起来,构建端到端的通道特性,这是普遍做法。

🧑‍🎓

也就是说,如果通道的频率特性不好(高频衰减),脉冲响应的拖尾就会变宽,ISI增加,眼睛就会闭上,对吧?

🎓

理解得非常完美。例如,在FR-4电路板上走10英寸的差分对,在奈奎斯特频率(PCIe Gen5 @16 GHz)处的插入损耗超过 -20 dB 也并不罕见。如何补偿这种损耗,是均衡器设计的核心。

Coffee Break 闲谈

在设计阶段观察“眼睛闭上”——眼图的诞生

眼图这个名字,源于叠加的比特波形看起来像人的眼睛(eye)。这种显示方法在20世纪60-70年代电话线路数字化的时代,随着示波器触发同步技术的发展而广泛使用。能够在设计阶段通过仿真预测眼图开口,则是从90年代基于SPICE的IBIS模型普及开始的。从“制作电路板并用测试机测试才能知道质量”到“通过仿真预先预测闭合程度”的转变,是高速串行设计历史上最大的转折点。

各项的物理意义
  • 眼图高度 $V_{\text{high,min}} - V_{\text{low,max}}$:接收缓冲器能够判别“0”和“1”的最小电压差。表示即使存在噪声(电源波动、串扰、电路板的介质损耗),也能正确进行比特判定的裕量。用汽车来比喻,相当于对向车道之间的中心线宽度——太窄会增加正面碰撞的风险。
  • 眼图宽度 $T_{\text{UI}} - \text{Jitter}_{\text{pp}}$:CDR(时钟数据恢复)对数据进行采样的时序裕量。抖动越大,每个比特的最佳采样相位偏移就越大,会导致判定错误(BER增加)。可以比作地铁门的开关时机,停靠在站台的时间越短,上下车就越困难。
  • Q函数 $Q(\text{BER})$:根据BER目标从正态分布的尾部概率求出的缩放系数。BER越小(可靠性要求越严格),Q值越大,RJ的影响就被放大了。
假设条件与适用范围
  • 线性通道假设:S参数模型假设系统是线性时不变的。发送驱动器的非线性(压摆率限制、电源压降)需要另行建模。
  • RJ的高斯性:抖动分解基于RJ服从高斯分布的假设。当PLL的抖动(非高斯)占主导时,精度会下降。
  • 稳态:BER浴盆曲线假设CDR锁定后的稳态。不适用于启动时或链路训练期间。
  • NRZ信号:基本公式适用于NRZ(二进制)信号。对于PAM4,需要对三个眼图开口分别应用指标。
量纲分析与单位制
物理量单位典型值(PCIe Gen5)
UI(单位间隔)ps31.25 ps(32 GT/s)
眼图高度mV≥ 15 mV(均衡后)
抖动(TJ @ BER=$10^{-12}$)ps≤ 3.5 ps
RJ(rms)ps0.1 〜 0.5 ps
DJ(pp)ps1 〜 8 ps
插入损耗 $S_{dd21}$dB-20 〜 -35 dB @奈奎斯特

数值解法与实现

统计性眼图分析

🧑‍🎓

在实际分析中,真的会仿真所有比特模式的时间波形吗?像 $2^{20}$ 比特这样的计算量似乎非常庞大…

🎓

问得好。时域仿真(逐比特时间域仿真)虽然直观,但要直接验证BER = $10^{-12}$,需要 $10^{13}$ 比特以上,这不现实。

因此,使用的是统计性眼图分析。这种方法从通道的脉冲响应中解析地求出ISI的概率分布,再与RJ的卷积结合,生成BER图。计算复杂度是 $O(2^N)$($N$ 是影响ISI的游标数),但实际上可以将有效游标数截断到10~20个左右,所以几秒钟就能完成。

ISI卷积计算

🧑‍🎓

“解析地”求出ISI的概率分布,具体是怎么做的呢?

🎓

对通道的脉冲响应(SBR: 单比特响应)进行采样,可以得到每个UI处的游标值 $c_k$。$c_0$ 是主游标,$c_{-1}, c_{-2}, \ldots$ 是前导游标,$c_1, c_2, \ldots$ 是后置游标。

接收信号的采样值 $y_n$ 为:

$$ y_n = \sum_{k=-K_{\text{pre}}}^{K_{\text{post}}} c_k \cdot a_{n-k} $$
🎓

$a_{n-k} \in \{-1, +1\}$ 是比特值。除去主游标 $c_0 \cdot a_n$ 后的部分就是ISI。ISI的每一项取 $\pm c_k$ 两个值,概率各为 1/2。由于所有游标相互独立,ISI的概率分布就是各游标两点分布的卷积。

如果有 $N$ 个游标,就有 $2^N$ 种组合,从而得到离散概率分布。再与RJ的高斯分布进行卷积,就能得到采样值的连续概率密度函数,从而计算出任意BER目标下的眼图开口。

🧑‍🎓

原来如此…是反复卷积啊。可以用FFT加速吗?

🎓

很敏锐。实际上,商用工具(Keysight ADS、Ansys HFSS Transient等)使用了基于特征函数(概率分布的傅里叶变换)的快速算法。将每个游标的特征函数 $\Phi_k(\omega) = \cos(c_k \omega)$ 全部相乘,再通过逆FFT变回概率分布。计算复杂度是 $O(N \cdot M \log M)$($M$ 是离散化点数),比 $2^N$ 的穷举法快好几个数量级。

均衡器(FFE/CTLE/DFE)的数学原理

🧑‍🎓
関連シミュレーター

この分野のインタラクティブシミュレーターで理論を体感しよう

シミュレーター一覧

関連する分野

この記事の評価
ご回答ありがとうございます!
参考に
なった
もっと
詳しく
誤りを
報告
参考になった
0
もっと詳しく
0
誤りを報告
0
Written by NovaSolver Contributors
Anonymous Engineers & AI — サイトマップ