2. CDR系统架构:三大主流方案对比
CDR的核心任务就一个——从乱糟糟的串行数据里把时钟“揪”出来,同时保证数据采样点对准眼图正中间。市面上主流的CDR架构就那么三种:PLL型、相位插值型、过采样型。我当年刚接触SerDes时,总觉得它们差不太多,直到项目里频频踩坑才明白——选错了架构,后面调试能多花两个月。
下面这张图是我自己整理的三类CDR的总览框图,咱们先看个全貌,再逐个拆开讲。
2.1 PLL型CDR —— 经典的模拟/数模混合方案
PLL型CDR说白了就是一个锁相环,只不过鉴相器换成了能同时检测相位和数据的类型。结构上它包含鉴相器(PD)、环路滤波器(LF)和压控振荡器(VCO),环路的反馈机制让VCO输出时钟自动跟踪输入数据的跳变沿。
工作要点:鉴相器同时输出相位误差和数据的早期/晚期信息,经过滤波后控制VCO频率,最终锁定在数据平衡点。锁定时,VCO相位与数据边沿对齐,时钟上升沿正好采在数据眼图中央。
个人经验:我曾在10Gbps项目中用过纯模拟PLL型CDR,锁定速度很快,但VCO的相位噪声和电源敏感度让我吃了不少苦头。后来换成数字辅助的“半模拟”环路,调试起来就轻松多了。
PLL型CDR的优点很明显——环路等效为一个低通滤波器,对高频噪声有抑制,抖动容忍度好。缺点是VCO面积大,容易受工艺和温度影响,而且锁定时间较长。适合中低速率(<25Gbps)的串行链路,尤其是对抖动要求高的场景。
2.2 相位插值型CDR —— 全数字的灵活方案
相位插值型CDR是近年来高速SerDes(如PCIe、USB4)的最爱。它不直接控制VCO,而是用一个多相时钟发生器(比如DLL或PLL产生N相时钟),再通过数字控制的相位插值器(PI)在相邻相位之间“插”出所需相位。
工作流程一般是:
- 数据进入bang-bang鉴相器,产生超前/滞后标志。
- 数字环路滤波器累加误差,生成PI控制码。
- PI根据控制码在两个邻近时钟相位之间做线性或非线性插值,输出恢复时钟。
- 恢复时钟直接采样数据,同时反馈给鉴相器形成闭环。
小心死锁! PI型CDR的鉴相器通常只有1bit量化(bang-bang),环路本质上是非线性的。我曾经在64Gbps项目中碰到PI控制码在边界来回跳的问题,最后不得不加一个数字锁定检测器做防颤。
优点:全数字实现,可移植性好;锁定时间可控;面积小。缺点:PI的线性度直接决定抖动性能,高精度PI设计难度大;需要多相时钟源,功耗和噪声折衷。
2.3 过采样型CDR —— 无反馈的开环结构
过采样型CDR的思路很直白——用N倍于数据率的时钟把数据采多份,然后从采样结果里“猜”出数据的最佳判决点。它没有反馈环路,属于开环结构。
实现时通常需要一个多相时钟发生器(例如DLL产生N相时钟),每个相位驱动一个采样器,在同一个数据符号周期内得到N个样本。然后数字逻辑通过边缘检测(找跳变)和多数判决(取中间样本)输出恢复数据和时钟。
| 参数 | PLL型 | 相位插值型 | 过采样型 |
|---|---|---|---|
| 环路反馈 | 是 | 是 | 否 |
| 锁定时间 | 慢(μs级) | 中等(百ns级) | 极快(ns级) |
| 抖动容忍度 | 好 | 中 | 差(受采样精度限制) |
| 面积/功耗 | 大(VCO占大头) | 中 | 小(但N倍采样器面积大) |
| 典型速率 | <25Gbps | 25~112Gbps | <10Gbps(或用于SERDES测试) |
适用场景:过采样型CDR常用于低速接口(如SPI、USB 2.0)或测试设备中,不需要锁相环,启动即用。但在高速串行链路中,由于过采样倍数无法做高(功耗限制),实际很少用于主收端。
我早期做过一个6Gbps的接收器测试芯片,用了3倍过采样。那时候不懂事,觉得开环结构简单,结果发现采样器的亚稳态和时钟偏斜让数据恢复一塌糊涂。说白了,过采样型CDR的设计难点不在架构,而在模拟前端的一致性。