先分清两个能力:鉴相(phase detect)和鉴频(frequency detect)。
普通鉴相器(XOR 门、模拟乘法器、混频器)只输出一个与"相位差"相关的量,对频率差不敏感。这意味着什么?如果参考时钟和反馈时钟一开始频率差得很大,普通鉴相器给出的平均误差可能很小甚至为零,环路"看不见"该往哪个方向拉,自然无法保证锁定——这就是捕获范围窄的根源。
PFD 的核心价值:它同时对相位差和频率差敏感。当两个信号频率不相等时,PFD 输出的 UP/DN 脉冲宽度差会持续偏向某一侧,等效给出一个"方向正确、大小足够"的频率牵引信号;当频率拉近、只剩相位差时,它又退化成线性鉴相器。这种"先鉴频、后鉴相"的能力,保证了 PLL 从任意初始状态都能可靠锁定。
顺带一提,XOR 鉴相器的线性鉴相范围只有 ±π/2,而三态 PFD 的线性范围可达 ±2π,这也是 CP-PLL 相比传统乘法器 PLL 的一大优势。
三态 PFD 的标准实现极简,但每个细节都有讲究:
时序逻辑:fref 上升沿先到,第一个触发器置 1,UP=1;随后 fdiv 上升沿到来,第二个触发器也置 1,DN=1,与门输出高电平,把两个触发器同时复位,UP=DN=0。于是 UP 保持高电平的时间长度,正好等于 ref 领先 div 的时间差。
输出是三态信号,对应电荷泵的三种动作:
// 三态鉴相器 PFD 行为模型(Verilog-A)// tdel 是复位路径延迟——它不只是”延时”,而是消除死区的关键(见第四节)`include ”constants.vams”`include ”disciplines.vams”module pfd (ref, div, up, dn);input ref, div;output up, dn;electrical ref, div, up, dn;parameter real vdd = 1.0;parameter real tdel = 200.0e-12; // 复位延迟:填死区integer up_q, dn_q;an alog begin@(initial_step) beginup_q = 0; dn_q = 0;end@(cross(V(ref) - vdd/2, +1)) up_q = 1; // ref 上升沿:UP 置 1@(cross(V(div) - vdd/2, +1)) dn_q = 1; // div 上升沿:DN 置 1if (up_q && dn_q) begin // 两者都高:复位up_q = 0; dn_q = 0;end// transition 让 UP/DN 经 tdel 延迟才到达输出,等效复位路径延迟V(up) <+ transition(up_q * vdd, tdel, tdel);V(dn) <+ transition(dn_q * vdd, tdel, tdel);endendmodule
把 UP 的平均电压减去 DN 的平均电压,就得到随相位差变化的鉴相特性。理想三态 PFD 在 ±2π 范围内是线性的,这条曲线的斜率就是鉴相增益 Kpd(单位 V/rad)。
但真实世界里,这条曲线在零点附近不是理想直线——这就是死区。
死区的物理来源:当相位差趋近零时,UP 和 DN 的脉冲宽度都极窄。如果窄到电荷泵开关来不及充分打开/关闭(充放电电流还没建立起来,脉冲就结束了),那么零相位附近环路增益会塌陷——相位差很小的时候,环路反而"看不见"误差。
我用 MATLAB 实测跑了一个死区模型,参数是:电荷泵电流 250 µA、参考频率 25 MHz、死区宽度 200 ps。结论:死区对应的相位差约 ±1.80°,占参考周期的 0.5%。


死区的后果是灾难性的:环路在锁定点附近增益丢失,输出相位在一个小窗口内随机游走,表现为近载波相噪鼓包和杂散——这正是很多 PLL"锁定了但相噪曲线近载波处鼓起来"的原因。
怎么治?在复位路径上串一个复位延迟(几百 ps),故意让 UP 和 DN 在相位差为零时也有一个最小脉冲宽度,保证电荷泵每个周期都被充分打开一次,把死区"填平"。代价是:这个最小脉冲宽度本身会贡献一点参考杂散,所以延迟值要折中。
这里有个面试常问的点:复位延迟为什么不能太长?因为复位延迟撑出的"最小脉冲"在锁定后依然存在,它等效于一个固定的相位误差注入,直接变成参考杂散。所以死区消除和杂散抑制是一对矛盾,延迟值要在两者之间取平衡。
PFD 是 PLL 的"裁判":把 ref 与 div 的时间差翻译成 UP/DN 两个数字信号,交给电荷泵转成电流,推动环路锁定。理解它的鉴频鉴相双重能力、三态输出、以及死区的物理来源和复位延迟的折中,是理解整个 CP-PLL 动态行为的第一步。
下一篇顺着信号流讲电荷泵 CP——裁判举了手,执行者怎么发力,以及它的电流失配为什么直接变成杂散。