2. 锁相环基础:PLL的经典结构

做CDR之前,咱们得先把锁相环(PLL)的底子打牢。PLL在CDR里扮演的角色,说白了就是那个产生稳定时钟、并对齐数据相位的大脑。很多做CDR的新手容易犯一个错,就是上来就盯着CDR本身看,结果环路的稳定性、带宽这些概念搞不清楚。我个人习惯是,先把经典的整数分频PLL结构吃透,再去碰CDR,你会发现很多概念都是相通的。

嗯,这里要注意,CDR和普通PLL最大的区别在于参考源不同。普通PLL参考是晶振,干净;CDR的参考是随机数据流,充满抖动。但基础框架是一样的,所以咱们这一章就先把经典结构说透。

内容核心:本章聚焦于PLL经典结构的四大核心模块——相位检测器(PD)、环路滤波器(LPF)、压控振荡器(VCO)和分频器(Divider),以及它们如何协同工作形成一个负反馈闭环。

2.1 PLL的经典结构:从框图到环路

先看一张最基本的PLL结构图。

PLL 经典结构框图 相位检测器 (PD / PFD) 环路滤波器 (LPF) 压控振荡器 (VCO) 分频器 (÷N) 参考时钟 误差脉冲 控制电压 输出时钟 反馈路径 (Fb) 反馈控制

这个图你看着眼熟吧?它就是一个典型的负反馈系统。参考时钟进来,PD比较它和反馈时钟的相位差,输出一个误差信号。这个误差信号经过LPF滤除高频噪声,变成平滑的直流控制电压。VCO的输出频率就被这个电压牵着走。分频器把VCO的高频输出降下来,再喂回PD做比较。

为什么会这样?因为环路锁定的时候,VCO的输出频率必须稳定在参考频率的N倍上,而且两者的相位差固定不变。我记得第一次调PLL的时候,拿着示波器看VCO的控制电压,那个毛刺就是消不掉,后来才发现是LPF的零点位置没选好。

2.2 相位检测器(PD):相位差的“翻译官”

PD是环路的“眼睛”。它把两个时钟信号的相位差,翻译成一个电信号。对于普通PLL,最常用的就是鉴频鉴相器(PFD)。它不光能检测相位差,还能检测频率差,这对锁定帮助很大。

PD类型 输出特性 死区问题 常用场景
XOR门 PD 线性,输出占空比反映相位差 无死区,但谐波多 纯时钟恢复,相位跟踪
触发器型 PD 具有记忆功能 有死区,需加延迟单元 低频PLL
PFD 线性,有频率检测能力 有死区,需要消除 绝大多数整数/分数PLL
Hogge PD (CDR) 线性,用于数据恢复 有特殊抖动 CDR 中的线性方案
个人经验:在CDR里,我很少直接拿PFD去比较数据和时钟,因为数据没有固定的频率参考。CDR里更常用的是Bang-Bang PD或者Hogge PD,它们都是针对随机数据流设计的。但PLL的PFD原理你一定要懂,它是理解所有PD的基础。

PFD的输出是两个脉冲(Up和Down)。“说白了”就是,如果参考时钟相位超前,就多打一个Up脉冲,让VCO加速;如果反馈时钟相位超前,就多打一个Down脉冲,让VCO减速。这两个脉冲的宽度差异,就代表了相位差。

这里有个避坑点。我曾经在高速PLL里用过一个快速PFD,结果发现当相位差很小时,PFD的输出脉冲太窄了,根本来不及打开后续的电荷泵开关。这就造成了“死区”现象——相位差明明有,但环路没反应。后来我在PFD的输出路径上加了一小段延迟,强制让脉冲至少保持一个最小宽度,死区问题立刻解决了。嗯,这个技巧在很多教科书里都有,但真正流片吃过亏才能记住它有多重要。

2.3 环路滤波器(LPF):系统的“大脑”与“心脏”

