3. 分频比基本概念:整数分频与小数分频的实现方式
分频比是 PLL 环路里最直接的参数。说白了,它就是 VCO 输出频率与参考频率的比值。你以前可能觉得调分频比就是改一个寄存器,没什么好讲的。但真的上手做芯片,你会发现整数分频和小数分频这两种方案的天壤之别。我先给你把基本概念理清,再结合我踩过的坑来说。
3.1 整数分频:简单可靠,但天生有局限
整数分频,意思是分频比 N 是一个正整数,比如 2、4、8、100。频率关系就是:fVCO = N × fref。实现方式通常是一个可编程计数器,VCO 每来一个周期,计数器加 1,加到 N 后输出一个脉冲,然后复位重新计。
我在一个 2.4GHz 频段的芯片项目里第一次用整数分频器。当时觉得计数器嘛,译码逻辑写对就行,结果流片回来发现,计数器在分频比切换时有 glitch,直接让环路失锁。后来我加了同步清零和延时匹配,才算稳住。嗯,整数分频器看起来简单,但高速情况下组合逻辑的竞争风险不能忽视。
整数分频的核心限制:频率分辨率等于 fref。要想提高分辨率,只能降低 fref,但这会增大环路面积和锁定时间,或者让带内噪声恶化。
实现方式分类
| 类型 | 原理 | 典型场景 |
|---|---|---|
| 固定模计数器 | 简单的二进制/约翰逊计数器,分频比固定 | 低功耗、低速率时钟生成 |
| 双模预分频(÷N/÷N+1) | 预分频器 + 脉冲吞咽计数器,支持连续整数分频 | 高频 PLL,如 >2GHz 的 VCO 分频 |
| 多模分频器(MMD) | 级联的 2/3 分频单元,通过配置每个单元的分频比实现任意整数分频 | 宽带 PLL,要求覆盖很宽的频段 |
我自己最喜欢 MMD 结构,因为它模块化好,容易做可编程,而且功耗在高速时相对可控。但要注意,级联的延时累加会导致最高工作频率受限。
3.2 小数分频:用平均换取分辨率
整数分频的频率分辨率不够怎么办?小数分频登场。它的平均分频比可以是一个分数,比如 100.5、200.25。你不是真在每一周期就除以一个分数,而是让分频链在整数 N 和 N+1 之间快速切换,通过占空比来获得一个平均的分频比。
公式:平均分频比 = N + K / M,其中 K 是 0 到 M-1 的整数,M 是累加器的模数。比如 M=8,K=5,平均就是 N+0.625。
一个小经验:我建议初期仿真时先考虑 M 位宽。M 太小,频率步进不够细;M 太大,累加器和 ΔΣ 调制器的硬件开销会上去,而且噪声整形效果未必跟着提升。通常 M 取 16-24 bit 比较平衡。
三种主流实现方式
- 脉冲吞咽(Pulse-Swallow):在整数分频基础上增加一个吞咽计数器,每次分频链比整数多一个周期,从而实现小数。结构简单,但会产生固定模式的杂散。
我遇到过一个客户要求频率步进 10kHz,用 16 位累加器做脉冲吞,结果在偏移 10kHz 处出现很大的杂散,差点没过蓝牙认证。后来我换成 ΔΣ 调制才压下去。 - 累加器溢出(Accumulator-based):用一个 K 位累加器,每个参考周期加一次步进值,溢出时输出一个脉冲来切换分频链。这种实现容易集成,但杂散集中在参考频率的分数倍处。
- Σ-Δ 调制(Sigma-Delta Modulation):在累加器基础上加入 ΔΣ 噪声整形,把量化噪声推到高频,然后靠环路滤波器衰减掉。这是目前绝大多数小数 PLL 的标准方案。
注意:ΔΣ 调制器虽然效果好,但高阶调制(如 3 阶以上)可能产生极限环和 idle tones。我曾经在一个 8 位 ΔΣ 设计里遇到了低频 idle tone,导致 VCO 产生周期性抖动,最后不得不把调制器结构从 MASH 改成单环才能解。
3.3 整数 vs 小数:选择的天平
你在实际项目里怎么选?我个人列了一个对比表,每次流片前都对着看一遍。
| 维度 | 整数分频 | 小数分频 |
|---|---|---|
| 频率分辨率 | ≤ fref(粗) | ≈ fref / 2M(非常精细) |
| 带内相位噪声 | 低(无量化噪声) | 受 ΔΣ 噪声整形影响,高阶时可能比整数高几 dB |
| 杂散 | 主要在参考频率及其谐波 | 有分数杂散,需要 ΔΣ 和滤波器抑制 |
| 锁定时间 | 可优化(分频比变化小) | 分频比变化范围大时,锁定时间可能更长 |
| 电路复杂度 | 低(计数器 + 译码) | 高(累加器 + ΔΣ + 数字逻辑) |
| 典型应用 | 整数 N 频率合成,低噪声时钟 | 宽频带、高分辨率频率合成(如 5G 通信) |
你想想看,如果你的参考频率 100MHz,需要产生 2.4GHz 的时钟,整数分频比就是 24,分辨率 100MHz,根本调不了。用小数分频,你就能以 kHz 级步进任意调整。但代价就是噪声和杂散的管理。做小数 PLL 时,我每次都会花至少两周仿真 ΔΣ 调制器对相位噪声的贡献,并在版图上把数字部分的供电和模拟区离得远远的。
3.4 分频比实现的核心逻辑
下面这张图展示了整数分频与小数分频在 PLL 中的典型位置和内部结构。你可以看到整数分频器使用固定模计数器和脉冲吞咽,而小数分频器则靠 Σ-Δ 调制器控制分频链的高低切换。
从图上你也能看出来,整数分频的结构更直接,信号路径干净;小数分频多了一个数字控制块(ΔΣ 和累加器),这个模块在版图上一定要独立供电,否则数字开关噪声会通过电源衬底耦合到 VCO 的调谐节点上。我以前有个项目,小数分频部分的 ΔΣ 时钟用了 VCO 的分频时钟,恰好分频比使得噪声落在环路带内,结果相位噪声恶化近 15dB。后来我把 ΔΣ 的时钟换成参考时钟,问题才解决。
3.5 一些实际的选择建议
- 如果频率步进要求大于参考频率的 1/10:用整数分频,省心省力。
- 如果需要精细的频率分辨率(比如移动通信的信道选择):小数分频是唯一选择,但必须做好 ΔΣ 调制器设计。
- 如果系统对杂散极其敏感(如 5G 毫米波):我建议用整数分频 + 多个参考晶体或分数-N 加宽环路带宽来抑制杂散。
- 功耗优先的场景:整数分频的数字逻辑少,功耗明显优于小数方案。我做过一个低功耗 IoT 收发机,就用了整数分频,锁定时间虽然慢一点,但整体功耗只有小数方案的一半。
个人小本本:如果你决定用小数分频,不要急着上高阶 ΔΣ。先从 2 阶单环试起,验证杂散和噪声满足指标后再考虑 3 阶或 MASH。高阶调制对环路滤波器的设计要求更高,仿真时间也长。我一般会先用 MATLAB 建模,看 PSD 包络,再上 Verilog-A 做混仿。
好了,整数分频和小数分频的基本概念和实现方式就这些。记住,没有的好坏,只有最适合你应用场景的选择。在设计一开始就把分频比方案的噪声杂散预算算清楚,能省掉后面很多改版的时间。