224 Gb/s PAM-4收发器设计:1/8速率时钟与3 pJ/bit能效实现
简介:面向高速数据通信与集成电路设计领域研究人员和工程师的一份技术文献,聚焦3纳米FinFET CMOS工艺下224 Gb/s PAM-4长距离收发器的实现方案,回应数据中心800 G/1.6 T交换机与AI加速器ASIC对更高聚合I/O带宽的需求。资源包共1个PDF文件,约2.63MB,即IEEE固态电路期刊论文原文,涵盖收发器整体架构、全数字bang-bang锁相环与时钟电路、反相器基模拟前端与7位时间交织ADC、1/8速率发射机数据复用器,以及MLSD与DFE等嵌入式DSP均衡技术,并附测试芯片测量结果。已有174人学习。读者可从中获取40 dB插入损耗信道下1e-6误码率与3 pJ/bit能效的完整设计思路,理解数据路径与时钟路径的创新电路技术、抖动与功耗表现,为高速SerDes架构选型、均衡方案设计与能效优化提供直接参考。
1. 224 Gb/s 的悖论:为什么速率翻倍,能效反而要压到 3 pJ/bit
224 Gb/s 这个数字第一次看到时,多数人的直觉是「把 112 Gb/s 的 SerDes 时钟再拉快一倍」。但真正翻开源码级的电路设计会发现,这条路根本走不通:波特率翻倍意味着模拟带宽要从 28 GHz 推到 56 GHz,而信道在 56 GHz 处的插入损耗会直接冲到 40 dB——信号还没进接收机就已经被衰减了一百倍。更反直觉的是,功耗预算不但没放宽,反而被压到 3 pJ/bit,也就是每传一个比特只允许消耗 3 皮焦耳。这就是 224 Gb/s PAM-4 收发器要解决的核心矛盾:带宽翻倍、损耗翻倍,能效却要维持甚至优于上一代。搞懂这个矛盾怎么被拆解,就搞懂了这一代高速有线收发器的全部设计动机。
2. 时钟系统:为什么放弃半速率,改用 1/8 速率时钟
2.1 从 28 GHz 到 14 GHz 的频率取舍
上一代 112 Gb/s PAM-4 设计里,半速率(56 GBd 的一半,即 28 GHz)和四分之一速率时钟是主流选择。到了 224 Gb/s,波特率变成 112 GBd,如果继续用半速率,时钟就要跑到 56 GHz——这个频率在 3 nm FinFET 里意味着什么?意味着你必须用 LC 谐振腔振荡器,而 LC 振荡器要维持高 Q 值(至少 10)才能把抖动压到 100 fs 以内,高 Q 值又反过来限制调谐范围。这是一个典型的死循环:要低抖动就得高 Q,要高 Q 就调不宽,要覆盖 7–14 GHz 整个八度就得更复杂的振荡器结构。
设计者的解法是把时钟频率直接砍到 1/8 速率,也就是 14 GHz。这个频率低到可以用全 CMOS 的反相器链来做时钟生成和分配,彻底摆脱电感。代价是什么?你需要生成八相高精度时钟,而且这八相的相位误差必须控制在 25 fs 量级,否则时间交织 ADC 的采样就会失准。这就是整个时钟系统设计的起点:用频率换相位精度,再用一套精密的相位校准机制把精度补回来。
2.2 双振荡器与数字 PLL 的抖动账本
CMU 里的 PLL 要覆盖 7–14 GHz 的完整八度,单个 LC 振荡器做不到。常见的实现思路是放两个振荡器,一个中心频率 12.7 GHz,一个 10.4 GHz,各自只需要 ±10% 的调谐范围,配合一个可选的 1.5 分频就能拼出整个频段。锁定过程中选中的那个工作,另一个关掉。
PLL 本身用的是全数字 bang-bang 结构,而不是传统模拟电荷泵 PLL。这个选择在 3 nm 节点上很关键:先进工艺的闪烁噪声和热噪声水平都比老节点高,模拟 PLL 的电荷泵和环路滤波器会把这些噪声直接搬进抖动预算。数字 PLL 的量化效应则靠 DCO 的精细分辨率来压——0.5 MHz/LSB 的分辨率配合二阶 sigma-delta 调制器,把量化抖动压到比模拟 PLL 的电荷泵贡献还低。这里有个容易被忽略的细节:DCO 的分频器用双模预分频器做 4 或 5 分频,sigma-delta 就 clock 在这个预分频输出上,这样调制器的时钟频率跟着输出频率走,避免了固定时钟带来的杂散。
// 数字环路滤波器核心逻辑(简化示意) // FCW: 频率控制字,由 DLF 输出 // SDM: 二阶 sigma-delta,细化 DCO 分辨率 always @(posedge clk_ps) begin // 双模预分频:根据 SDM 输出选择 4 或 5 分频 if (sdm_out) div_ratio <= 5; else div_ratio <= 4; // 积分路径 + 比例路径合成 FCW fcw <= fcw_prop + fcw_int; // 漂移校正环:650 MHz 带宽,慢速回中 if (drift_correction_en) fcw <= fcw + drift_offset; end这段逻辑里,fcw_prop是比例路径,负责快速响应相位误差;fcw_int是积分路径,负责消除稳态频差。漂移校正环单独挂在 650 MHz 带宽上,持续监测 DCO 频率漂移并把它拉回中心,保证在 −40 °C 到 +125 °C 范围内 PLL 始终锁定。这个漂移环的妙处在于它不影响主环路的抖动——因为它的带宽远低于主环路,相当于一个慢速的「后悔药」,只在温度漂移积累到一定程度时才出手。
2.3 CCU:八相时钟怎么从 14 GHz 差分时钟里长出来
CMU 只输出一个 14 GHz 的差分时钟,但 ADC 需要八相 1/8 速率采样时钟,发射 DAC 也需要八相。这个转换由时钟调理单元(CCU)完成。接收侧 CCU 的核心是一个八级环形振荡器 ILO₁,它被注入锁定到相位旋转器(PR)的输出上;PR 又从另一个注入锁定到 CMU 时钟的八级环振 ILO₂ 取八相输入,在相邻两相之间做 7 位插值,实现 1/128 UI 的相位分辨率。
这里有个血泪经验级别的细节:注入锁定只作用于八级环振里的两相,天然会造成时钟偏斜。如果不处理,这个偏斜会直接吃掉相位精度预算。设计者的做法是先用一个 11 位 DAC 调节 ILO 的供电电压,让环振的自由振荡频率和注入锁定频率对齐——注意,这不是为了保证锁定(注入锁定范围很宽,锁定很稳),而是为了把频率牵引效应降到最小,从而减小偏斜。对齐之后,残余的布局失配和器件随机失配再用相位偏移缓冲器逐相消除,每个缓冲器能独立调正负沿,分辨率 25 fs,总调节范围约 10 ps。
# 相位校准伺服循环(固件侧逻辑示意) def phase_calibration_loop(tdc_readings, target_skew=0): for phase_idx in range(8): # 读取该相与参考相之间的 TDC 测量值 measured = tdc_readings[phase_idx] error = measured - target_skew # 11 位 DAC 控制相位偏移缓冲器的偏置电压 dac_code = pid_update(error) write_dac(phase_idx, dac_code) # 同时监测 ILO 供电电压,维持频率对齐 freq_error = compare_freq(ilo_freerun, injection_freq) adjust_ilo_supply(freq_error)TDC 在这里的角色是「黑匣子」里的测量仪:它测两个时钟相位正沿到正沿(或负沿到负沿)的时间差,24 位大计数器累积结果,固件伺服环据此调整 11 位 DAC。整个校准在后台持续运行,电压温度变化时也能维持相位稳定。发射侧 CCU 更简单,去掉了 PR 和 ILO₂,八相直接送给 DAC,每个相的正负沿独立可控。
3. 接收链路:40 dB 损耗怎么被模拟前端和 DSP 分摊
3.1 反相器基 AFE 的 20 dB 峰值增益从哪来
40 dB 插入损耗的信道,信号到达接收端时已经非常微弱。接收链路的第一级是宽带 95 Ω 输入端接,尽量减少反射;接着是两级连续时间线性均衡器(CTLE),先把长距离信道造成的一部分 ISI 压掉。CTLE 之后信号被强调过,ADC 只需要 7 位分辨率就够用,这直接降低了 DSP 的复杂度。
真正提供增益的是反相器基模拟前端。用反相器做 AFE 的好处是它在 3 nm 节点上能提供很高的带宽和不错的增益,而且不需要电感,面积和功耗都友好。20 dB 的峰值增益意味着在奈奎斯特频率附近把高频分量抬起来,补偿信道的高频衰减。这里的设计取舍是:模拟端只做「部分」均衡,不追求把信道完全拉平,剩下的留给数字端。为什么?因为模拟均衡器在 56 GHz 带宽下做太强的 peaking 会引入噪声放大和线性度问题,而数字 FFE 和 DFE 在功耗和精度上更可控。
3.2 7 位时间交织 ADC 与 80 路并行采样
ADC 是 7 位时间交织结构,原生就跑在八相 1/8 速率时钟上,也就是 112 GS/s 的总采样率。7 位分辨率的选择不是随便定的:CTLE 已经把信号强调过,ADC 的动态范围需求降低;同时 7 位让 DSP 里的数字均衡器位宽和运算量都可控。如果硬上 8 位,DSP 的功耗会明显上升,而 3 pJ/bit 的预算不允许。
采样后的数据以 80 个样本并行的方式进入 DSP,这样 DSP 时钟被限制在 1.4 GHz。这个并行度是架构层面的关键决策:80 路并行意味着数字逻辑可以跑在相对低的频率上,避免在 3 nm 里做高频数字设计的功耗和时序噩梦。代价是布线复杂度和面积,但每通道 0.5 mm² 的面积预算下这是可接受的。
3.3 MLSD 与 DFE 的分工:为什么两个都要
接收 DSP 里同时有判决反馈均衡器(DFE)和最大似然序列检测(MLSD)。这两者不是冗余,而是分工。DFE 处理的是因果性的后游标 ISI——它用已经判决出的符号去抵消当前符号受到的拖尾干扰,结构简单、延迟低。但 DFE 有个硬伤:它依赖判决正确性,一旦判决错了,错误会传播。而且 DFE 只能处理有限长度的后游标,对长距离信道那种长拖尾无能为力。
MLSD 则换了个思路:它不逐符号硬判,而是维护一个状态网格,把所有可能的符号序列的似然度都算出来,最后选全局最优路径。这能处理 DFE 搞不定的长拖尾和相关性噪声,代价是计算复杂度高。设计者把两者串起来用:DFE 先做快速粗均衡,MLSD 在残余 ISI 上做精细的最大似然判决。这种组合在 40 dB 这种极端损耗下几乎是必须的——单靠 DFE 的误码率曲线会在高损耗区出现错误平底,MLSD 把平底压下去,才能达到 1e-6 的 BER 目标。
提示:DFE 的反馈路径延迟是设计难点。在 112 GBd 下,一个 UI 只有约 8.9 ps,DFE 的第一抽头必须在半个 UI 内完成反馈,这对 3 nm 的时序收敛是硬约束。常见的做法是把第一抽头做成模拟域或电流模,避开数字逻辑的延迟。
4. 发射链路:1/8 速率时钟下怎么做波特率数据复用
4.1 7 位 DAC 与 56 GHz 带宽
发射端把二进制数据转成 PAM-4 电平,先经过数字 FFE 做预加重,然后串行化、送进 7 位电流模 DAC。DAC 要支持 56 GHz 带宽,这是 112 GBd PAM-4 的奈奎斯特频率。7 位分辨率配合 FFE 的预加重,能在发射端就把一部分信道损耗预补偿掉,减轻接收端压力。
发射时钟的抖动指标很硬:随机抖动 55 fs rms,确定性抖动 170 fs。这两个数字直接决定了眼图的张开度。55 fs rms 的随机抖动在 14 GHz 时钟下已经接近工艺和 PLL 的极限,靠的是前面那套数字 PLL 加 CCU 相位校准的组合拳。
4.2 波特率数据复用器的相位重审
上一代发射 DAC 通常用两相或四相时钟做数据复用。这一代因为 CCU 天然产出八相,设计者重新审视了复用器架构,让八相全部用上。八相复用的好处是每个相只需要处理 1/8 的数据率,复用器内部的时序裕量更大;坏处是八相之间的偏斜必须校准得非常准,否则复用出来的眼图会出现周期性抖动。这就是为什么发射 CCU 的每个相都要独立调正负沿——复用器的线性度直接依赖时钟相位的一致性。
// 1/8 速率波特率复用器(概念示意) // 八相时钟分别锁存 8 路并行数据,再合并成波特率输出 genvar i; generate for (i = 0; i < 8; i = i + 1) begin : mux_stage always @(posedge clk_phase[i]) begin // 每相锁存对应的 1/8 数据 data_latched[i] <= data_in[i*7 +: 7]; end end endgenerate // 合并级:按相位顺序轮流输出到 DAC always @(posedge clk_phase[0]) begin dac_input <= select_phase(data_latched, phase_sel); end这段示意里,clk_phase[i]是八相时钟,每相锁存 7 位数据(对应 7 位 DAC 的一个码字)。合并级按相位顺序把八路数据轮流推给 DAC。关键约束是clk_phase之间的偏斜必须小于 25 fs,否则合并出来的波形会有台阶。这就是前面 CCU 相位校准存在的意义——它不只是给 ADC 用的,发射复用器同样吃这个精度。
5. 避坑与排查:这套架构里最容易翻车的几个点
5.1 现象:ADC 采样眼图周期性塌陷,BER 随相位缓慢漂移
原因通常是 CCU 的相位旋转器在频率偏移(ppm 级)下持续旋转,而 PR 的插值响应非线性,导致旋转过程中相位步进不均匀。解决方法是启用 PR 前的第二组相位偏移缓冲器做线性化校准——这组缓冲器专门用来把 PR 的传输曲线拉直,让它在整个 360° 旋转范围内步进一致。如果只校准 ADC 前的缓冲器而忽略 PR 前的,ppm 偏移场景下 BER 会周期性恶化。
5.2 现象:高温下 PLL 失锁,或抖动突然变大
先查漂移校正环。650 MHz 带宽的漂移环负责把 DCO 频率拉回中心,如果它的监测逻辑或 DAC 接口在高温下时序违例,DCO 会慢慢跑偏直到超出锁定范围。另一个常见原因是 ILO 供电电压的 11 位 DAC 在温度变化后没有重新对齐自由振荡频率,导致注入锁定偏斜增大。排查时先看 TDC 读数是否整体偏移,再看 ILO 供电 DAC 的码字是否停在边界。
5.3 现象:DFE 在高损耗信道下出现错误平底,BER 卡在 1e-5 下不去
这是 DFE 错误传播的典型表现。先确认 MLSD 是否真正在参与判决——有时候 MLSD 的网格状态数配置太小,或者回溯深度不够,等效于没开。其次检查 DFE 第一抽头的反馈延迟是否超了半个 UI,超了会导致抽头系数被迫调小,残余 ISI 增大。解决方向是加大 MLSD 的网格深度,或者把 DFE 第一抽头改到模拟域实现。
5.4 现象:发射眼图确定性抖动超标,但 PLL 抖动正常
问题多半在复用器的八相偏斜上。用 TDC 逐相测量发射 CCU 输出到 DAC 的相位差,如果某两相之间偏斜超过 25 fs,检查对应的相位偏移缓冲器 DAC 码字是否被固件正确写入。另一个坑是复用器合并级的时钟树不平衡——八相走线长度差异在 14 GHz 下会直接转化成偏斜,布局时必须做等长。
5.5 现象:整通道功耗超出 3 pJ/bit 预算
先分模拟和数字两部分看。模拟侧常见超预算是 AFE 的偏置电流给太大,为了压噪声把 CTLE 和 VGA 的电流拉满;实际上 7 位 ADC 对前级噪声的要求没有想象中那么苛刻,适度降电流不会明显恶化 BER。数字侧则要看 DSP 的并行度是否被过度设计——80 路并行是权衡结果,如果为了时序裕量再加并行度,寄存器数量和时钟树功耗会线性上升。
6. 设计取舍的复盘:3 pJ/bit 是怎么被「省」出来的
把整条链路拆完再回头看,3 pJ/bit 不是一个单点优化出来的数字,而是一连串取舍叠加的结果。最核心的一笔账在时钟:放弃半速率改用 1/8 速率,把 56 GHz 的 LC 振荡器换成 14 GHz 的全 CMOS 环振加注入锁定,省掉的是电感面积和高频时钟分配的功耗,付出的是八相校准的复杂度。这笔交易在 3 nm 节点上是划算的,因为 FinFET 的逻辑密度足够高,数字校准逻辑的面积和功耗远小于高频模拟电路。
第二笔账在分辨率:CTLE 先把信号强调过,ADC 只要 7 位,DSP 的位宽和运算量跟着降。如果模拟端偷懒不做均衡,ADC 就得上 8 位甚至更高,DSP 功耗会吃掉省下来的预算。第三笔账在均衡分工:DFE 做快速粗均衡,MLSD 只处理残余的长拖尾,而不是让 MLSD 从头算起——MLSD 的复杂度随网格状态数指数增长,能少算就少算。
| 设计决策 | 换来的收益 | 付出的代价 |
|---|---|---|
| 1/8 速率时钟 | 免电感、全 CMOS 时钟链 | 八相校准复杂度 |
| 双 LC 振荡器 | 覆盖完整八度、维持高 Q | 面积和切换逻辑 |
| 数字 PLL | 抗 3 nm 噪声、抖动可预测 | DCO 量化需 sigma-delta 细化 |
| 7 位 ADC | DSP 功耗和位宽可控 | 依赖 CTLE 预均衡 |
| DFE + MLSD | 压掉高损耗错误平底 | 数字面积和功耗 |
验证这套设计是否真的 work,不能只看常温眼图。我一般会这么理解测试流程:先在 40 dB 信道下扫温度和电压,看 BER 是否在所有角上都稳在 1e-6 以下;再用 TDC 读数监控八相偏斜随温度的漂移,确认伺服环能跟上;最后单独关掉 MLSD 跑一遍,对比 BER 曲线,确认 MLSD 确实在起作用而不是被 DFE 掩盖了问题。这套流程走下来,才能说 3 pJ/bit 是在所有角上都成立的,而不是只在标称条件下好看。
从那以后我每次评估这类高速收发器架构,都会先把时钟频率和相位精度的账单独算一遍——因为这一层的取舍一旦定错,后面模拟和数字怎么调都是在补窟窿。希望这份拆解帮到你,想深挖源码级细节的话,原文里的 CCU 框图和 TDC 结构值得逐行对着看。
本文还有配套的精品资源,点击获取