PD输出的信号是带有噪声的脉冲串,没法直接驱动VCO。LPF就是干这个的——把它平滑成干净的直流电压。更深一层看,LPF决定了整个PLL的瞬态响应和稳定性。你想想看,环路带宽、相位裕度、锁定时间,这些核心参数全是由LPF的阶数、零点、极点决定的。

  • 一阶无源RC滤波器:简单,但纹波大,锁定范围小。我基本只用在小规模的片上PLL里做个粗调。
  • 二阶无源RC滤波器:最常用。一个零点加两个极点,能很好地平衡稳定性和噪声。你带宽设宽了,锁定快但抖动大;设窄了,抖动小但锁定慢。这是一个基本的设计博弈。
  • 有源积分器:片上设计里很少用了,因为运放会引入额外的噪声和功耗。

我在项目中遇到过最头疼的事,就是LPF上的电容漏电。看着环路参数都算对了,仿真也过了,结果芯片实测锁定频率就是偏。排查了很久,最后发现是MIM电容在高温下漏电流变大,导致控制电压缓慢漂移。从那以后,我在设计LPF时一定会给电容旁边留一个测试点,方便流片后直接探针测量VCO的调谐电压。

实际教训:LPF的电阻会贡献热噪声,这个噪声会直接调制到VCO的振荡频率上,变成相位噪声。所以高通应用里,LPF的R值不能太大。我曾经为了省面积把电阻做大,结果锁相环的近端相噪直接差了3dB,得不偿失。

被动滤波器常用一种叫做“电荷泵锁相环”的结构。PD产生的Up/Down脉冲驱动一个电荷泵,电荷泵向LPF注入或者抽取电流。这个电流在LPF的阻抗上形成电压。这么设计的好处是,当你锁定后,PD输出的Up和Down脉冲完全相等,电荷泵既不充电也不放电,控制电压就能稳稳地定下来。这种结构非常干净,是教科书里都会推的经典。

在CDR里,LPF除了滤除噪声,还要承担一个额外任务——数据路径的抖动传递函数整形。这个我们先压着,后面章节会展开讲,你只要知道LPF在CDR里的角色比普通PLL更关键就行了。

2.4 压控振荡器(VCO):频率的“执行者”

VCO把控制电压转换成频率。对于CDR系统,VCO的性能直接决定了输出时钟的抖动质量。一个低增益(Kvco)的VCO对控制电压上的噪声更不敏感,但它的频率调谐范围会变小。这里面有一个明显的权衡。

我常用的VCO类型主要有两种:

  • LC-VCO:用电感和电容谐振。相位噪声极好,是高频区域(>3GHz)的首选。问题是电感片上面积大,而且是单频点谐振,调谐范围窄。
  • 环形VCO(Ring VCO):用反相器链构成。面积小,调谐范围宽。但噪声大,抖动高。在一些对功耗和面积要求严格的CDR里(比如低速接口),环形VCO用得挺多。
参数 LC-VCO 环形VCO
相位噪声 优秀 较差
面积 大 小
调谐范围 窄(<30%) 宽(>50%)
适用频率 高频(>3-5GHz) 中低频
功耗 中等 低到中等

VCO的建模通常用一个线性模型:f_out = f_free + Kvco * V_ctrl。Kvco的单位是Hz/V。这只是一个简化模型,实际VCO的非线性会导致输出频率偏离这个线性关系,尤其是当你用到调谐范围两端的时候。

我曾经在设计一个宽带CDR时,就踩过这个坑。控制电压接近电源轨时,VCO的Kvco急剧下降,导致环路增益变小。因为环路增益K=Kpd * Klpf * Kvco/N,如果Kvco变小,整个环路的锁定时间就拉长,抖动性能也变差了。后来我在VCO的调谐电路里做了分段补偿,让Kvco在整个范围内保持相对平坦。这件事让我明白了,不能只看VCO的标称Kvco,还得考虑它在工作范围内的变化。

对于VCO的输出,你还需要关注它的占空比。一个50%占空比的时钟对CDR的数据采样至关重要。许多VCO直接输出的占空比不是完美的50%,所以要加一个Duty-Cycle Corrector(DCC)来做修正。

好了,PLL的经典结构,从PD到LPF再到VCO,就是这个闭环的逻辑。等你理解了这个闭环的负反馈机制,你会发现CDR的多级环路和插控结构设计本质上和它是同一套思路,只不过参考源变了,检测对象变了。