虽然 JESD204B 的 Subclass 0、1、2 建链流程在表面上看起来相似(都是 CGS → ILAS → DATA),但它们在链路对齐机制、同步精度、确定性延迟支持方面有本质区别。下面我们从整体结构、时序控制、同步方式等角度详细对比。
✅ 一表总结:Subclass 0 / 1 / 2 建链流程差异
对比项 |
Subclass 0 |
Subclass 1 |
Subclass 2 |
是否支持确定性延迟 |
❌ 不支持 |
✅ 支持 |
✅ 支持 |
同步机制 |
仅 SYNC~ 控制 |
SYSREF + LMFC + SYNC~ 控制 |
本地定时器(计数) + SYNC~ 控制 |
是否有 SYSREF |
❌ 无 |
✅ 必须(外部精确定时) |
❌ 无(只靠本地) |
LMFC(Multi-Frame Clock) |
❌ 无 |
✅ 必须(所有设备对齐) |
✅ 有(本地同步) |
延迟一致性 |
❌ 每次重启延迟不同 |
✅ 每次链路延迟完全一致(确定性) |
⚠️ 近似一致(但对本地计数器要求极高) |
多芯片同步能力 |
❌ 基本无 |
✅ 可实现跨多芯片同步 |
⚠️ 有限制,必须所有设备严格配置计数器 |
🧭 三种子类建链流程对比图解
✅ Subclass 0 建链流程(最简单):
FPGA 拉低 SYNC~→ ADC 发 CGS (/K28.5/)→ FPGA 拉高 SYNC~→ ADC 发 ILAS(无时间参考)→ FPGA 接收 ILAS,进入 DATA
🔸 特点:
- 仅靠 SYNC~ 控制链路状态
- ILAS 不与任何固定时间参考对齐
- 多次启动延迟值不可预测
✅ Subclass 1 建链流程(主流推荐):
外部 SYSREF 上升沿到来→ FPGA & ADC 生成 LMFC(本地多帧时钟)→ FPGA 拉低 SYNC~→ ADC 发 CGS→ FPGA 检测到 LMFC 边界时 拉高 SYNC~→ ADC 在下一个 LMFC 边界开始发 ILAS(时间对齐)→ FPGA 接收 ILAS & 校验参数→ 进入 DATA(保证延迟一致)
🔸 特点:
- 加入了 SYSREF 和 LMFC 机制
- ILAS 必须精确对齐到 LMFC 边界
- 每次启动链路延迟完全确定
- 支持多 Lane + 多设备 + 多 FPGA 同步
✅ Subclass 2 建链流程(非主流):
设备内部固定启动定时器→ FPGA 拉低 SYNC~→ ADC 发 CGS→ FPGA 在定时器到达 LMFC 点时拉高 SYNC~→ ADC 也根据本地定时器判断 LMFC→ ILAS 发送、接收都靠本地计时完成对齐
🔸 特点:
- 不依赖 SYSREF
- 所有设备必须本地计时器完全一致
- 延迟近似固定,但比 subclass 1 更脆弱
🧠 ILAS 在不同 Subclass 中的意义
子类 |
ILAS 的时间特性 |
Subclass 0 |
ILAS 开始时间不固定,不能作为延迟参考 |
Subclass 1 |
ILAS 精确对齐 LMFC,是延迟基准点 |
Subclass 2 |
ILAS 与本地计时对齐,但易受抖动误差影响 |
🧪 FPGA 实现影响对比
项目 |
Subclass 0 |
Subclass 1 |
Subclass 2 |
是否需要外部 SYSREF |
❌ 无 |
✅ 是(推荐 AD9528) |
❌ 无 |
是否生成 LMFC |
❌ 否 |
✅ 必须 |
✅ 必须 |
JESD204 IP 配置复杂度 |
简单 |
中等 |
较复杂 |
多通道/多设备系统推荐 |
❌ 不推荐 |
✅ 强烈推荐 |
⚠️ 不推荐(很少用) |
✅ 建议选择(实际工程经验)
使用场景 |
推荐子类 |
单个 ADC、非关键同步 |
Subclass 0 |
多 ADC、多 Lane、需确定性延迟 |
Subclass 1 |
资源极度受限、或无 SYSREF 可用环境 |
Subclass 2(需评估) |
✅ 总结回顾
项目 |
Subclass 0 |
Subclass 1 |
Subclass 2 |
控制信号 |
SYNC~ |
SYNC~ + SYSREF |
SYNC~ + 本地定时器 |
是否有 LMFC |
❌ 无 |
✅ 有(对齐 SYSREF) |
✅ 有(本地生成) |
ILAS 对齐精度 |
❌ 不确定 |
✅ 精确边界对齐 |
⚠️ 可控但误差难校 |
应用典型场景 |
非同步、单通道 |
高速 ADC/DAC、MIMO 系统 |
特殊 ASIC、无 SYSREF 场合 |