4. PLL 基本原理与相位检测器
这章我们聊聊 PLL 的核心。说白了,CDR 的锁定过程,本质上就是个 PLL 行为。你把它弄明白了,CDR 的一大半问题就迎刃而解。
4.1 PLL 的三个核心组件
PLL 没那么玄乎。我刚开始接触时,觉得这玩意儿特复杂。后来发现,就三个东西串在一起:鉴相器、环路滤波器、压控振荡器(VCO)。有时再加个分频器,但 CDR 里通常不用。
这三个器件构成了一个负反馈系统。目标?让 VCO 输出的时钟,和输入数据的边沿对齐。相位差为零,就是锁定状态。
我个人的理解方式很简单:
- 鉴相器(PD):负责量差距有多大。它输出一个误差信号。
- 环路滤波器(LF):负责决定怎么调。它滤掉高频噪声,只留下控制电压的变化趋势。
- VCO:负责执行调整。它根据控制电压改变输出频率。
我见过不少新人,把 PLL 当成一个纯电路块来调试。不对,你应该把它当成一个控制系统来看待。控制理论的那些概念,在这里全都用得上。
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 在每个阶段的表现完全不一样。
- 频率牵引阶段:VCO 的初始频率和输入数据速率差很远。这时 PD 的输出是个拍频信号,负责把 VCO 频率拉到捕获范围内。你想想看,这时环路带宽如果设小了,牵引过程就会很慢,甚至拉不进去。
- 相位捕获阶段:频率基本对上后,PD 开始输出相位误差信号。这个阶段,PD 的增益决定了捕获速度。我记得有次在 28nm 项目里,就是因为 PD 增益不足,导致锁定时间超过了设计要求,后来只好调整了 PD 的偏置电流。
- 锁定保持阶段:锁定后,PD 主要处理残余的相位噪声和抖动。这时,PD 的死区问题就暴露出来了。如果有死区,环路会对小抖动“睁一只眼闭一只眼”,然后产生时钟和数据之间的累积相位偏移。
我个人的调试习惯:先看锁定后的 PD 输出波形。如果它是一条干净的直线,那说明 PD 和环路状态都挺正常。如果上面有很多毛刺或者周期性的突起,那得先怀疑 PD 有死区,或者环路带宽没设对。
4.5 一个实战案例分析
给你讲个我实际遇到的事。去年调一块 16Gbps 的 CDR 芯片,用的是 II 型 Alexander PD。流片回来,发现锁定时间特别长,有时甚至锁不上。
我开始排查。先看 PD 的增益曲线,测出来发现斜率不对,比仿真小了将近 30%。这就奇怪了,为什么会这样?
后来查来查去,发现是版图里 PD 的复位信号线上有个很长的走线,寄生电容过大,导致复位脉冲展宽,把有效相位比较时间给“吃”掉了。说白了,PD 还没反应过来,比较窗口就已经关了。
解决方法?在复位路径上加了个反相器链,重新整形脉冲宽度。改版回来,锁定时间从 20μs 降到了 3μs。这一版就过验证了。
嗯,这里要注意:PD 的时序,尤其是复位和采样点的相对关系,在物理实现时一定算清楚。仿真跑得再好,版图上的寄生效应也能把你的 PD 搞残。
我个人有什么建议?高速 CDR 设计,别光盯着架构。PD 的物理设计和环路带宽的折衷同样重要。这两样做好了,锁定过程就顺了。至于怎么折衷,我们后面章节细聊。