1. 低抖动时钟基础:时钟抖动与相位噪声

做高速电路设计的朋友都知道,时钟是整个系统的“心跳”。心跳不稳,系统就容易出乱子。我在做第一颗 10Gbps SerDes 的时候,就吃过时钟抖动的亏——眼图闭合得那叫一个惨。从那以后我才真正明白,理解抖动和相位噪声,是做好低抖动 LC-VCO 的第一步。

1.1 什么是时钟抖动?

说白了,时钟抖动就是时钟边沿偏离了理想位置。你想象一下,一个完美的时钟应该在 0ns、10ns、20ns 准时跳变。但现实中的时钟,边沿总会“飘”那么一点点。这 10-20ps 的偏差,就是抖动。

抖动通常分三种类型:

  • 随机抖动(RJ):来自于器件热噪声、散粒噪声等,服从高斯分布。没法完全消除,只能通过设计尽量压低。
  • 确定性抖动(DJ):有固定规律,比如电源噪声、串扰、ISI 引起的。这个我们可以通过优化电路和版图来减小。
  • 周期抖动(Period Jitter):相邻周期之间的差值。这个在高速 SerDes 里特别重要。
  • 累加抖动(Accumulated Jitter):经过多个周期后误差会累积,PLL 应用最关心这个。
抖动类型分布特征主要来源设计关注点
随机抖动(RJ)高斯分布,无界热噪声、散粒噪声下限由噪声基底决定
确定性抖动(DJ)有界,双峰分布电源噪声、串扰、PSS 耦合可通过布局和滤波抑制
周期抖动(PJ)相邻周期差值VCO 相位噪声积分与 VCO 调谐线性度相关
累加抖动(AJ)随观测时间增长低频相位噪声PLL 环路带宽设计关键

我个人的习惯:设计初期先看 Period Jitter 和 Accumulated Jitter 两个指标。前者决定了信号采样的瞬时裕量,后者关系着系统能否锁定。我自己踩过的坑是——只顾着优化周期抖动,结果累加抖动量测出来超标了,还得回去改环路。

1.2 相位噪声——频域里的抖动

抖动是时域描述,相位噪声就是它的频域“兄弟”。为什么关心它?因为相位噪声可以直接告诉你噪声集中在哪个频率偏移处。理解相位噪声,对 LC-VCO 设计尤为重要。

相位噪声定义很直接:在载波频率一定偏移处,单边带噪声功率与载波功率之比。单位是 dBc/Hz。嗯,这里要注意,标准定义是单边带,所以通常看到的 L(f) 就是单边带相位噪声。

我记得刚入行那会儿,老工程师跟我说:“看相位噪声曲线就像看心电图,你能从中读出 VCO 的‘健康状况’。” 确实,近端噪声反映闪烁噪声和环路作用,远端噪声基本就是热噪声在摆荡。

相位噪声和抖动的关系,可以用公式表达:


RMS Jitter = (1/(2π·f₀)) · √(2∫_{f₁}^{f₂} 10^(L(f)/10) df)

式子里 f₀ 是载波频率,f₁ 到 f₂ 是你的积分带宽。这个积分把相位噪声曲线从频域转换到时域抖动。你做时钟产生芯片时,这个公式要烂熟于心。

核心结论:相位噪声对抖动的影响不是均等的。低频偏移影响大,高频偏移影响小。所以 PLL 的带宽选择就是在“抑制 VCO 近端噪声”和“抑制参考时钟远端噪声”之间做权衡。

1.3 抖动和相位噪声的来源

这些噪声是从哪冒出来的?你想想看,只要是器件就难免有噪声。LC-VCO 里主要的噪声源包括:

  • 电感热噪声:LC 谐振回路的电磁损耗,在 tank 两端产生噪声电压。
  • 变容管噪声:调谐用的 varactor 会有闪烁噪声上变频。
  • 负阻管噪声:交叉耦合对的沟道热噪声和闪烁噪声。
  • 电源噪声:VDD 上的纹波直接调制 VCO 频率。
  • 衬底噪声:数字电路开关通过衬底耦合过来的——这个问题我在混合信号芯片里碰到好多次。

我曾经犯过的错:在做一颗 8GHz LC-VCO 时,总觉得电源走线粗一点就没事了。结果测出来相位噪声在 100kHz 偏移处比预期差了 6dB。后来发现是电源上 10MHz 的纹波通过 varactor 直接调制了频率。从那以后我加了一层 LDO 和 RC 去耦,才把指标拉回来。

1.4 抖动对系统有什么影响?

你可能会问:差几个 ps 真能导致系统出错?答案是:能,而且后果很严重。来列几个我亲身经历的场景:

  1. 高速 SerDes 接收端:抖动大了,信号判决窗口变小,误码率飙升。
  2. ADC 采样:采样时钟抖动导致采样电压误差,SNR 直接下降。为什么?因为采样时间点一偏,采集到的信号幅度就不对了嘛。
  3. 射频发射机:相位噪声会恶化相邻信道泄漏比(ACLR),严重点会通不过频谱法规。
  4. 时钟数据恢复(CDR):抖动超过环路能跟踪的范围,锁相环就会失锁。

我记得有一次在调试 16Gbps NRZ 链路时,眼图睁开度只有 30%,始终找不到原因。后来用频谱仪一看,PLL 的带外相位噪声有一个明显的毛刺峰——是一个交换电源的开关频率刚好落在环路带宽外。换了 LDO 才搞定。这就是抖动影响系统的活生生的例子。

1.5 设计低抖动时钟的出发点

了解了抖动和相位噪声的来龙去脉,再看 LC-VCO 设计就清晰了。你的目标无非就是:在需要的频率偏移处,把相位噪声压到最低。

怎么做?我通常会从这几个角度入手:

  • 增大振荡摆幅:摆幅大了,信号功率大,同样的噪声下相位噪声就好。当然功耗是代价。
  • 优化 LC 谐振 tanks 的 Q 值:Q 值越高,等效并联电阻越小,热噪声也越小。
  • 选择合适的负阻跨导:gm 太大、太小都有问题。太大了噪声多,小了起振慢。
  • 电源和衬底的隔离:这个往往是成败的关键。我自己在 multi-core VCO 的设计中都会单独给 tank 和 buffer 做电源域分离。
  • 合理的版图布局:对称性、减少寄生、屏蔽耦合,这些都是硬功夫。

好,把这几个概念串起来,就是下面这张知识结构图。

低抖动时钟设计知识结构 低抖动时钟设计核心 时域:时钟抖动 频域:相位噪声 转换:抖动⇌相噪 周期抖动 累加抖动 单边带相噪 积分相噪 RMS Jitter 计算 噪声来源(设计需应对) 电感热噪声 有源器件闪烁噪声 电源/衬底噪声 对系统的影响与应对 SerDes:BER 恶化 ADC:SNR 下降 RF TX:ACLR 超标 CDR:失锁风险 设计对策:增大摆幅 · 提高Q值 · 优化gm · 电源隔离 · 对称版图

这张图清楚地展示了知识结构的三层递进:先去理解概念(时域抖动和频域相噪),再深挖来源(哪些电路模块是噪声大户),最后评估影响(在各种系统里会出什么问题)。每一次设计迭代,我都要在这三个层面来回检查。你后续的学习也会沿这个框架展开,一步步深入到 LC-VCO 的具体设计细节。