56G PAM4 SerDes RX 32 路时间交织 SAR ADC 顶层与采样前端

1. 关键指标

项目 实现
链路位置 VGA2 之后,数字 offset 修正与 RX FFE 之前
ADC 架构 4 相 × 每相 8 个 slice,共 32 路时间交织
单路输出 7-bit offset-binary raw code,范围 0~127
并行接口 每个低速数据周期输出 32 个 sample,共 224 bit
四相顺序 0°、90°、180°、270°,相邻采样时刻相差 1 UI
单组时钟 周期 4 UI;50G PAM4 模式下为 6.640625 GHz
单 slice 等效采样率 50G PAM4 模式下为 830.078125 MS/s
采样结构 两级模拟 interleaver + slice 内差分 bootstrap

50G PAM4 模式的符号率为 26.5625 GBd,1 UI=37.647 ps。四个相位各取每四个 symbol 中的一个,因此单组时钟频率=符号率/4=6.640625 GHz;每组内 8 个 SAR slice 轮流工作,单个物理 slice 每 32 UI 转换一次,等效采样率=符号率/32=830.078125 MS/s。

这里的 slice 指单个 SAR ADC 转换子单元,sample 指采样值,symbol 指调制符号;三者分别用于描述物理单元、转换数据和链路时序。

32 路并行度与调制方式无关;PAM4 与 NRZ 的差别主要体现在符号映射、目标幅度和后级判决,采样时钟按各模式的符号率配置。

2. ADC 在 RX 链路中的位置

text 复制代码
RXP/RXN -> RTERM/BLWC -> Data CTLE -> VGA1 -> VGA2
-> 4-phase analog interleaver
-> 4 groups × 8 redundant SAR slices
-> group/top handoff -> 224-bit ADC raw data
-> offset-binary转signed + per-channel offset修正
-> 16-tap RX FFE -> PAM4 DFE / slicer

ADC 接收 VGA2 的差分输出,把每个 symbol 时刻的模拟幅度转换成 7-bit 数字码。它不做 PAM4 四电平判决,而是保留较细的幅度信息,让后级数字 FFE/DFE 完成均衡和判决。

BBCDR 使用 VGA2 后的独立 CDR CTLE 和二元采样器支路。主 ADC 与 BBCDR sampler 共享前端信号来源和恢复时钟体系,但采样器、电平码、offset 校准及输出用途均不同,不能当作同一组比较器。

3. 四相×八路的顶层组织

rx_adc32x_top 接收四个 4UI 时钟:

顶层时钟 ADC 相位 slice group
clk4_ip group 0
clk4_qp 90° group 1
clk4_in 180° group 2
clk4_qn 270° group 3

四个时钟周期相同,上升沿依次相差 1 UI。每个 group 内有 8 个完全相同的 rx_adc_unit_slice,由 sample-pulse token 依次选通。group 0 处理 symbol 0、4、8......,group 1 处理 symbol 1、5、9......,其余同理。

顶层不是把四个 56-bit group bus 简单拼接,而是按时间顺序交叉展开。设 g=0~3 表示相位组,k=0~7 表示 group handoff 后的本地 sample 位置,则全局映射为:

text 复制代码
global_sample_index = 4*k + g
raw_data[((4*k+g)*7)+:7] = group[g].adc_data_out[k*7+:7]

因此 data[6:0]data[13:7]data[20:14]data[27:21] 分别是连续的 0°、90°、180°、270°四个 sample,而不是同一相位的四个 slice。这个映射必须与 adc_dp、FFE 的 32 路顺序保持一致,否则会把时间交织误差误判成信道 ISI。

4. 两级模拟 interleaver

晶体管级层次:

text 复制代码
VGA2 differential input
-> non-overlap clock generator
-> n-sampler2x for 0°/180° ─┐
-> n-sampler2x for 90°/270° ├-> four p-sampler output stages
                              └-> phase-held 0°/90°/180°/270° nodes

第一层包含两组 rx_adc_interlvr_nsampler2x:一组处理 0°/180°,另一组处理 90°/270°。

第二层由四个 rx_adc_interlvr_psampler8x 组成,分别缓冲并驱动四个 phase group,每个相位输出连接到该 group 的 8 个 SAR slice。这种两级结构把高速输入端看到的开关负载与 32 个 slice 的总负载隔离开,同时给每个相位提供独立的偏置和驱动路径。

N/P 缓冲级的栅偏置决定静态电流与输出共模;电路功能分析可将偏置发生器等效为理想直流源,同时保留信号开关、尾管及负载。偏置应根据过驱动、饱和余量和带宽选取;跟踪误差、保持下垂与相位间串扰需由瞬态、AC/PAC 或 PSS 仿真确认。

