环形振荡器基础

环形振荡器,说实话,是每个做时钟设计的人绕不开的基本功。我记得刚入行那年,导师扔给我一个课题:「用反相器链做一个能跑在 GHz 的 VCO」。那时候我连环形振荡器起振条件都搞不清楚,结果画了个偶数级反相器环,仿真出来纹丝不动——嗯,后来才明白,偶数级根本没法振荡。

这一章我们从最基础的原理讲起。你不用急着记公式,先理解那个「正反馈+延迟」的机制,剩下的自然就通了。

工作原理——奇数级反相器组成的「死循环」

一个最简单的环形振荡器,就是把奇数个反相器首尾相接,形成一个闭环。

  • 每个反相器输出和输入相位相反,等于 180° 移相。
  • N 级串联,总相移 = N × 180°。
  • 为了让闭环相移是 360°(也就是正反馈),需要 N 是奇数。
  • 当 N 为奇数,闭环相移 = 180° × 奇数 = 180° + k×360°,满足巴克豪森相位条件。

起振过程也很直观:刚上电时,每个节点电压都略有噪声。这个噪声经过一圈反相再延迟,幅度逐渐变大,最终形成稳定的方波或近似方波的振荡。你想想看,为什么必须是奇数?偶数级的时候,输出反馈到输入是同相,最后只会锁死在一个平衡态,不能振荡。我曾经在教学中遇到学生问:「那用 2 级反向器加一个电阻能不能振荡?」答案是:不能,除非你引入额外的相移元件(比如 RC),但那已经不属于纯环形振荡器了。

核心结论: 环形振荡器起振需满足两个条件 —— 闭环增益 ≥ 1(小信号),闭环相移 = 360°(或 2π)。奇数级反相器天然满足后者。

下图是三级环形振荡器的结构,每个反相器都贡献一段延迟 td。输出可以从任意一级引出,图中标记了三个阶段的波形传播方向。

三级环形振荡器结构 INV1 INV2 INV3 td td Vout 反馈 3 级环形振荡器:总延迟 = 3 × td,周期 T = 2 × 3 × td = 6td

个人经验: 我曾调试过一个 5 级环形 VCO,仿真波形总是不够陡。后来发现是每个反相器的负载电容不一致,导致每级延迟偏差很大。建议初学阶段先在版图里保证每段互连长度大致相等,否则频率和相位噪声都会受影响。

频率公式推导——从延迟算周期

推导频率公式其实很简单。你看整个环路,一个信号从 INV1 输入开始,经过 N 级反相器,再回到原点,总共经历了 N 次反相 和 N 段单元延迟 td。但由于反相器每级输出翻转一次需要两次通过同一个节点(比如从高到低,再从低到高),所以一个完整的振荡周期是 2 倍的总延迟。

用数学表达:

T = 2 × N × td
f = 1 / T = 1 / (2 × N × td)

其中 td 是单级反相器的平均传播延迟,单位是秒。N 是反相器级数,必须是奇数。

为什么要乘以 2?因为波形从高到低算半个周期,从低到高再算半个周期。你测量任意相邻反相器输出,会发现它们的波形刚好错开 td 的相位。

参数 含义 典型值(65nm CMOS)
N 反相器级数(奇数) 3,5,7,9…
td 单级传播延迟 10 ~ 50 ps(受负载和电源影响)
T 振荡周期 2N × td
f 振荡频率 1/(2N × td)

看到这个公式你就明白了:频率受两个因素控制——N 和 td。想调高频率就减小 N 或减小 td。但减小 N 有限制,最小就是 3 级;减小 td 则受工艺、电源、负载的限制。

警告: 我早期设计时忽略了一个坑——td 并不是固定值。电源电压下降、温度升高都会让延迟变大,频率随之下降。所以在实际产品中,纯环形振荡器必须搭配锁相环或 DLL 来稳定频率,否则温漂会让你抓狂。

延迟级数对频率的影响——「越少越抖,越多越慢」

级数 N 是环形振荡器最直接的设计自由度。我们来对比几个典型值:

  • N=3:频率最高,但每级延迟占比大,相位噪声通常较差(因为每级放大器都在噪声敏感区)。
    我记得一次做 10Gbps 时钟恢复,有人尝试用 3 级环振,结果抖动超标 3 倍。后来改成 5 级并优化每级电流,才勉强达标。
  • N=5:折中选择,频率适中,相位噪声比 3 级好不少。很多片上 VCO 默认用 5 级。
  • N=7 以上:频率较低,但每级延迟分摊到更多级上,每级噪声贡献被平均,相位噪声更优。适用于低频段、低抖动场景。

咱们用表格看得更清楚:

级数 N 相对频率(参考 N=3) 相位噪声(典型) 适用场景
3 1.0x 较差 高频、片内小信号时钟
5 0.6x 中等 通用 VCO,DLL 中常见
7 0.43x 较优 低噪声、低频锁相环
9 0.33x 优 基准源、超低抖动振荡器

你可能会问:「那能不能用 1 级或 2 级?」要记住,奇数级是铁律。1 级反相器就是一个简单反相器,没有正反馈,不会持续振荡;2 级相当于一个缓冲器环,锁死状态。只有 3 级以上才能稳定工作。我个人最常用的是 5 级或 7 级——既保证了足够的频率范围,又不至于让延迟级数太多导致面积和功耗膨胀。

避坑指南: 我曾经在一个项目中采用了 3 级环振来省面积,结果 tapeout 回来频率比仿真低了 15%。原因是后段寄生电容比预期大,每级 td 偏大。后来我习惯在仿真时预留 20% 的裕量,并优先选择 5 级设计,留出调谐空间。你可以把这个经验记下来——尤其是在先进工艺下,寄生参数偏差可能比你想象的大得多。