第四节:电荷泵CP设计——锁相环的“心脏起搏器”

电荷泵,英文叫Charge Pump,简称CP。在PLL里,它连接了鉴频鉴相器(PFD)和环路滤波器(LPF)。说白了,它的任务就是把PFD输出的“谁快谁慢”这种数字信号,转成模拟电流,去给环路滤波器充电或放电。

我刚开始做PLL那会儿,总觉得CP不就是几个开关加电流源嘛,能有多难?后来被现实狠狠教育了一顿。电荷泵的设计好坏,直接决定了PLL的锁定精度、相位噪声和杂散性能。今天咱们就把它掰开揉碎了讲清楚。

4.1 电荷泵的工作原理

先看最基本的架构。一个典型的电荷泵包含两个电流源:一个上拉电流源(给环路滤波器充电),一个下拉电流源(给环路滤波器放电)。PFD输出的UP和DN信号分别控制这两个电流源的开关。

核心工作流程:

  • 当参考时钟领先反馈时钟 → UP信号有效 → 上拉电流源导通 → 电流注入环路滤波器 → Vctrl电压上升 → VCO频率加快
  • 当反馈时钟领先参考时钟 → DN信号有效 → 下拉电流源导通 → 电流从环路滤波器流出 → Vctrl电压下降 → VCO频率减慢
  • 当两者相位对齐 → UP和DN同时导通(或同时关断) → 净电流为零 → Vctrl保持不变

这里有个细节我特别想强调:UP和DN的导通时间必须精确匹配。你想想看,如果UP导通时电流是100μA,DN导通时只有90μA,那即使PFD输出了完全相同的脉冲宽度,净电流也不是零。这就是后面要讲的电流失配问题。

我画了一张电荷泵的基本结构图,方便你理解信号流向:

电荷泵基本结构图 PFD UP DN 电荷泵 (CP) I_up I_dn I_out 环路滤波器 (LPF) Vctrl →VCO I_out = I_up × UP_width - I_dn × DN_width 理想情况:I_up = I_dn,且开关时间完全匹配

4.2 电流失配问题——PLL杂散的罪魁祸首

电流失配,说白了就是上拉电流和下拉电流不相等。这个问题在深亚微米工艺下尤其突出。我记得有一次做65nm工艺的PLL,仿真时一切完美,结果流片回来测到输出频谱上出现了明显的参考杂散。查了整整两周,最后定位到是电荷泵的电流失配。

电流失配的根源:

  • 工艺偏差:PMOS和NMOS的迁移率、阈值电压天生就不一样。同样的偏置电压,产生的电流可能差20%以上。
  • 沟道长度调制效应:输出电压Vctrl变化时,电流源的输出阻抗不够高,导致电流随Vctrl变化。
  • 开关时序失配:UP和DN信号到达电荷泵的时间不同,或者开关管的导通/关断速度不一致。

⚠️ 我曾经踩过的坑:

有一次设计一个2.4GHz的PLL,我用了最简单的单端电荷泵结构。仿真时电流失配控制在1%以内,觉得稳了。结果流片回来,Vctrl电压在锁定点附近有周期性波动,导致输出频谱上出现了-45dBc的参考杂散。后来改成差分电荷泵结构,配合共模反馈,才把杂散压到-65dBc以下。

教训:不要迷信仿真结果。工艺角仿真只能覆盖部分情况,实际芯片里的局部失配、温度梯度、电源噪声都会让电流失配恶化。

解决电流失配的常用方法:

方法 原理 优缺点
共源共栅电流源 提高输出阻抗,抑制沟道长度调制 效果好,但需要额外电压余量
差分电荷泵 用差分结构抵消共模失配 面积大,功耗翻倍
动态电流匹配 用反馈环路实时校准电流 需要额外数字控制逻辑
开关时序优化 精确匹配UP/DN路径延迟 对版图布局要求高

4.3 电荷泵的噪声优化

