电荷泵基础:工作原理与基本结构
做 PLL 的都知道,电荷泵是连接数字域和模拟域的关键桥梁。我入行那会儿,第一次调锁相环,怎么调锁定时间都不对,后来发现是电荷泵输出阻抗不够,电流被环路滤波器电压“推偏”了。嗯,从那以后我才真正重视起电荷泵的每个细节。
电荷泵到底在干什么?
说白了,电荷泵就是一个受数字信号控制的充放电开关网络。它把鉴频鉴相器(PFD)输出的 UP 和 DN 脉冲,转换成流向环路滤波器(LF)的净电流。UP 有效就往 LF 里灌电流,DN 有效就往外抽电流。净电流积分成控制电压,再去调 VCO 的频率。
我个人习惯把电荷泵拆成三个核心部分来看:
- 电流源:提供稳定的充放电电流 ICP。
- 开关对:受 UP/DN 控制,决定电流流向。
- 输出节点:连接到环路滤波器,电压被积分。
典型结构:单端电荷泵
最常用的就是单端电荷泵,结构简单,但坑也不少。下面这张图能帮你快速建立印象:
图里我故意把上电流源和下电流源画成不同颜色,其实它们理想情况下电流大小必须严格相等。你想想看,如果 I_up ≠ I_dn,锁定时 VCO 控制电压就会周期性地波动,产生参考杂散。
关键指标:电流匹配
| 参数 | 影响 | 典型要求 |
|---|---|---|
| I_up / I_dn 失配 | 参考杂散、锁定频率偏移 | < 1% (对高频 PLL) |
| 开关导通时间差 | 电荷注入、时钟馈通 | 匹配到皮秒级 |
| 输出阻抗 | 电流随 Vcp 变化 | 理想无穷大 |
行为级模型:快速验证的好帮手
很多新手喜欢一上来就搭全晶体管电路,其实在系统级先把电荷泵行为模型跑通,能省很多时间。下面是我常用的 Verilog-A 描述,你可以在 Cadence 或 Spectre 里直接跑:
// 电荷泵行为模型
`include "disciplines.vams"
module cp_behav (out, up, dn, vdd, vss);
inout out;
input up, dn, vdd, vss;
electrical out, vdd, vss;
logic up, dn;
parameter real Icp = 100e-6; // 电荷泵电流 100uA
parameter real Tout = 1e-9; // 开关时间常数
real i_src;
analog begin
@(cross( V(up) - 0.5V, +1 ) or
cross( V(dn) - 0.5V, +1 ) or
cross( V(up) - 0.5V, -1 ) or
cross( V(dn) - 0.5V, -1 ))
begin
if (V(up) > 0.5V && V(dn) < 0.5V)
i_src = Icp; // 充电
else if (V(dn) > 0.5V && V(up) < 0.5V)
i_src = -Icp; // 放电
else
i_src = 0.0; // 高阻
end
I(out) <+ transition(i_src, 0, Tout);
end
endmodule
注意:行为级模型里我刻意忽略了电荷共享、时钟馈通等二阶效应。这些效应在晶体管级仿真中必须单独处理,但初期用行为模型锁定环路带宽、相位裕度,完全够用。
常见拓扑对比
除了单端结构,差分电荷泵也经常用在低噪声 PLL 中。我列个表帮你对比:
| 拓扑 | 优点 | 缺点 | 使用场景 |
|---|---|---|---|
| 单端电荷泵 | 结构简单、功耗低 | 对电源噪声敏感,匹配易受工艺影响 | 消费类、中低性能 |
| 差分电荷泵 | 共模抑制好,参考杂散低 | 面积大、静态功耗高 | 高速通信、射频 PLL |
| 自适应偏置电荷泵 | 工作范围宽,匹配自动校准 | 需要数字校准逻辑 | 宽带 PLL、SoC |
设计中的“结”与“解”
你可能注意到,电荷泵的设计里充满了折衷。比如:
- 电流越大,环路带宽越宽,但噪声贡献也变大。
- 开关尺寸越小,寄生电容越小,但导通电阻变大,影响高速响应。
- 使用 cascode 电流源能提高输出阻抗,但消耗的电压余度也大,在低压应用中会限制控制电压范围。
怎么破?我的思路是:先明确你的 VCO 调谐电压范围和锁相环锁定时间要求,反推电荷泵电流的最小值和输出阻抗要求。再根据工艺类型(比如 1.8V 还是 3.3V 器件)决定电流源结构。如果是深亚微米工艺,低压 cascode 或 regulated cascode 是常用选择。
嗯,这些内容已经够你搭起一个完整的电荷泵设计框架了。记住,电荷泵的“干净”程度直接决定了 PLL 的 jitter 和杂散性能。后面章节我们会具体看分频比和电荷泵电流的联合优化方法,到时候你会更理解为什么要在电流匹配上花这么多功夫。