4. PLL 基本原理与相位检测器

这章我们聊聊 PLL 的核心。说白了,CDR 的锁定过程,本质上就是个 PLL 行为。你把它弄明白了,CDR 的一大半问题就迎刃而解。

4.1 PLL 的三个核心组件

PLL 没那么玄乎。我刚开始接触时,觉得这玩意儿特复杂。后来发现,就三个东西串在一起:鉴相器、环路滤波器、压控振荡器(VCO)。有时再加个分频器,但 CDR 里通常不用。

这三个器件构成了一个负反馈系统。目标?让 VCO 输出的时钟,和输入数据的边沿对齐。相位差为零,就是锁定状态。

我个人的理解方式很简单:

  • 鉴相器(PD):负责量差距有多大。它输出一个误差信号。
  • 环路滤波器(LF):负责决定怎么调。它滤掉高频噪声,只留下控制电压的变化趋势。
  • VCO:负责执行调整。它根据控制电压改变输出频率。

我见过不少新人,把 PLL 当成一个纯电路块来调试。不对,你应该把它当成一个控制系统来看待。控制理论的那些概念,在这里全都用得上。

PLL 基本结构与锁定流程 PLL 基本结构与锁定流程 输入数据 鉴相器 (PD) 检测相位误差 环路滤波器 (LF) 确定环路带宽 VCO 输出恢复时钟 反馈控制回路 恢复时钟输出 锁定过程:频率牵引 → 相位捕获 → 环路锁定 → 跟踪保持

4.2 相位检测器的两种类型

相位检测器是 PLL 的“眼睛”。它好不好,直接决定了整个 CDR 能做成什么样。在我的项目中,选错 PD 类型是新人最常犯的错误。我们来拆开看看。

4.2.1 I 型鉴相器(乘法型)

I 型 PD,说白了就是个模拟乘法器。你把输入信号和 VCO 输出信号乘起来,然后低通滤波,得到的是一个和相位差成正比的直流电压。

  • 优点:线性范围宽,没有死区。在小信号情况下,增益几乎是恒定的。
  • 缺点:对输入信号幅度敏感。信号抖一抖,增益就跟着变。这在 CDR 里是个大麻烦。
  • 输出特性:余弦函数。锁定在相位差 90° 的位置。

我曾经踩过一个坑:在某 12Gbps 的 CDR 项目中,前级 EQ 的输出摆幅波动比较大。I 型 PD 的增益跟着摆幅跑,结果环路带宽忽宽忽窄,瞬间抖动完全压不住。后来换成了 II 型,才稳住。

4.2.2 II 型鉴相器(边沿触发型)

II 型 PD,现在 CDR 的主力。它不关心信号有多大,只关心边沿在哪儿。典型的实现就是 Hogge 结构或者 Alexander 结构。

  • 优点:对信号幅度完全免疫。你信号掉个 6dB,增益还是那么回事。这就很稳。
  • 缺点:存在死区。当相位误差极小,比如小于几皮秒时,它可能检测不到。
  • 输出特性:S 曲线。线性范围通常集中在 ±π/2 之内。

为什么会存在死区?II 型 PD 靠信号的跳变沿来工作,跳变沿不够陡,或者触发器的建立时间不够,它就可能错过这个边沿。嗯,这里你要特别注意。解决死区的办法,通常是在 PD 后面加一个很小的延迟单元,把死区时间“洗掉”。

4.3 相位检测器对比:一张表说清楚

我把这两种 PD 的核心差异整理成了一张表。你调试时可以对照着看。

对比项 I 型 PD(乘法型) II 型 PD(边沿型)
输出特性 余弦曲线,线性范围较宽 S 曲线,线性范围窄
幅度敏感度 敏感,增益随输入摆幅变化 不敏感,增益稳定
死区问题 无天生死区 存在,需要额外电路规避
速度上限 受限于乘法器带宽 受限于触发器的 \( T_{setup} \)
CDR 适配性 差,通常用于低频 好,是高速 CDR 首选
锁定点 90° 相位差 0° 相位差(和边沿对齐)

4.4 PD 在锁定过程中的角色

CDR 的锁定过程,不是一蹴而就的。它分几个阶段,PD 在每个阶段的表现完全不一样。

  1. 频率牵引阶段:VCO 的初始频率和输入数据速率差很远。这时 PD 的输出是个拍频信号,负责把 VCO 频率拉到捕获范围内。你想想看,这时环路带宽如果设小了,牵引过程就会很慢,甚至拉不进去。
  2. 相位捕获阶段:频率基本对上后,PD 开始输出相位误差信号。这个阶段,PD 的增益决定了捕获速度。我记得有次在 28nm 项目里,就是因为 PD 增益不足,导致锁定时间超过了设计要求,后来只好调整了 PD 的偏置电流。
  3. 锁定保持阶段:锁定后,PD 主要处理残余的相位噪声和抖动。这时,PD 的死区问题就暴露出来了。如果有死区,环路会对小抖动“睁一只眼闭一只眼”,然后产生时钟和数据之间的累积相位偏移。

我个人的调试习惯:先看锁定后的 PD 输出波形。如果它是一条干净的直线,那说明 PD 和环路状态都挺正常。如果上面有很多毛刺或者周期性的突起,那得先怀疑 PD 有死区,或者环路带宽没设对。

4.5 一个实战案例分析

给你讲个我实际遇到的事。去年调一块 16Gbps 的 CDR 芯片,用的是 II 型 Alexander PD。流片回来,发现锁定时间特别长,有时甚至锁不上。

我开始排查。先看 PD 的增益曲线,测出来发现斜率不对,比仿真小了将近 30%。这就奇怪了,为什么会这样?

后来查来查去,发现是版图里 PD 的复位信号线上有个很长的走线,寄生电容过大,导致复位脉冲展宽,把有效相位比较时间给“吃”掉了。说白了,PD 还没反应过来,比较窗口就已经关了。

解决方法?在复位路径上加了个反相器链,重新整形脉冲宽度。改版回来,锁定时间从 20μs 降到了 3μs。这一版就过验证了。

嗯,这里要注意:PD 的时序,尤其是复位和采样点的相对关系,在物理实现时一定算清楚。仿真跑得再好,版图上的寄生效应也能把你的 PD 搞残。

我个人有什么建议?高速 CDR 设计,别光盯着架构。PD 的物理设计和环路带宽的折衷同样重要。这两样做好了,锁定过程就顺了。至于怎么折衷,我们后面章节细聊。