
1. 眼图闭合的元凶从一次100MHz参考时钟排查说起几年前接手一块高速板卡的调试现象很典型链路在常温下勉强能跑一进温箱就零星报错误码率上上下下重传率大概在1e-9到1e-10之间晃。眼图抓出来看垂直方向还有余量水平方向却已经快糊成一片了。当时第一反应是走线阻抗或者连接器的问题折腾了两天才把方向拨正——真正的元凶是那颗100MHz参考时钟的时间抖动jitter在温度升高后明显变差经过PLL倍频之后被放大最终把眼图的水平张开度吃掉了大半。这件事让我意识到很多人对jitter的理解停留在知道它是个时间上的偏差这个层面真到排查的时候分不清自己测的到底是哪一种jitter也就无从下手定位。时间抖动这个词看着简单背后其实藏着一整套分类体系随机抖动和确定性抖动、周期抖动和周期间抖动、TIE和长期抖动每一个名字都对应着不同的测量方法、不同的物理来源、不同的换算关系。你测的若是cycle-to-cycle jitter它天然带高通特性对低频温漂压根不敏感你想拿它去解释眼图闭合那基本就是南辕北辙。这篇笔记想干的事是把jitter这套体系从工程实用的角度捋一遍。我会重点讲清楚cycle-to-cycle jitter和peak-to-peak jitter这两个热搜里高频出现的概念到底在测什么、怎么换算、容易在哪儿翻车也会把示波器、相位噪声分析仪、BERT这几条主流测量路径的分工讲透。适合已经接触过信号完整性、正在做时钟链路或者高速串行接口调试的同行看也适合刚入门、被各种jitter指标绕晕的朋友当作一张地图来用。文中涉及公式的地方我会尽量把推导补上因为只有理解了为什么你才知道什么时候那个结论不成立。先把一个基本判断放在前面jitter不是一个单值指标它是一族指标的统称。脱离了测的是哪一段、观测窗口多长、置信度多少这三个定语任何jitter数字都是没有意义的。后面所有内容基本都是在给这句话做注脚。2. jitter的分类骨架随机、确定性与那条有界无界的分界线2.1 随机抖动RJ永远在长尾巴的高斯分量随机抖动Random JitterRJ的物理来源主要是器件内部的热噪声、散粒噪声这类白噪声过程它的统计特性可以用高斯分布来近似描述。高斯分布最要命的一点是它的支撑集是整条实轴理论上可以取到任意大的值只是概率越来越小。这就意味着RJ本身是无界的你用再长的观测窗口去测峰值都会随着时间缓慢增长永远收敛不到一个固定数。工程上处理RJ的办法是只用它的均方根值σ来描述然后通过外推去估算某个误码率下的峰峰值。常见做法是取14倍σ对应大约1e-12的双边误码率。这个14不是拍脑袋来的单边高斯尾部概率Q(x)在x7附近约为1.28e-12双边翻倍后接近2.56e-12量级上对应1e-12这条线所以行业里约定俗成用±7σ峰峰值就是14σ。你要用1e-15的误码率目标那这个系数就得往上抬到大约15.6σ。这种系数随目标BER变的特性正是RJ无界性的直接体现。还有一个容易被忽略的点RJ的σ和测量带宽强相关。示波器前端带宽如果只有2GHz那些更高频的相位噪声分量就被滤掉了测出来的σ会偏小。所以对比两颗时钟的RJ时必须先确认测量带宽一致否则数字没有可比性。2.2 确定性抖动DJ有界但来源五花八门确定性抖动Deterministic JitterDJ和RJ相反它是有界的峰峰值不随观测时间增长而发散。DJ的来源很杂工程上大致归成几类占空比失真DCD、数据相关的抖动DDJ也叫码间干扰ISI引起的那部分、周期性抖动PJ通常来自开关电源、时钟串扰等周期性干扰、以及有界不相关抖动BUJ。理解DJ的关键在于它往往有明确的物理可追溯路径。比如DCD通常来自差分对的上升下降沿不对称、或者时钟占空比本身偏离50%PJ常常能追到某个开关频率或者晶振的杂散。RJ你只能想办法压低σDJ你却可以通过改电路、换布局、加滤波来直接消除。这也是为什么排查jitter问题时第一步永远是判断这坨抖动里DJ占了多少——因为DJ是能被治的RJ往往只能认。2.3 为什么总抖动必须挂上BER才有意义总抖动Total JitterTJ不是简单地把RJ和DJ相加。主流模型叫dual-Dirac它假设DJ分布在两个极值点上RJ是一个高斯两者卷积。在这个模型下TJ(BER) DJ_δδ 2 × Q_inv(BER/2) × σ_RJ其中DJ_δδ是dual-Dirac模型下DJ的峰峰值Q_inv是高斯尾函数的反函数。这条公式说明一个问题TJ是BER的函数。你问这颗时钟的jitter是多少对方如果只回一个数字不加BER那这个数字基本没法用。常见报告会写TJ1e-12 0.35UI这才算完整。下面这张表把三类抖动的基本属性摆在一起方便对照类型有界性常见来源能否通过设计消除描述参数RJ 随机抖动无界热噪声、散粒噪声难以消除只能压σσRMSDJ 确定性抖动有界DCD、ISI、PJ、串扰多数可通过设计改善或消除峰峰值TJ 总抖动随BER定义RJ与DJ的合成—TJ指定BER把这张表记住后面讨论cycle-to-cycle和peak-to-peak时你就能快速判断自己站在哪一栏里。3. period、cycle-to-cycle、TIE三个名字背后是三块不同的时间切片3.1 period jitter测的是与理想周期的偏离周期抖动period jitter的定义很直白把时钟的每一个实测周期T[n]减去理想周期T0得到一串偏差序列J_period[n] T[n] − T0它反映的是单个周期相对标称值偏了多少。这个指标适合用来评估一颗时钟在短时间尺度上的稳定度比如你关心PLL输出每个周期的抖动会不会让下游采样时序出错看的就是它。period jitter的RMS值在很多时钟芯片手册里直接以RMS period jitter的形式给出单位通常是ps或者fs。一个细节period jitter对低频漂移是保留的。如果时钟源因为温度变化导致频率整体缓慢漂移T[n]会有一个缓慢变化的趋势项period jitter会把它如实记录下来。这一点和cycle-to-cycle正好相反后面会讲到。3.2 cycle-to-cycle jitter是period的一阶差分天然带高通周期间抖动cycle-to-cycle jitter的定义是相邻两个周期的差值J_cc[n] T[n1] − T[n]注意这个式子和period jitter的关系。如果把period jitter序列记为p[n] T[n] − T0那么J_cc[n] (T[n1] − T0) − (T[n] − T0) p[n1] − p[n]也就是说cycle-to-cycle jitter就是period jitter的一阶差分。这个观察极其重要因为它决定了cycle-to-cycle的频域特性一阶差分在频域上等效于乘以(1 − z⁻¹)其幅度响应是2|sin(πf/f0)|。这是一个高通形状的加权——低频分量被压制高频分量被放大在f0/2奈奎斯特处放大到最大增益为2。这解释了一个常被问到的问题为什么温度变化导致时钟频率缓慢漂移时cycle-to-cycle jitter几乎测不出来变化因为温漂是低频的被那个高通因子压下去了。反过来如果PLL环路带宽附近有噪声峰cycle-to-cycle会把它们放大得很明显。同一个抖动物理源在这两个指标上的表现可能差好几倍这就是为什么不能拿cycle-to-cycle的数字去反推眼图。3.3 TIE才是眼图和误码率真正关心的量时间间隔误差Time Interval ErrorTIE是把实测时钟的每个上升沿时刻减去理想时钟在对应位置的时刻TIE[n] t_edge[n] − n×T0它本质上是相位误差随时间的变化序列单位还是秒。TIE和period的关系是TIE的差分就是period jitter的偏差。反过来period jitter的累积和去掉均值就是TIE。为什么说TIE才是眼图关心量因为接收端采样时真正影响判决的是采样时刻相对理想位置的偏移。在一个长序列里各个周期的抖动会累积TIE能看到这种累积效应而period jitter只看单周期是看不到的。所以做眼图、算BER、做链路预算时用的都是TIE。示波器上那个TIE histogram直方图就是干这个用的。3.4 三者之间的换算关系明白了差分和累积关系换算就不难。对一个零均值的平稳随机过程如果period jitter是白噪声、方差为σ_p²那么cycle-to-cycle jitter的方差σ_cc² 2σ_p²即σ_cc √2 × σ_pTIE在N个周期上的累积方差σ_TIE²(N) ≈ N × σ_p²白噪声情况下线性增长这两个关系是快速估算的利器。但要注意它们的前提是白噪声、无相关。实际时钟里往往存在1/f噪声或者周期性分量这时候√2关系会偏累积也不是严格线性。下一章我会专门把√2这个关系掰开讲。提示很多时钟芯片手册同时给出period jitter和cycle-to-cycle jitter的RMS值如果你发现后者约等于前者的1.41倍那基本可以判断这颗时钟的抖动以宽带白噪声为主如果比值明显偏离1.41说明存在相关性较强的分量值得进一步查。4. cycle-to-cycle jitter为什么它放大高频噪声却对温漂视而不见4.1 从差分运算看频谱加权上一章给出J_cc是p[n]的一阶差分。用z变换写出来差分滤波器是H(z) 1 − z⁻¹频率响应幅度为|H(f)| 2|sin(πf/f0)|其中f0是时钟频率。这个式子把cycle-to-cycle的性格完全暴露了在直流附近增益趋近于0在f0/2处增益为2。换句话说它是一台高通滤波器对低频抖动不敏感对接近奈奎斯特频率的抖动有2倍放大。这带来两个直接后果。第一像芯片温升、电源缓慢漂移这类低频过程cycle-to-cycle几乎测不到你想用这个指标去监控长期稳定度是用错工具了。第二PLL环路带宽内的噪声峰如果位置偏高会在这个指标上被显著放大看上去数字很难看但实际对链路的影响未必有那么大——因为下游接收端往往对高频抖动有一定容忍真正致命的是低频累积漂移。不要被cycle-to-cycle那个偏大的数字吓到先搞清楚它的噪声在什么频段。4.2 白噪声假设下√2关系的完整推导假设period jitter序列p[n]是零均值、方差σ_p²、各样本互不相关的白噪声。cycle-to-cycle序列为J_cc[n] p[n1] − p[n]求方差Var(J_cc) Var(p[n1]) Var(p[n]) − 2Cov(p[n1], p[n])因为白噪声互不相关协方差项为0两个方差都等于σ_p²所以σ_cc² σ_p² σ_p² 2σ_p²开根号得到σ_cc √2 σ_p。这就是那个1.41的来历。推导本身很简单但它的每一步前提都值得记牢零均值、平稳、不相关。只要有一条不成立结果就变。4.3 什么情况下√2关系会失效实际时钟里最常见的失效场景是存在低频相关分量。比如时钟源有1/f噪声或者PLL里有周期性的参考杂散。这时候相邻周期的抖动是正相关的协方差项为正代入方差公式σ_cc² 2σ_p²比值会小于1.41。极端情况下如果抖动完全是某一低频正弦相邻周期差值反而很小cycle-to-cycle会急剧变小而period jitter并不小。反过来如果存在一个接近f0/2的周期性干扰相邻周期的抖动交替正负协方差为负σ_cc² 2σ_p²比值会大于1.41。我见过比值达到1.8甚至更夸张的情况追下去通常是PLL输出上挂了某个开关电源的杂散频率刚好落在高频段。所以在实际项目里我的习惯是同时记录period和cycle-to-cycle的RMS再算一下比值。这个比值本身就是一个诊断信息比单看一个数字有用得多。4.4 实测时的几个具体陷阱用示波器测cycle-to-cycle jitter时有几个坑我踩过不止一次。第一个是垂直噪声转时间噪声。示波器测量边沿位置靠的是电平穿越点垂直噪声σ_v会被边沿斜率slew_rate换算成时间噪声σ_t σ_v / slew_rate。如果边沿本身很慢这个换算因子就很大测出来的jitter里混进了大量示波器前端的噪声看着像是时钟的问题其实是仪器的问题。所以测jitter一定要挑边沿陡的信号看慢边沿上的数字不要轻信。第二个是采样率和存储深度不足导致的时间分辨率虚高。现代示波器会用插值算法把边沿位置细化到亚采样点但插值本身引入的误差会体现在测量结果里。经验上要保证每个边沿上的采样点足够密集否则测出来的RMS会虚高。第三个是触发方式的影响。用边沿触发会周期性地把抖动序列对齐到触发点上人为地压掉低频分量。测cycle-to-cycle时这个问题相对小一些但如果你同时在看TIE触发方式会显著改变TIE的形态。常见做法是用一个稳定的参考时钟作为触发源而不是被测量信号自身触发。5. peak-to-peak jitter一个被误用最多的数字5.1 Pk-Pk随观测时间单调增长这是物理决定的peak-to-peak jitter的字面定义很简单在观测窗口内所有抖动样本的最大值减最小值。问题在于只要你观测得够久总会碰到更极端的样本。对含有RJ成分的信号来说Pk-Pk会随着观测时间或者样本数N以对数速度缓慢增长永远不收敛。这就制造了一个非常普遍的误用A工程师测了10秒得到30ps的Pk-PkB工程师测了10分钟得到45ps两个人拿着各自的数字争论这颗时钟到底好不好其实谁都没错只是窗口不同。这种争论在跨部门、跨供应商沟通时特别常见。解决之道只有一个报告Pk-Pk时必须同时声明观测样本数和目标BER或者干脆换算成统一的TJBER再比较。有个粗略的经验在白噪声主导的情况下样本数每增加10倍Pk-Pk大约增加0.5σ左右。样本数从1e4增加到1e9Pk-Pk大概会多出5σ。这个量级足够让两个看似矛盾的测量结果自洽。5.2 14σ外推的完整来历前面提过14σ对应约1e-12误码率。把推导补全一下如果RJ是标准差为σ的高斯单边尾部超过7σ的概率是Q(7)。标准正态尾函数在x7处约等于1.28e-12。由于抖动是双向的可以正偏也可以负偏总的误码概率约为2×1.28e-12 2.56e-12与1e-12在同一量级所以行业取7σ作为单边限峰峰值14σ。若目标BER是1e-15对应的单边限约7.8σ峰峰值约15.6σ。这就是外推系数随BER走的具体算法。实务里很多仪器会直接给出RJ (σ)和DJ (δδ)两个中间结果然后你自己代入公式算TJ。比起直接读一个Pk-Pk数字我更信任这两个中间参数因为它们的物理含义清晰受窗口长度的影响也小得多σ基本稳定δδ由DJ决定。5.3 dual-Dirac模型和它的边界dual-Dirac模型把DJ近似成两个位于±DJ_δδ/2的狄拉克函数再和RJ高斯卷积得到双峰形状的总分布。用这个模型可以从实测的抖动直方图里拟合出σ和δδ进而外推到任意BER。这个模型好在简单、可解析、被多数仪器和仿真工具采用。但它有边界如果DJ本身不是双峰的比如是一个完整的均匀分布或者三角分布拟合出来会有偏差。另外如果抖动里存在明显的周期性结构直方图会出现多于两个的峰这时候dual-Dirac就会把额外的结构硬塞进δδ里导致外推不准。遇到这种情况我会先看看抖动频谱确认周期性分量的来源必要时把它们从直方图里剔除再做拟合。5.4 报告Pk-Pk时必须附上的三个定语总结一下任何一份负责任的Pk-Pk jitter报告都应该带上这三个定语观测窗口/样本数比如100万UI或10秒采集目标BER比如1e-12测量带宽比如20GHz示波器前端8GHz带宽限制缺任何一个这个数字都是悬空的。我见过太多把不同口径的Pk-Pk放在一起比较的场景最后发现争论的根源根本不在时钟本身而在测量条件的差异。把口径统一了很多所谓的分歧立刻消失。6. 测量链路的噪声底示波器、相位噪声分析仪与BERT的分工6.1 示波器法时间噪声换算与边沿选择实时示波器是最常用的jitter测量工具优点是直观、能看波形、能直接给TIE直方图。它的核心测量机制是在每个上升沿找到穿越判决电平的时刻记录它与理想时刻的偏差。这条链路里最大的噪声来源是前端垂直噪声经过边沿斜率换算成的时间噪声。前面给过公式σ_t σ_v / slew_rate举个例子示波器前端垂直噪声σ_v 1mV边沿斜率是1V/ns那么换算出来的时间噪声是1ps。如果边沿斜率降到0.1V/ns同样的垂直噪声就变成10ps的时间噪声。这个数量级已经足以淹没一颗好时钟的真实抖动。所以用示波器测jitter优先选陡边沿、高幅度的信号点必要时在信号链上加限幅放大器来提速边沿。另一个要点是带宽限制。示波器手册标称的带宽越高引入的噪声可能越大。如果被测时钟的实际抖动带宽只到几百MHz就没必要开着全带宽测适度加个低通反而能提高信噪比。这个取舍要根据信号的实际频谱来定。6.2 相位噪声积分法从频域反推时间抖动相位噪声分析仪测的是时钟的相位噪声谱L(f)单位是dBc/Hz。要把它换算成时间抖动用下面这条积分σ_φ² 2 × ∫[f1 to f2] 10^(L(f)/10) df 单位rad²然后时间抖动的RMS为σ_t σ_φ / (2π f0)这个方法的优势是能精确控制积分带宽你可以只积分1kHz到10MHz这段看某一频段的贡献。对定位问题特别有用如果积分下限设到1kHz以内抖动量突然增大那说明低频漂移是主因如果加大上限才明显增长那问题在高频。相位噪声法的短板是它假设抖动是平稳的、线性的对非平稳的确定性分量比如数据相关的ISI不敏感——因为那边的信号是纯载波没有数据图案。所以它适合测时钟源本身不适合测带数据的串行链路。6.3 BERT误码扫描法最贴近系统真实表现误比特率测试仪BERT的做法是直接对链路做误码扫描改变采样相位点找到误码率随相位变化的关系曲线那个眼图的水平张开度就是抖动信息的直接体现。这是最贴近真实工作的测量方式因为它把发送端、信道、接收端全都算进去了。BERT法的缺点也很明显慢一次扫描可能要几分钟到几十分钟而且它给出的是总效果没法直接分离是RJ还是DJ、是时钟还是信道引起。所以它更适合作为最终验收手段而不是排查工具。6.4 三种方法该怎么选下面这张表把三条路径的特性摆在一起方法测量对象优势短板主要输出实时示波器波形边沿直观、能分离RJ/DJ前端噪声换算、带宽受限TIE直方图、RJ σ、TJ相位噪声分析仪时钟载波频段可控、灵敏度高不适用带数据链路L(f)谱、积分RMSBERT完整链路贴近真实、结果可信慢、无法分解来源BER-相位曲线、眼宽我的实际用法是分层先用相位噪声分析仪把时钟源本身摸清楚确认来源再用示波器在板级测量看经过走线和连接器之后的劣化最后用BERT做系统级验收。三层数据对不上问题基本就锁定在中间某个环节了。7. 一次参考时钟jitter劣化的完整排查链路7.1 现象描述与初次测量回到开头那次调试。现象是主板上的100MHz参考时钟经过PLL倍频后驱动一条高速链路常温下能跑进温箱到70度以后误码率明显上升。初步测量用示波器测PLL的输出时钟常温下cycle-to-cycle RMS约2.1ps70度时涨到4.8ps。这个变化幅度不算离谱但因为经过数倍频绝对时间抖动被同比例放大最后落到UI上的占比就相当可观了。那时候我犯的第一个错是直接盯着cycle-to-cycle的RMS看。前面讲过这个指标对低频不敏感而温度引起的漂移恰恰是低频的。所以这个数字其实低估了问题的严重程度。正确的做法应该是同时看TIE和相位噪声谱特别是低频段。7.2 先排除探头和地环路排查jitter问题的第一步永远是确认测到的不是你自己的测量系统。我花了半天做了一件事换探头、换地线连接方式、把探头的接地弹簧换成短地针。结果发现光是把长地线换成短地针测出来的cycle-to-cycle RMS就从4.8ps降到3.6ps。这说明原来有相当一部分抖动是探头地环路引入的。探头地环路为什么会引入时间噪声因为长地线形成了一个电感回路它会耦合板上的磁场、也会把探头的共模电流引到被测点最终体现在边沿位置的测量误差上。这个教训我记了很久jitter测量的第一件事是把探头接法做到最短、最干净否则后面所有分析都建立在沙子上。7.3 电源纹波的嫌疑线排除测量问题后剩下约3.6ps的cycle-to-cycle RMS和它在高温下的增长就值得深挖了。下一步是看电源。参考时钟芯片的供电来自一颗LDO我用示波器加上AC耦合测了LDO输出的纹波发现高温下纹波从约1mVpp涨到了3mVpp而且频谱上有一个明显的开关频率杂散恰好在几百kHz附近。时钟芯片的供电纹波会通过内部的振荡器和缓冲级调制到输出相位上形成周期性抖动PJ。这个PJ是确定性抖动理论上是可以被消除的。我用相位噪声分析仪测了时钟的相位噪声谱果然在对应频点看到一个凸起的杂散峰高温下这个峰比常温高了约8dB。至此问题链路基本清晰LDO高温性能劣化 → 输出纹波变大 → 通过供电调制到时钟相位 → 周期性抖动增大 → 倍频后放大 → 眼图闭合 → 误码率上升。7.4 定位、修复与验证定位完成后修复手段有三条。第一换LDO选一颗高温下纹波特性更稳定的型号第二在LDO输出靠近时钟芯片的位置增加合适的高频去耦用小容值MLCC并联降低高频阻抗第三在时钟芯片的供电入口加一级RC或者磁珠滤波把开关杂散进一步压低。我三条都做了效果很明显。换LDO后高温纹波降到1.2mVpp加去耦和滤波后相位噪声谱上的杂散峰降低了约12dB。复测cycle-to-cycle RMS常温2.0ps高温2.3ps温漂从原来的翻倍多压到了15%以内。进温箱跑链路误码率降到1e-13以下连续运行48小时没有再出现零星报错。整件事最值得记的经验是最初那个cycle-to-cycle数字不但低估了问题还差点把我引到错误的方向。如果一开始就同时看相位噪声谱和TIE能省下至少一天时间。后来我在自己的排查清单里加了一条硬性规定——测时钟jitter必须同时给出三种数据period RMS、cycle-to-cycle RMS、相位噪声谱缺一不可。8. 把jitter当预算花链路设计的取舍经验8.1 jitter budget的拆解方式做链路预算时jitter是一笔要花出去的钱。总预算由接收端的抖动容限决定然后要分配给发送端、信道、接收端的时钟恢复电路。分配的依据是各部分对总抖动的贡献。一个典型的分配思路是这样的发送端时钟源占预算的30%到40%这部分是源头越干净越好发送端驱动器引入的DJ占10%到15%信道引起的ISI和DJ占15%到25%取决于走线长度和损耗接收端时钟恢复的抖动传递占20%到30%包含CDR自身的抖动生成和传递特性这个比例不是固定的但核心逻辑是抖动的贡献要按功率方差来叠加不是按峰峰值直接相加。RJ分量之间用平方和开根号DJ分量之间用线性相加最后再按dual-Dirac合成TJ。很多人在做预算时把所有峰峰值直接相加结果算出来的总预算大得离谱只能盲目选更贵的器件。8.2 几个我常用的经验值做了这些年攒了一些快速估算的参考值分享出来供参考但要注意具体项目还得实测。时钟源的RMS period jitter普通晶振大概在1到5ps量级好的差分时钟芯片做到0.1到0.5ps超低抖动专用时钟能到几十fs。PLL倍频时输出抖动大致按输入抖动的平方加上PLL自身抖动的平方再开根号同时乘以倍频比的影响。如果PLL环路带宽较窄输入的高频抖动会被滤掉一部分这一点在预算时可以利用。去耦电容的选型上我习惯在时钟芯片的每个供电脚旁边放一颗0.1μF加一颗小容值比如100pF的MLCC位置必须紧贴引脚回流路径尽量短。这个细节对高频抖动的影响比我预想的要大实测过好几次光是优化去耦布局就能把相位噪声谱上几MHz附近的底噪压低3到5dB。8.3 关于够用就好这件事最后说点个人体会。jitter这件事很容易陷入军备竞赛——看到别人用0.1ps的时钟自己也想上。但我实际做下来链路能不能稳定工作取决于jitter在UI里占的比例而不是绝对数值。一条UI很宽的低速链路用普通时钟完全够一条UI只有几十ps的高速链路才值得为超低抖动时钟付出成本。判断是否需要升级时钟我一般会先把当前链路的抖动预算列出来看看时钟那部分占了多少。如果占比不到20%那先动时钟的收益有限不如去优化信道或者去耦。反过来如果时钟占比超过一半那这颗时钟确实值得换。这个判断逻辑帮我省过不少不必要的器件升级费用。还有一点jitter测量这件事本身也会随着器件变好而变难。当一颗时钟的抖动已经降到示波器噪声底以下时你测到的其实是仪器不是器件。这是我踩过的一个坑——曾经花了很久去优化一颗时钟的抖动最后发现测出来的数字根本没变因为早就被测试系统的噪声底盖住了。从那以后我在评估低抖动器件时一定会先用一个已知抖动的参考源去标定整个测量链路的噪声底确认自己有没有测到地板然后再开始做优化。这个前置动作现在成了我所有jitter相关工作的固定第一步。