SerDes 接收端:CDR 时钟恢复、CTLE/FFE/DFE 均衡与眼图
更新时间:2026-09-19。前置:SerDes 8b/10b、PLL 基础、DLL、片上信号完整性。PCIe/USB3/SATA/以太网/SerDes 链路都不送独立时钟,且信号经 PCB 走线/背板/线缆后高频被衰减、眼图闭合,接收端必须自己恢复时钟并把眼重新「张开」。
一、两个核心问题
- 没有随路时钟:接收端要从有抖动的数据跳变里恢复出与发端同频同相的采样时钟——CDR(Clock and Data Recovery)。
- 信道使眼图闭合:实际信道是低通(趋肤效应、介质损耗随频率升高),高频分量衰减使边沿变缓,前一个 bit 的残余尾巴叠加到当前 bit 上——码间干扰 ISI(Inter-Symbol Interference),加上反射、串扰、噪声,数据眼在接收端闭合。需要**均衡(equalization)**补偿。
二、CDR:从数据恢复时钟
原理(PLL 型)
bash
接收数据 ──► 相位检测器(Bang-bang 或 Alexander) ──► 环路滤波 ──► VCO/PI
▲ 比较「数据边沿 vs 当前采样时钟」的相位 │
└──────────────── 恢复时钟(多相) ◄──────────────────────────────┘
恢复时钟再去 D 触发器采样数据 → 判决 0/1- 相位检测器判断采样时钟相对数据是超前还是滞后:
- Bang-bang / Alexander(Alexander phase detector):用前后两次采样(数据眼中央 + 边沿处)比较,只输出「早/晚」符号,数字实现常见(PCIe 等),非线性但稳定。
- Hogge 型(线性,输出与相位差成比例)。
- 环路滤波后驱动 VCO(模拟 PLL 型 CDR)或相位插值器 PI(DLL/PI 型,从多相时钟里插值旋转相位,见 DLL 多相时钟),把采样点锁到数据眼中央。
- 因为不是每个 UI 都有跳变(如 8b/10b 仍可能有较长无沿段),CDR 靠编码保证足够跳变密度(8b/10b 最长连 0/1 受控,见 8b/10b);64b/66b、128b/132b 靠加扰,CDR 需一定低频跟踪容忍长无沿。
抖动(jitter)
- RJ 随机抖动:高斯、无界(热噪声),尾部决定误码率。
- DJ 确定性抖动:有界,来自码型(DCD 占空比失真、ISI 数据相关)、周期性 PJ(开关电源/串扰)、BUJ 有界不相关。
- CDR 环路带宽折中:带宽高能跟踪输入低频抖动(跟着抖动走,对接收有利)但会把自己的 VCO 噪声/恢复时钟抖动带进来;带宽低则不能跟踪低频抖动。标准给「抖动传输/容限/容忍」曲线(jitter transfer/tolerance)。
- 采样时钟和数据异步关系也可通过弹性缓冲/FIFO 吸收收发时钟频率差(见 CDC FIFO、PCIe SKP 有序集合)。
三、均衡:对抗信道损耗
信道对高频衰减更重,均衡思路是「在某处提升高频,反向补偿信道」:
1. 发送端 FFE / 去加重(Tx equalization)
- 发送时对当前 bit 与之前 bit 做加权(FIR 前馈),或常见的 de-emphasis(去加重):第一个跳变位发全幅,后续同电平位降低幅度,等效相对提升高频跳变,预补偿信道把高频吃掉的部分(见 USB3 去加重、PCIe 训练协商系数)。
- 也有 pre-cursor(在跳变前一拍先反方向预拉)。优点:在信道衰减之前补偿、不放大接收噪声;缺点:受发送摆幅限制,过补偿也有害。系数在链路训练时协商。
2. 接收 CTLE(连续时间线性均衡)
- 接收端的高通形状模拟放大器:在高频提供峰值(peaking)抵消信道低通,把被压平的高频重新抬起、张开眼。
- 连续时间(不采样),结构简单、可自适应;但在放大信号高频的同时也放大高频噪声,增益过大会把噪声也抬起、信噪比反而差,需配合自适应(根据眼开/频谱或训练序列调 peaking)。
- 常提供若干档(可编程 zero/pole/增益),在训练时选择。
三、接收 DFE(判决反馈均衡)
- 前面 bit 经信道留下的拖尾(ISI)是已知的(一旦正确判决了前几位),DFE 用反馈把前 1、2、…、N 个判决结果乘以系数从当前输入中减去,消除后游标 ISI:
bash
输入 → 求和节点(减去前面判决×系数) → 采样判决器 → 输出 bit
▲ │
└ h1..hN 反馈抽头 ◄────────┘(判决结果反馈)- 关键优点:DFE 减去的是已经判决的干净数字,不放大噪声;对严重损耗、串扰(用 DFE 甚至交叉串扰消除)有效,高速 PCIe/112G SerDes 必备。
- 代价与难点:第一条反馈路径必须在一个 UI 内完成减法和判决(强时序约束),需要「unrolled/speculative DFE」等高速结构;系数要自适应(用 LMS 等根据判决误差训练,常借助训练 pattern 或盲调);判决错误会被反馈传播(error propagation);时序违例直接不收敛。
均衡组合
典型高速链路 = Tx FFE(预/去加重)+ Rx CTLE(抬高频)+ Rx DFE(去残余后游标),在**链路训练(link training)**阶段收发协商 Tx 系数、Rx CTLE/DFE 自适应,使接收眼在某个 BER 目标(如 1e-12)下张开(见 PCIe LTSSM 的 recovery equalization)。
四、眼图、BER 与自适应
- 眼图:把无数 UI 叠加在一个单位间隔上,眼宽(水平=时间裕量)、眼高(垂直=电压裕量)、眼开面积反映时序+噪声裕量;CDR 要落在眼最开处采样。
- BER 浴盆曲线(bathtub):扫描采样相位,统计误码率,得到有效眼宽(BER<目标)。
- 自适应:用训练序列(已知 PRBS)相关/LMS 调均衡系数;运行期可用「eye monitor/边缘采样」后台监测眼,触发重训练(温度/通道变化)。
五、常见的坑
- 只靠加大发送摆幅:高损耗下加摆幅不能恢复高频,反而 EMI/串扰,要均衡组合。
- 去加重过补偿:低频被压太狠、眼也关,系数必须按信道训练而非写死。
- CTLE peaking 过大:高频噪声一起放大,SNR 下降。
- DFE 第一抽头时序不收敛:反馈超 1 UI,需 unrolled 结构,否则误码。
- CDR 带宽选错:太宽引入 VCO 噪声,太窄跟不上低频抖动/SSC;要对照抖动容限曲线。
- 长无跳变码型失锁:编码/加扰不充分、CDR 低频保持差时漂走。
- 均衡自适应用错误 pattern:未用足够 PRBS/未覆盖最坏码型(ISI 是数据相关的),训练通过但实际误码。
- 忽略串扰:DFE/CTLE 只补偿本通道插损,强耦合串扰需专门处理/隔离(见 SI)。
- 参考时钟/SSC 不匹配:CDR 需容忍 SSC,弹性缓冲深度不够会溢出(见 PCIe SKP)。
- 判决器亚稳:眼太小采样器亚稳,要先均衡开眼。
- 温度/电压漂移不重训:训练点温漂后眼闭合,需后台监测重训练。
- 只看仿真不看硅后训练:信道模型与实际偏差大,要依赖 BER/眼图实测和自适应。
相关与延伸
编码跳变密度见 8b/10b;CDR 时钟部件见 PLL、DLL;训练协商见 PCIe LTSSM、USB3 PIPE;DDR 均衡类比见 LPDDR PHY 训练。
总结
高速 SerDes 接收端要同时解决「无随路时钟」和「信道低通导致眼图闭合」:CDR 用 Alexander/Hogge 相位检测器比较数据边沿与多相采样时钟的早晚,经环路滤波驱动 VCO 或相位插值器把采样点锁到数据眼中央,并在 RJ/DJ 分类下折中环路带宽以跟踪低频抖动又不引入 VCO 噪声;均衡则用发送 FFE 预/去加重在衰减前补偿高频、接收 CTLE 用高通峰值抬起被压的高频(但同时放大噪声)、再用不放大噪声的 DFE 把已判决前序比特的拖尾在一个 UI 内反馈减去,三者在链路训练时按已知 PRBS 自适应,并以眼图和 BER 浴盆曲线验证——过补偿、CTLE 过峰、DFE 首抽头时序和 CDR 带宽是最容易让均衡不收敛的四个点。