4. JESD204B/C协议与Agilex硬核实现

JESD204B/C 是高速 ADC/DAC 与 FPGA 之间最常用的串行数据接口标准。它把传统并行 LVDS 接口中“每位一根线”的方式,改为多通道串行 SerDes 传输,用 8b/10b(B 版本)或 64b/66b(C 版本)编码承载采样数据,从而在更少引脚上实现数 Gsps 级采样率的数据搬运。对 Agilex 而言,理解协议层次与硬核分工,是正确配置 IP、保证多通道同步和确定性延迟的前提。

协议分层与链路层关键参数

JESD204 链路可粗略分为三层:传输层负责把 ADC 的采样样本按帧格式映射为 8 位八位组;链路层负责加扰、对齐、字符替换与多通道对齐;物理层由 SerDes 完成串并转换、均衡和时钟恢复。Agilex 的 E-Tile 或 F-Tile 提供硬核 SerDes 与部分链路层逻辑,JESD204B/C IP 则把传输层、链路层配置和同步状态机封装为可参数化模块。

配置时最核心的一组参数是 L、M、F、S、N、N'、K、CS。L 表示每器件链路通道数,M 为每帧转换器数,F 为每帧每通道的八位组数,S 为每帧每转换器的样本数,N 为转换器分辨率,N' 为打包后样本位宽,K 为多帧包含的帧数,CS 为控制位。它们必须与 ADC 端严格一致,否则链路无法进入 DATA 状态。以一颗 4 通道、14 位、采样率 1.25 Gsps 的 ADC 为例,若采用 L=4、M=4、F=2、S=1、N=14、N'=16、K=32,则每通道线速率约为 1.25G × 16 × (10/8) / 4 ≈ 6.25 Gbps(B 版本含 8b/10b 开销),这一数值必须落在所选 SerDes 通道的合法范围内。

JESD204B/C 链路分层与 Agilex 硬核实现关系 高速 ADC 采样前端 1.25 Gsps / 14 bit 传输层映射 M=4, S=1, N=14 链路层加扰/对齐 SCR=1, K=32 SerDes 发送 L=4 通道 4× SerDes Lane ~6.25 Gbps/lane Agilex FPGA E-Tile / F-Tile 硬核 SerDes CDR、均衡、8b/10b 或 64b/66b JESD204B/C IP 链路层 对齐、SYSREF 捕获、状态机 传输层解帧 样本重组、CS 控制位提取 用户时钟域 core_clk / 数据有效 同步与确定性延迟 • SYSREF 对齐多器件 LMFC • SYNC~ 请求/释放链路 • 弹性缓冲吸收通道偏斜 • 固定 RBD 实现确定性延迟 配置检查要点 • L/M/F/S/N/N'/K 与 ADC 一致 • 线速率 ≤ SerDes 上限 • 参考时钟与 SYSREF 同源 • 子类 1 需 SYSREF 建立/保持 • 观察 SYNC~ 与 8b/10b 错误计数

多器件同步与确定性延迟

多片 ADC 或多通道系统要求各链路在同一时刻开始采样、同一时刻输出样本,这就是多器件同步。JESD204B 子类 1 通过 SYSREF 信号实现:SYSREF 与器件时钟同源,被各 ADC 和 FPGA 同时捕获,用于复位本地多帧计数器 LMFC。当所有链路的 LMFC 对齐后,发送端在 LMFC 边界释放 SYNC~,接收端在下一个 LMFC 边界开始接收数据,从而保证各通道样本在时间上对齐。

确定性延迟指从 ADC 模拟输入到 FPGA 用户逻辑输出之间的延迟固定且可重复。实现要点是:SYSREF 与参考时钟的相位关系稳定;弹性缓冲的释放点固定;IP 中 RBD(Receive Buffer Delay)参数设置为确定值。若 SYSREF 抖动过大或未对齐,延迟会随上电次数变化,多板同步就会失败。调试时可先观察 SYNC~ 是否稳定拉高,再检查 IP 状态寄存器中的 8b/10b 错误计数和链路状态,最后用已知测试码(如斜坡)验证样本顺序。

使用 Agilex JESD204B/C IP 对接高速 ADC 的配置流程

实际配置可按以下顺序推进。第一步,确认 ADC 数据手册中的 JESD204 参数表,记录 L、M、F、S、N、N'、K、子类、线速率和 SYSREF 要求。第二步,在 Quartus 中打开 JESD204B/C IP 参数编辑器,选择与 ADC 一致的链路模式(B 或 C)、通道数、帧格式和子类;若使用子类 1,勾选 SYSREF 支持并设置 LMFC 周期。第三步,分配 E-Tile/F-Tile 通道,设置参考时钟频率和线速率,确保 PLL 能锁定。第四步,连接 SYSREF 和 SYNC~ 信号,SYSREF 需与器件时钟同源并满足建立/保持时间。第五步,生成 IP 后编写用户逻辑,把 IP 输出的样本按 M 和 S 重组为通道数据,并接入后续处理链。

# 示例:JESD204B IP 关键参数(以 4 通道 14 位 ADC 为例)
L = 4          # 每器件链路通道数
M = 4          # 每帧转换器数
F = 2          # 每帧每通道八位组数
S = 1          # 每帧每转换器样本数
N = 14         # 转换器分辨率
N' = 16        # 打包后样本位宽
K = 32         # 每多帧帧数
Subclass = 1   # 使用 SYSREF 同步
Line Rate = 6.25 Gbps
SCR = 1        # 加扰使能

配置完成后,先不接真实 ADC,用 IP 内置的测试模式或伪随机码验证链路能否进入 DATA 状态。若 SYNC~ 一直不释放,优先检查 L/M/F/S 是否与 ADC 一致、参考时钟是否锁定、SYSREF 是否到达。若链路能建立但样本错位,检查 K 和 LMFC 设置,以及弹性缓冲释放点是否固定。若多通道间存在固定偏斜,用 SYSREF 重新对齐 LMFC,并确认各通道 RBD 一致。最终用 ADC 输出的已知斜坡或正弦测试信号,在 FPGA 侧观察样本序列是否连续、通道间是否对齐,以此判断链路层参数和同步配置是否正确。

子类 1 的 SYSREF 必须满足 ADC 和 FPGA 的建立/保持窗口;若 SYSREF 走线过长或未做等长,确定性延迟会随温度漂移。建议在 PCB 设计阶段就把 SYSREF 与器件时钟按同一参考源、等长布线处理。
JESD204C 使用 64b/66b 编码,线速率计算与 B 版本不同,且部分 C 模式不支持子类 1 的 SYSREF 同步方式。切换 B/C 时,必须重新核对 IP 参数和 ADC 手册,不能直接沿用 B 版本的 K 和 LMFC 设置。