电荷泵的噪声贡献,在PLL总噪声预算里往往被低估。我见过不少设计,VCO和参考源的噪声都优化得很好,结果整体相位噪声还是达不到指标。一查,原来是电荷泵的闪烁噪声在低频段拖了后腿。

电荷泵的主要噪声来源:

  1. 电流源的热噪声:宽频带白噪声,与电流大小和晶体管尺寸有关
  2. 电流源的闪烁噪声(1/f噪声):低频段占主导,与晶体管面积成反比
  3. 开关管的沟道噪声:开关切换瞬间产生的噪声
  4. 电源/地噪声耦合:通过电流源的偏置电路引入

💡 我个人习惯的噪声优化策略:

  • 增大电流源管尺寸:把PMOS和NMOS的沟道长度做到最小尺寸的3~5倍。面积大了,闪烁噪声自然就降下来了。代价是寄生电容变大,开关速度会慢一点。
  • 使用PMOS做上拉、NMOS做下拉:这是最基础的做法。PMOS的1/f噪声通常比NMOS小,因为空穴陷阱效应弱一些。
  • 加去耦电容:在电流源的偏置节点上加足够大的电容,滤除电源噪声。我一般加到10pF以上,具体看面积预算。
  • 开关管用最小尺寸:开关管只负责导通和关断,不参与电流产生。用最小尺寸可以减少开关噪声和电荷注入效应。

这里给一个简单的电荷泵电流源设计示例,你可以参考一下偏置电路的连接方式:

// 电荷泵电流源偏置电路(简化版)
// 假设VDD = 1.8V,目标电流Icp = 100μA

// 上拉电流源(PMOS)
MP1: 宽长比 = 20μm / 0.5μm  // 主电流源管
MP2: 宽长比 = 20μm / 0.5μm  // 共源共栅管(可选)
// 偏置电压:Vbp ≈ 0.6V(由外部偏置电路产生)

// 下拉电流源(NMOS)
MN1: 宽长比 = 10μm / 0.5μm  // 主电流源管(NMOS迁移率高,尺寸可小些)
MN2: 宽长比 = 10μm / 0.5μm  // 共源共栅管
// 偏置电压:Vbn ≈ 0.8V

// 开关管(最小尺寸)
MUP:  宽长比 = 0.5μm / 0.18μm  // 控制上拉
MDN:  宽长比 = 0.5μm / 0.18μm  // 控制下拉

你可能会问,为什么开关管要用最小尺寸?嗯,这里有个权衡。开关管大了,导通电阻小,开关速度快,但电荷注入和时钟馈通效应会更严重。我个人倾向于用最小尺寸,然后在版图上把开关管放在电流源管和输出节点之间,利用电流源管的寄生电容来吸收注入电荷。

噪声优化的另一个关键点:电荷泵的导通时间。PLL锁定时,PFD会输出一个很窄的脉冲(死区消除脉冲),让电荷泵短暂导通。这个脉冲宽度决定了电荷泵噪声对总相位噪声的贡献。脉冲越宽,电荷泵导通时间越长,噪声贡献越大。但脉冲太窄又会导致死区问题。我一般取200ps~500ps,具体看PLL的带宽和噪声预算。

总结一下电荷泵设计的核心要点:

  • 电流匹配:上拉和下拉电流的失配要控制在1%以内,否则参考杂散会超标
  • 输出阻抗:越高越好,减少Vctrl变化对电流的影响
  • 噪声:闪烁噪声是低频段的主要贡献者,用大尺寸晶体管压制
  • 开关速度:要快,但不能引入过多的电荷注入
  • 版图:对称布局,匹配走线,减少寄生

电荷泵的设计,说白了就是在速度、噪声、匹配和功耗之间找平衡。没有完美的方案,只有最适合你应用场景的方案。我做了这么多年PLL,每次设计电荷泵还是会反复仿真、调参、再仿真。这个模块虽然小,但牵一发而动全身,值得你花时间好好打磨。

可可精品资料库