锁相环(PLL)基础与结构归纳总结

咱们搞CDR,绕不开锁相环。说白了,CDR的核心就是一个高性能的PLL。很多刚接触的同学会把PLL想得很玄乎,其实它就是一套闭环控制系统。目标只有一个:让输出信号的相位,死死地咬住输入信号的相位。

我个人习惯,把PLL拆成三块来看——检测、处理、输出。搞清楚这三块,PLL的门就摸到了。

PLL的核心构成

一个基本的PLL,包含下面几个关键模块。我最早在书上看到这些框图时,觉得挺简单。直到我在项目中调试一个10Gbps的CDR,才发现每个模块都有坑。

  • 鉴相器(PD):比一比输入和反馈的相位差。谁领先,谁落后,差多少。
  • 电荷泵(CP):把鉴相器输出的“谁领先”信号,转成实际电流。
  • 环路滤波器(LF):把电荷泵的脉冲电流,平滑成一个稳定的控制电压。
  • 压控振荡器(VCO):根据控制电压,调整输出频率。电压高,频率高;电压低,频率低。
  • 分频器(Divider):把VCO的高频输出分频,送回鉴相器做比较。CDR里有时不需要这个,或者用特殊的分频结构。
我的理解: 你可以把PLL想象成一个自动修正系统。VCO跑偏了,PD能检测到,然后LF去修正VCO,直到跑准为止。

鉴相器:从“谁快谁慢”说起

鉴相器是PLL的眼睛。眼睛不好使,后面再好也白搭。

常用的鉴相器有好几种,各有各的脾气:

类型 检测范围 优缺点 典型应用场景
异或门鉴相器 0 ~ 180° 线性好,电路简单;但只能在占空比50%的信号上用,且对谐波敏感 低速时钟恢复
鉴频鉴相器(PFD) -360° ~ +360° 既能鉴相又能鉴频,捕获范围大;但有死区问题 最常用的结构,频率锁定必备
Hogge鉴相器 0 ~ 1UI 适合高速数据,无频率牵引;但增益随数据密度变化 高速CDR的经典选择
Alexander鉴相器 0 ~ 1UI 数据边沿触发,无需参考时钟;但有一个次要的锁定点 突发模式CDR

说到PFD,有件事我一直记得。有一次在实验室,一个PLL怎么都锁不上,折腾了两天。后来发现是PFD的死区问题。输出相位差很小的时候,PFD根本检测不到。解决办法是在复位路径上加一个延迟,让PFD在零相位差时也能产生一个很窄的脉冲。

避坑指南: 我曾经在PFD设计里忽略了这个延迟,结果导致PLL输出抖动巨大。记住,PFD的死区是必须处理的,否则你的PLL稳定不了。

电荷泵与环路滤波器:充放电的艺术

电荷泵和环路滤波器,这两个家伙是绑在一起看的。电荷泵输出的是电流脉冲,环路滤波器把它转成电压。

电荷泵最关键的两个指标:

  • 充放电电流匹配:上拉和下拉电流必须相等。不相等,会产生相位偏移。
  • 开关速度:开关时间要远小于一个UI,否则会产生非理想效应。

环路滤波器的形式,直接影响PLL的动态响应。常见的二阶无源滤波器,包含一个电容和一个电阻串联,再并联一个电容。R和C的值,决定了PLL的带宽和相位裕度。

# 二阶环路滤波器传递函数近似
# F(s) = (1 + sRC) / (sC1(1 + sRC2))
# 其中 C1 是主导电容,C2 是高频滤波电容
# 这个公式我每次跑仿真前都会再默写一遍

压控振荡器(VCO):PLL的心脏

VCO把电压变成频率,是PLL里最核心、也最难做的模块。它的性能,直接决定了PLL的抖动和相位噪声。

我见过不少同学,在设计VCO时一味追求高频,结果忽略了相位噪声。你想想看,一个PLL的带内相位噪声,主要取决于参考时钟、PFD和CP的噪声。但带外相位噪声,基本由VCO决定。

常见的VCO类型:

  • LC VCO:相位噪声低,适合高频;但片上电感占面积大,调谐范围有限。
  • 环形VCO:面积小,调谐范围宽,多相输出方便;但相位噪声差一些。
  • 注入锁定VCO:用于时钟分配,锁定后相位噪声极低;但锁定范围窄。

归纳总结:PLL是如何工作的?

咱们过一遍完整的锁定过程。假设PLL刚开始,VCO的自由振荡频率是f0,输入参考是fref:

  1. PFD比较fref和分频后的反馈信号fdiv,发现频率不同。PFD输出Up和Down脉冲。
  2. 电荷泵根据Up/Down,往环路滤波器充放电。
  3. 环路滤波器电压Vctrl平滑变化,驱动VCO频率向fref靠近。
  4. 当频率拉近到一定程度,进入相位锁定阶段。
  5. 最终,反馈信号的相位和输入参考的相位,锁定在一个固定的相位差上(通常很小)。

这个过程,我习惯把它画成一个闭环的图,一眼就能看明白。下面这张图,是我自己总结的PLL信号流。

PLL基本结构信号流图 参考信号 PFD 电荷泵 环路滤波器 VCO 输出 分频器 ★ 核心闭环:PFD检测相位差 → 电荷泵充放电 → LF平滑电压 → VCO调整频率 → 分频后反馈回去

这张图把信号流和关键节点都串起来了。PFD是起点,也是终点——它比较的是输入和反馈。VCO是执行者,它负责产生输出。

锁定条件总结:
  • 频率必须相等(对于整数分频PLL,f_vco = N * f_ref)
  • 相位差稳定在一个固定值(不是零,但很小)
  • 环路增益足够,保证能捕获并跟踪

其实,PLL的设计就是在这几个模块之间做权衡。带宽大,锁定快,但噪声大。带宽小,噪声小,但锁定慢,且对VCO漂移反应迟钝。你想想看,是不是这个道理?

我在调一个10G CDR时,就吃过带宽的亏。一开始我追求极低的抖动,把带宽设得很窄。结果发现,只要温度一变,或者电源有点波动,PLL就失锁了。后来我适当放宽了带宽,虽然抖动增加了一点点,但系统稳定多了。工程嘛,就是个取舍。

滤波器的次极点: 设计二阶滤波器时,次极点电容C2一般取主电容C1的1/10到1/20。太大,相位裕度不够;太小,高频滤波效果差。