第四章:PLL与时钟生成——锁相环基本原理、压控振荡器、分频器、时钟抖动与相位噪声

各位同学,今天我们聊聊SerDes的心脏——时钟生成。说白了,没有稳定的时钟,高速数据就像没头苍蝇一样乱撞。我个人习惯把PLL(锁相环)比作一个“精准的节拍器”,它负责给整个系统提供统一的节奏。

4.1 锁相环基本原理:负反馈的艺术

PLL的核心思想其实很简单:让输出时钟的频率和相位,死死咬住输入参考时钟。怎么做到的呢?靠负反馈。

你想想看,一个典型的电荷泵PLL由五个基本模块组成:

  • 鉴频鉴相器(PFD):比较输入时钟和反馈时钟的相位差,输出“超前”或“滞后”信号。
  • 电荷泵(CP):把PFD的数字信号,转换成模拟电流。
  • 环路滤波器(LF):通常是低通滤波器,把电流信号平滑成稳定的控制电压。
  • 压控振荡器(VCO):根据控制电压,产生对应的输出频率。
  • 分频器(Divider):把VCO的高频输出,分频后送回PFD进行比较。

我在项目中遇到过一个问题:环路滤波器的带宽选得太宽,结果输出时钟上全是参考时钟的杂散。后来我学乖了,带宽一般选在参考时钟频率的1/10到1/20之间,这是个比较稳妥的经验值。

核心公式: Fout = N × Fref

其中N是分频比,Fref是参考时钟频率。这个公式贯穿整个PLL设计。

下面这张图,是我手绘的PLL基本结构,你一看就明白了:

PFD CP LF VCO ÷N F_ref (输入) F_out (输出) → 前向路径 → 反馈路径

4.2 压控振荡器(VCO):PLL的动力源

VCO是PLL里最关键的模拟模块。它的任务就是:电压进来,频率出去。常见的VCO结构有LC振荡器和环形振荡器两种。

LC-VCO:用电感电容谐振,相位噪声好,但占面积大。SerDes里通常用它做高频段。

环形VCO:用反相器链构成,面积小,调谐范围宽,但噪声差一些。我一般在中低频应用里用环形VCO。

我的经验:LC-VCO的调谐范围通常只有10%-20%,而环形VCO可以做到50%以上。选型时,先看你的频率覆盖要求,再看噪声预算。

VCO的增益(KVCO)是个重要参数,单位是MHz/V。增益太高,控制电压上的一点噪声就会被放大成很大的频率抖动。我曾经在一个项目中,KVCO设计得太高,结果电源纹波直接变成了时钟抖动,惨不忍睹。

4.3 分频器:频率的魔术师

分频器的作用,就是把VCO的高频信号降下来,好让PFD能跟参考时钟做比较。分频器主要分两类:

  • 整数分频:分频比N是整数,结构简单,但频率分辨率受限于参考时钟。
  • 小数分频:通过Σ-Δ调制器实现非整数分频,分辨率高,但会引入量化噪声。

SerDes里常用的是多模分频器(MMD),配合双模预分频器(比如8/9分频),可以实现很宽的分频比范围。嗯,这里要注意:分频器的功耗往往被低估,尤其是在高频段,它可能吃掉整个PLL一半的功耗。

避坑指南:我曾经在设计28Gbps SerDes时,分频器在高速模式下功耗超标,导致芯片局部过热。后来我改用CML(电流模逻辑)结构的分频器,才把功耗压下来。记住:高速分频器,慎用CMOS静态逻辑!

4.4 时钟抖动与相位噪声:时钟的“干净度”

时钟不可能是完美的。它总会有偏差,这就是抖动和相位噪声。两者其实是一回事——抖动是时域的描述,相位噪声是频域的描述。

时钟抖动:时钟边沿偏离理想位置的时间偏差。单位是ps或fs。SerDes里最关心的是随机抖动(RJ)和确定性抖动(DJ)。

  • RJ:由热噪声、闪烁噪声引起,呈高斯分布,无法消除。
  • DJ:由电源噪声、串扰、ISI引起,有界,可以优化。

相位噪声:在频域上看,就是载波旁边的噪声边带。单位是dBc/Hz。相位噪声在低频偏移处(比如1kHz-100kHz)主要由闪烁噪声贡献,高频偏移处(1MHz以上)主要由热噪声贡献。

我给大家一个经验公式:

RMS抖动 (ps) ≈ 相位噪声积分值 / (2π × F_carrier)

其中F_carrier是载波频率。这个公式在做链路预算时非常有用。

关键指标:对于25Gbps以上的SerDes,PLL的RMS抖动通常要求小于0.5ps。如果抖动超标,误码率(BER)会急剧恶化。我见过一个案例,抖动从0.3ps涨到0.8ps,BER直接从10-12跳到了10-6,完全不可用。

下面这张表,总结了不同抖动来源及其典型特征:

抖动类型 来源 分布特征 典型值(25Gbps)
随机抖动(RJ) 热噪声、闪烁噪声 高斯分布,无界 0.1-0.3ps RMS
确定性抖动(DJ) 电源噪声、串扰 有界,双峰分布 0.2-0.5ps pk-pk
周期抖动(PJ) 开关电源、参考杂散 正弦分布 0.1-0.4ps pk-pk

最后,我想强调一点:PLL的设计,本质上是在功耗、面积、抖动、锁定时间之间做权衡。没有完美的PLL,只有最适合你应用的PLL。我做了十几年高速接口,每次设计PLL,都会先问自己三个问题:

  1. 目标频率范围是多少?
  2. 允许的最大抖动是多少?
  3. 功耗预算有多少?

想清楚这三点,再动手画电路,事半功倍。

一个小技巧:在仿真PLL时,别忘了把电源噪声加进去。很多新手只仿理想电源,结果流片回来发现抖动翻倍。我习惯在VCO的控制电压上叠加一个10mV的100kHz正弦波,模拟开关电源的纹波,这样仿真结果更贴近实际。

好了,关于PLL和时钟生成,今天就聊到这里。记住:时钟是SerDes的命脉,把PLL吃透了,高速设计就成功了一半。

可可精品资料库