┌───────────────┐
│ 上电或复位 │
└──────┬────────┘
↓
┌──────┴────────┐
│ FPGA 拉低 SYNC~│ ← 通知 ADC 停止发数据
└──────┬────────┘
↓
┌──────┴────────────┐
│ ADC 发送 CGS(K28.5)│ ← 帮助 FPGA 实现字符边界对齐、CDR 锁定
└──────┬────────────┘
↓
┌──────┴──────────────┐
│ FPGA 识别 CGS 并拉高 SYNC~│ ← 表示准备接收 ILAS
└──────┬──────────────┘
↓
┌──────┴────────────────────┐
│ ADC 发送 ILAS(4 Multi-Frame) │ ← 传输 JESD 参数 & 多 Lane 对齐
└──────┬────────────────────┘
↓
┌──────┴────────────────────┐
│ FPGA 检查 ILAS 是否一致 │ ← 校验 F、K、M、L、S 等参数
└──────┬────────────────────┘
↓
┌──────┴─────────────┐
│ 进入数据传输状态(DATA) │ ← 链路 Ready!
└────────────────────┘
✅ 1️⃣ CGS 阶段(Code Group Synchronization)
- 由 FPGA 拉低
SYNC~启动 - ADC 发送大量
/K28.5/控制符 - 目的:
- CDR 锁相
- 找字节边界
- 准备 ILAS 的同步基准
✅ 2️⃣ ILAS 阶段(Initial Lane Alignment Sequence)
- FPGA 检测到 CGS 后 → 拉高 SYNC~
- ADC 立即开始发 4 个多帧(Multi-Frame),内容包括:
- 帧对齐符号(K28.0/K28.4/K28.7)
- JESD 参数字段(F/K/M/S/L 等)
- Lane ID、Device ID 等
- 作用:
- 多 Lane 数据对齐
- 参数一致性校验
- Subclass 1 中 LMFC 的同步参考点
✅ 3️⃣ 数据传输阶段(Data)
- ILAS 正确接收后,进入正常传输状态
- ADC 开始发送连续的数据帧
- FPGA 开始解码并送入 AXI 或 FIFO 接口
- 若中途链路错误、同步丢失,可能自动退回 CGS
🧠 Subclass 特殊流程说明(Subclass 1)
在 Subclass 1 中,额外存在:
- SYSREF 信号输入
- LMFC(Local Multi-Frame Clock)生成
- ILAS 必须与 LMFC 对齐(边界固定)
- 所以 SYSREF + ILAS 联合实现“确定性延迟”
🧪 JESD204B 状态机(简略)
| 状态 | 描述 |
|---|---|
| CGS | 接收 K28.5,同步 CD & 边界 |
| ILAS | 接收 4 个多帧的初始化参数 |
| CHECK | 校验 JESD 配置是否匹配 |
| DATA | 正常数据传输 |
| LOST | 如果出现错误,状态机会跳回 CGS 重建链路 |
📦 FPGA 中实现建链过程的模块
| 模块 | 功能 |
|---|---|
GT Transceiver | 串行解码、CDR、8b10b 编码/解码 |
JESD204 RX IP | 包含链路状态机(CGS/ILAS/DATA),配置校验等 |
SYNC~ 控制 | 控制建链流程,通常是输出引脚连到 ADC SYNC |
SYSREF 输入 | Subclass 1 中的外部同步输入 |
✅ 总结
| 阶段 | 关键信号 | 发射方行为 | 接收方行为 |
|---|---|---|---|
| CGS | SYNC~ = 0 | 发 /K28.5/ | 边界同步、CDR 锁定 |
| ILAS | SYNC~ = 1 | 发 4 个多帧(含参数) | 解码 JESD 参数、同步 LMFC |
| DATA | SYNC~ = 1 | 发真实采样数据 | 数据解帧、传送到用户逻辑 |