四个 clk4_* 在 analog top 内先由本地时钟 buffer 驱动,再进入 rx_au_adc_clkgen,产生各组的 adc_clk_0/90/180/270 和起始 sample pulse。每相有独立的 del_ctrl_*[3:0],校准可改变局部边沿而不重排 224-bit 数据总线。时钟延迟单元、interleaver aperture 与 slice token 传播延迟共同决定有效采样时刻;验证时应同时测量模拟 phase-held 波形和数字 handoff 标志,不能只对外部 clk4_* 做理想相位比较。

ADC 参考按公共 vref_root→32 个 slice 本地参考缓冲→CDAC 分层分发。公共根参考可用理想 0.500 V 表示;各 slice 的 MOS 参考缓冲仍承担充放电电流,局部输出阻抗与建立时间决定 reference droop,不能把所有 CDAC 底板直接视为理想电压节点。

5. slice 内 bootstrap 与保持节点

四相 interleaver 先在正确的 UI 位置形成 phase-held 模拟节点,随后 group 内被选中的 SAR slice 用差分 bootstrap 开关把该电压转移到本 slice 的 CDAC 顶板:

text 复制代码
phase-held P/N
-> differential bootstrap NMOS
-> CDAC top plate P/N
   = gain-cap top plate P/N
   = comparator input P/N
-> HOLD / asynchronous SAR conversion

每侧主采样 NMOS 的发布网表尺寸为 L=16 nmNFIN=4M=24。栅极由本地 bootstrap driver 驱动,track 阶段 boosted gate 随输入共模抬升,使主开关在较宽输入范围内近似维持稳定过驱动,减小导通电阻随输入变化引起的动态失真。

该 slice 没有独立的大型 hold capacitor。开关关断后,保持电荷分布在主冗余 CDAC、gain calibration 电容、比较器输入、电路寄生及 bootstrap 器件上。因此"采样电容"不能只按某一个显式元件计算;输入带宽、kT/C 噪声和比较器回踢(kickback)都必须在完整 slice 或 PEX 网络中评估。

每个 group 的 samp_pulse_in 进入第一个 slice,再沿 8 个 slice 逐级传播。token 有效时完成局部采样准备,token 结束后进入保持和转换窗口。token 主要负责把稳定的 phase-held 电压分配给八个低速 SAR 核心;真正相对于串行数据的 0°/90°/180°/270° aperture 仍由前面的四相 interleaver 时钟决定。

6. 八路结果 handoff 与低速并行输出

单个 SAR slice 完成转换后先产生本地 7-bit code,group 内的 rx_adc_ho_int 再把八个不同时刻完成的结果整理到同一个低速 frame。发布连接对应的 group-local 输出顺序为:

text 复制代码
physical slice order : 0 1 2 3 4 5 6 7
handoff bus order     : 4 5 6 7 0 1 2 3

前四个位置保存上一轮后半组 slice 4~7,后四个位置接入当前轮的 slice 0~3。这样在 top handoff 时刻,八个位置都属于同一个连续 32-UI frame,不会混入尚未完成的新结果。

clk_adc_handoff[1] 固定为 0。下游看到的是每个 handoff 周期 32 个按 symbol 时间排列的 7-bit sample。

每个物理 slice 还有唯一 5-bit 地址,由 3-bit 本地 slice index 与 2-bit group ID 组成。gain calibration 通过该地址选择某一个模拟 gain bank;数字 offset code 则在 32 路数组中按同一全局顺序保存。调试时需要同时核对物理地址、group-local handoff 位置和 224-bit global sample index,三者不是同一种编号。

相关推荐
小和尚同志6 小时前
小黑插图 Skill:从 11.7k star 的 Codex 专属,到 Claude Code 能用的平替
人工智能·aigc
高洁016 小时前
孪生不止在工厂:能源、医疗与农业
人工智能·深度学习·transformer·知识图谱·tornado
外域速览6 小时前
智谱50亿美元押注AI自训练
大数据·人工智能
人工智能培训6 小时前
孪生不止在工厂:能源、医疗与农业
大数据·人工智能
米小虾7 小时前
让模型说"我不知道",比让它答对更难:放弃文本生成能换来什么
人工智能
新新学长搞科研7 小时前
【SPIE出版】2026年人工智能、新材料与新能源国际学术会议(AINMNE 2026)
人工智能·新能源·新材料
野生技术架构师7 小时前
2026 Java 面试全套总结,八股 + 场景 + AI 相关面试考点
java·人工智能·面试
米小虾8 小时前
不写出来的思考:把 Transformer 的层循环起来,是第三条 scaling 轴还是省错了地方?
人工智能
A.说学逗唱的Coke8 小时前
【大模型专题】别再用 HTTP 直连 Agent 了:用 Kafka 承载 A2A 协议,从 PoC 走到生产
人工智能·kafka·a2a