4. Bang‑Bang 型 CDR:从架构到实战,我在项目中踩过的坑

Bang‑Bang 型 CDR,名字挺硬,其实工作方式很「粗暴」——它不盯着相位差有多小,只看「早」还是「晚」。早了就推一把,晚了就拉一把。嗯,就像开车时只打方向盘不盯角度,只要不偏就猛拧一下。我最早接触这玩意儿是在一个 USB 2.0 的片子调试中,当时被抖动折腾得够呛,后来才算摸透它的脾气。

4.1 架构:三个基本模块,一台二进制决策机器

说白了,Bang‑Bang CDR 的核心就三块:鉴相器(BBPD)、环路滤波器(LF) 和 可控振荡器(VCO/DCO)。没有复杂的模拟乘法器,全是二进制判决,所以特别适合数字工艺。

  • BBPD(Bang‑Bang 鉴相器):只输出 +1 或 -1,表示时钟相位偏晚或偏早。常见结构是 Alexander 型,用三个触发器采样过零点。
  • 环路滤波器:通常就是累加器+比例路径,对二进制序列做积分和比例缩放。我习惯在数字域实现,省面积。
  • 可控振荡器:可以是模拟 VCO,也可以是数字 DCO。数字域常用 LC 或环形振荡器,配合小数分频。

整个环路像一台见风就是雨的决策机器——每次相位比较只有「正」或「负」,然后立即矫正。你想想看,如果一个系统只带两位信息,设计能复杂到哪去?

Bang‑Bang CDR 架构框图 输入数据 BBPD (早/晚判断) 环路滤波器 (累加+比例) VCO / DCO 恢复时钟 反馈(相位比较) 重定时数据 核心特点:鉴相器输出只有 ±1,环路工作在「过零穿越」模式 适合高频、低功耗场景,但抖动性能受限于环路延迟

4.2 工作原理:一步到位,永远在振荡

Bang‑Bang CDR 的工作过程就是一个二进制搜索。每次数据跳变沿到来,BBPD 检查本地时钟采样点的位置:如果采样点在数据眼图中心偏右(即数据跳变先于时钟),输出 -1;如果采样点偏左(时钟先于数据),输出 +1。环路滤波器把这 +1/-1 累加,控制 VCO 调频。

为什么叫 Bang‑Bang?因为控制量只有两个方向,没有中间状态。好比开关电源里的 bang‑bang 控制,也是±1 切换。我曾经在一个 10Gbps 的 SerDes 项目中,看到环路稳定后时钟相位依然在有规律地「来回撞墙」——左右各一个采样点附近震荡,这就是极限环现象。

关键概念:极限环

由于反馈只改变方向,锁定后相位误差会围绕 0 电平整荡,幅度由环路零延迟和量化步长决定。这是 Bang‑Bang 型 CDR 的固有问题,不是 bug。

4.3 优缺点分析:简单粗暴的代价

优点 缺点
  • 结构极其简单,数字域实现方便
  • 工作频率高,适合 Gbps 以上速率
  • 对模拟器件非理想性容忍度高(不依赖精确鉴相曲线)
  • 功耗低,面积小
  • 抖动性能差,存在极限环
  • 锁定时间较长(尤其大积分时间常数下)
  • 对数据图案敏感(游程长度过长时容易失锁)
  • 环路延迟必须严格控制,否则引起高频振荡

💡 我个人的经验:如果项目对抖动预算要求低于 0.3UI(峰峰值),而且串扰不强,Bang‑Bang 型够用。千万别在光纤通信 OIF 标准那种超低抖动场景硬上。

4.4 实际项目中的选型考量

选不选 Bang‑Bang CDR,我通常会问自己三个问题:

  1. 数据速率有多高? 超过 5Gbps 时,线性 CDR 的模拟鉴相器会功耗剧增,Bang‑Bang 型优势明显。
  2. 抖动容忍度是否宽松? 如果系统允许 0.5UI 以上抖动,Bang‑Bang 没问题;若要求 0.1UI,还是考虑线性或混合型。
  3. 面积和功耗压力大吗? 消费电子、IoT 芯片经常为省面积选 Bang‑Bang——整个 CDR 可以写在一千门左右的 RTL 里。

另外,游程长度(run length)是个坑。我记得有一次调试 PCIe Gen3 的 CDR,数据流中出现连续 24 个相同 bit 后锁相环直接失锁。后来加了 DC 平衡编码(8B/10B),问题才解决。所以,如果你的链路没有保证最密跳变间隔(比如每 5 个 bit 至少有一次跳变),就要慎用 Bang‑Bang 型。

⚠️ 注意:环路滤波器的时间常数要做成可编程的。我遇到过在量产时因为 PVT 变异导致环路带宽漂移,锁定时间从 1μs 跳到 10μs。后来在寄存器里留了四位带宽配置位才搞定。

4.5 与线性 CDR 的对比:什么时候换赛道?

维度 Bang‑Bang 型 线性型
鉴相器输出 ±1(二进制) 模拟相位差(连续)
抖动性能 劣(极限环) 优(可逼近噪声基限)
功耗 低 中/高
设计复杂度 简单,全数字友好 需要模拟设计经验
适用场景 USB、HDMI、SATA、以太网多速率 光纤通信、数据中心、超低抖动链路

我个人习惯是:如果目标应用是消费类(比如 Type-C DP),闭眼选 Bang‑Bang;如果是 400G 光模块或者背板长距离,果断线性型。中间模糊地带(如 25Gbps 左右带重定时器)可以选混合型——既有 Bang‑Bang 的低功耗,又通过双路径抑制极限环。

总结一句话:Bang‑Bang CDR 是性价比之选,但别在抖动和锁定时间上太贪心。设计时留足余量,跑仿真看极限环幅度,再把环路延迟控制在 2 个时钟周期以内——这是我从三次流片失败中换来的教训。