跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
编程语言

JESD204B 协议链路建立与 Xilinx IP 仿真详解

JESD204B 是高速串行接口标准,用于 ADC/DAC 与 FPGA 间数据传输。介绍其物理层、链路层结构及三种子类模式(Subclass 0/1/2),重点阐述 Subclass 1 的链路建立三阶段(SYSREF、CGS、ILAS)。同时解析 Xilinx JESD204 IP 的配置参数与仿真流程,包括测试序列生成、时钟定义及寄存器配置,为高速数据转换器接口设计提供参考。

GitMaster发布于 2026/4/5更新于 2026/6/842 浏览

一、初识

JESD204B 是由 JEDEC(电子器件工程联合会)制定的高速串行接口标准,主要用于数据转换器(ADC/DAC)与数字处理器(如 FPGA、ASIC)之间的数据传输。在 JESD 标准出现前,常用的是传统的 LVDS 接口:LVDS(Low-Voltage Differential Signaling,低压差分信号)是一种广泛应用的物理层电气标准,用于高速、低功耗的差分信号传输。

在使用 LVDS 接口时,对阻抗和多通道时延要求比较严格。因为 LVDS 使用的是源同步接口,允许时钟和多个数据通道同时传输,时钟信号和数据保持确定的相位关系,同时由发送端传输至接收端。接收端利用对端传送来的时钟信号作为采样时钟,对数据位进行采样。在采样过程中,只要保证接收端时钟信号与接收数据满足一定的建立/保持时间,数据即可被正确接收。

因此我们可以知道,LVDS 对各通道的时延要求是比较高的,因此 PCB 布线要求也比较严格,差分对需阻抗匹配(100Ω±10%)和等长控制(长度差<5 mil),高密度布线时难度剧增。多通道 LVDS 系统需严格同步时钟(如 FPGA 至多个 ADC),时钟抖动>1 ps 可能导致采样偏差。

对于 JESD204B 协议而言,它为多通道高速数据转换器设计的端到端协议标准,含完整的同步和校验机制,是一种高速串行接口标准,该协议支持高达 12.5 Gbps 的数据速率。物理接口上,它依靠的是高速收发器进行数据收发同步与校验,即串行收发数据,这也就意味着数据接口路由所需电路板布线空间更少,适用于需要高带宽和高可靠性的应用场景。相比与 LVDS 它的线更少,建立与保持时序要求更低及转换器和逻辑器件的封装更小。因此在高速 AD/DA 芯片中很常用,并且在通信 AD/DA IC 中,未来将会越来越主流。

文章配图

图 2 JESD 连接

二、JESD204B 结构

JESD204B 协议层主要包括四层,分别为:物理层、链路层、传输层、应用层。

  • 物理层:基础,基于高速 SerDes(如 Xilinx GTY、GTX)的电气接口,支持多通道绑定。
  • 链路层:主要包括处理加扰 (SCRAMBLING)、8B/10B 编码、链路同步(CGS/ILAS)。
  • 传输层:主要是数据对应关系,包括定义数据映射规则(如采样分帧、通道分配)。
  • 应用层:用户得到最终 IQ 数据。

JESD204 协议定义了三种子类模式(Subclass 0/1/2),用于解决多器件时钟同步与确定性延迟问题链路建立。

Subclass 0
  • 无全局同步信号:依赖设备自身时钟(Device Clock)的相位对齐,通过本地多帧时钟(LMFC)实现单器件内的多通道同步。
  • 无确定性延迟:不同器件的 LMFC 可能随机偏移,无法保证跨器件的固定延迟。

文章配图

图 3 Subclass 0

Subclass 1
  • 全局同步信号(SYSREF):所有器件(FPGA、ADC、DAC)接收同一 SYSREF 信号,对齐各 LMFC 的相位。
  • 确定性延迟:链路建立后,数据传输延迟固定(±1 LMFC 周期),支持多器件纳秒级同步。

文章配图

图 4 Subclass 1

Subclass 2
  • 运行时重配置:支持在不复位链路的情况下,动态调整 LMFC 相位或数据传输参数(如延迟补偿)。
  • 确定性延迟 + 动态性:在 Subclass 1 的基础上,增加了链路状态机(如重新同步请求)。

文章配图

图 5 Subclass 2

综合对比,总结如下:

特性Subclass 0Subclass 1Subclass 2
同步信号无SYSREFSYSREF
确定性延迟不支持固定延迟(±1 LMFC 周期)固定延迟 + 可动态调整
多器件同步仅单器件全局对齐全局对齐
动态重配置不支持需复位链路支持运行时调整
复杂度低(已过时)中(需 SYSREF 管理)高(状态机及动态逻辑)

三、链路层同步机制建立

JESD204B 的物理层是基于高速串行收发器进行的,因此物理层对于本文而言是比较通用的。在 Xilinx FPGA 中,不管是 Aurora、万兆网、SRIO 等都是基于高速串行收发器进行的。

在本文中,跳过物理层,直接进入链路层,这是 JESD204B 的重点。

假设在图 2 架构中,作为 FPGA 一侧,想把外部 AD 芯片的 IQ 数据完整读取过来,首先需要知道什么时候 AD 芯片会传数据过来,其次得知道数据线上传过来的是啥数据,最后得知道这些数据是怎么排列的。如果这么想,那么已经初步知道 JESD204B 的链路建立的规则了。

由于 JESD204 协议中,常用的就是 JESD204B Subclass 1,因为它既优化了 Subclass 0 中的缺少确定性延时不足,也为 Subclass 2 的动态调整打下了基础,所以在该文中主要说明的是 Subclass 1。在其链路建立过程中,总共分为三个阶段:

第一阶段:SYSREF 阶段

这个阶段类似于百米比赛中的发令枪,当监测到 SYSREF 时,就开始正式进行同步流程。这个信号是怎么来的呢?如图 6 所示,外部的时钟源为 AD 芯片和 FPGA 提供 Device Clk 和 SYSREF。这个 Device Clk 就相当于基准时钟源,所有的链路建立都以该时钟为基础。Device Clock 经过分频后得到帧时钟 Frame Clk 和多帧时钟 LMFC。

该阶段中主要是检测 SYSREF 的状态,对于检测 SYSREF 的状态也有两种方式:

  1. Oneshot:只需要捕获一次 SYSREF 就行,时钟源只需要在开始前提供几个周期的 SYSREF 信号,下一次再提供则是整体架构复位之后重新 Link 时才会提供。
  2. Continue 模式:SYSREF 信号以固定频率(通常与 LMFC 同频)持续发送,器件在每个 SYSREF 上升沿动态校准 LMFC 相位,这种常用于多器件同步。
  • One-Shot 模式:适合短期运行、环境稳定的小型系统,强调低功耗和简单设计。
  • Continuous 模式:用于高精度、多器件、长时间运行的工业场景,通过持续校准保障同步稳定性。

同时,在使用时要确保 SYSREF 与 Device_Clk 的相位满足建立/保持时间。

文章配图

图 6 SYSREF 时序要求

第二阶段:组码同步阶段(Code Group Synchronization)

在 Subclass 1 中是 TX 发送 K28.5,当 RX 连续收到 4 个 K28.5 时(但是在 Xilinx IP 的仿真中是识别到 20 个 K 码),则会把 Sync 拉高,准备进入第三个阶段 ILAS 阶段(Initial Lane Alignment Sequence)。简单解释一下就是:当 RX 收到连续的 n 个 K28.5 时,会告诉 TX:'我已准备 OK,流程可以继续往下走了',那他是怎么告诉 TX 的呢?会把 Sync 拉高。当 TX 捕捉 Sync 信号的改变时,TX 会在下一个本地多帧时(LMFC)边界上启动 ILAS 阶段。

第三阶段:初始通道对齐阶段(Initial Lane Alignment Sequence)

在该阶段里主要完成通道对齐,在该阶段中,主要发送 4 个多帧,即 4 个帧序列,如图 7 中'K frame'。

文章配图

图 7 ILAS 同步说明

文章配图

图 8 K 码序列表

这个序列是有一定的规则的:比如多帧是以 K 码 K28.0 开头,D 数据为累加数,A 为多帧结束标志,第二个多帧的前 14 个 C 数据为配置数据等。并且累加数也有其特定的规则,怎么去累加,控制字符算不算累加数等,图 9 介绍了配置数据的具体说明,每个配置参数的具体含义可去看手册《JEDEC STANDARD-Serial Interface for Data Converters》。

文章配图

图 9 多帧累加数规则

文章配图

图 10 配置数据详解

说到这里,可能大家对单通道的对齐有初步理解了,单对于 JESD204B 来说,它是如何保证多通道对齐的呢?

多通道对齐

由于每个通道的时延不一致,检测到多帧的时间也不一致,因此如上图接收端检测到字符/R/(K28.0) 之后,接收端会把/R/(K28.0) 后面的数据存入一个深度可设置的 BUFFER 中,当下一个 LMFC 边沿到来,且所有通道的 BUFFER 中都有数据时,所有通道的 BUFFER 数据开始输出,从而实现通道间的数据对齐。

说到多通道对齐那就必须要补充一下确定性延迟:JESD204B 标准定义了确定性延迟(DL),它表示帧式样本到达串行发送器时与帧式样本从串行接收器输出之间的时间差。如图所示

文章配图

在 JESD204 系统中,确定性延迟包括固定延迟和可变延迟。可变延迟是由于数字处理块中时钟域之间的任意相位关系在电源周期之间不一致而产生的。即确定性延迟被定义为从 TX 设备的并行帧数据输入到 RX 设备的并行帧数据输出。

因此整个链路建立的流程就如图 10 和图 11 所示:

文章配图

图 11 子类 0-2 的同步过程

文章配图

图 12 同步具体流程

现在的整体架构如图 13 所示,常见的芯片有 AD9009, 9371 等芯片。

文章配图

图 13 整体架构

四、Xilinx IP 的仿真

4.1 IP 设置

我们使用的 Xilinx IP 是 JESD204,这是包含了链路层的 IP,一般搭配使用还需要带一个 JESD204_PHY 的 IP。

文章配图

图 14 JESD204

文章配图

图 15 JESD204_phy

我们这里主要介绍 JESD204B 这个 IP 的仿真,在 UltraScale 系列中没有这个 IP,用 JESD204C 也是可以的。这个 IP 的设置比较简单:

文章配图

  1. 发送端还是接收端设置
  2. 通道数
  3. Pattern Generators:经修改的随机模式连续序列(RPAT);连续的加扰抖动模式序列 (JSPAT)

在《JEDEC STANDARD-Serial Interface for Data Converters》中规定,所有 TX 设备均应能传输下列测试序列:

  • 一个连续的/K28.7/字符序列(低频模式,有助于确定上升和下降时间);
  • 连续的/K28.5/字符序列(混频模式或码组同步);
  • 重复发送初始通道对齐序列。如果发送器启用此测试模式,只要接收器发出同步请求,发送器就应启动码组同步。完成码组同步后,发送器应重复发送 ILAS。如果发送器进入测试模式时没有有效的码组同步请求,则发送器的行为应与接收到的同步请求相同。进入测试模式时,发送器应连续发送至少四个/K28.5/符号,作为码组同步序列的一部分。单通道子类 0 ADC 设备不需要此测试序列。
  1. AXI-LITE 时钟(配置通道)
  2. 采样 SYSREF 的边沿类型

共享逻辑就没什么太多需要说的,直接跳过了。

文章配图

  1. SYSREF 的模式,是否是连续还是单次的
  2. 数据是否加扰
  3. 每个帧里面有几个字节,也就是一个有效数据,用几个字节表示,该参数也是根据芯片手册来确定。
  4. 每个多帧里包含多少帧数,这个参数一般根据 AD 芯片来设置
  5. 重新同步时是否再次需要 SYSREF

上面所有参数均设置等效配置寄存器中存储的默认(重置)值。如果通过 AXI4-Lite 配置总线写入寄存器,则会覆盖在 IP 生成期间设置的值。如果使用软件配置转换器帧参数,则无需在此处配置值。这些配置设置可用于在没有连接 AXI4-Lite 主机的情况下使用 IP。只有寄存器的一小部分可以通过这种方式配置。要访问所有配置设置并监控链路状态,应连接 AXI4-Lite 接口。

物理层的配置在另外一个 IP 上进行配置,在该 IP 上不参与配置。

4.2 IP 仿真

生成 IP 后,右键 IP,点击打开 Example design:即可进入示例工程,如下图:

文章配图

示例工程如下:

文章配图

对于该 IP 来说,发端和收端的仿真工程不是一样的,整体框架一直,但是具体的数据流是有区别的:

文章配图

接下来,重点说明发端的 tb:

在 demo_tb 中:刚开始是对相关参数的初始化:

LANE 数量和对齐 buff 参数的初始化:

文章配图

ILAS 阶段第二个多帧配置参数的初始化:(各字段含义见手册描述)

文章配图

不同 K 码的定义:

文章配图

三种时钟的定义:GTXE2 BUF 时钟,DRP 时钟,AXI-LITE 配置时钟

文章配图

这是 sysref 的产生,比较简单不做太多阐述。

文章配图

这个模块是对 K 码的 8B/10B 解码模块,对产生的数据进行解析,当为 K 码时,就会有 is_k 拉高,这在组码同步,通道对齐阶段都有使用

文章配图

这是逗号对齐模块,在 Xilinx 高速串行收发器中,在数据之间会插入逗号也就是 K 码,监测到逗号就说明该帧为一个完整数据。

文章配图

该模块为 K28.0 的检测模块,也就是在 ILAS 阶段需要检测四个多帧的开始即 K28.0 /R/。

文章配图

这是配置 IP 的模块,通过 AXI-LITE 总线去读写寄存器,即可以通过寄存器去配置 IP 的相关参数。

文章配图

文章配图

接下来对主要仿真代码进行解析:

在组码同步阶段,仿真模块中写的是识别到 20 个 COMMA 之后,则开始进入 ILAS,并且认为已经识别到 K28.5。

文章配图

当 CGS 阶段结束后,开始进行 ILAS 阶段,这个时候首先 bit_count 作为滑动窗口,对每 10 个 bit 进行 8B/10B 解码,找出 K28.0,也就是多帧阶段的帧起始字段/R/.后面就是对每个通道都做数据

文章配图

接下来就是多通道对齐,对齐的 buf 深度为 64,每个通道按 bit 输入进 BUF,其中 I 表示通道编号。

文章配图

当所有通道对齐之后,链路正式建立。

文章配图

其他的就是仿真状态监测,通过不同的状态进行打印,熟悉了上面流程状态监测就是比较简单的模块了。

还有一点比较重要,就是寄存器配置模块,这里都是比较重要的寄存器,在我们实际项目中是使用的比较多的寄存器具体参数可以看 PG066 的寄存器空间,如果有不熟悉的,大家可以评论留言,后面看有没有必要对寄存器进行单独说明

文章配图

文章配图

图 16 寄存器空间

目录

  1. 一、初识
  2. 二、JESD204B 结构
  3. Subclass 0
  4. Subclass 1
  5. Subclass 2
  6. 三、链路层同步机制建立
  7. 第一阶段:SYSREF 阶段
  8. 第二阶段:组码同步阶段(Code Group Synchronization)
  9. 第三阶段:初始通道对齐阶段(Initial Lane Alignment Sequence)
  10. 多通道对齐
  11. 四、Xilinx IP 的仿真
  12. 4.1 IP 设置
  13. 4.2 IP 仿真
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • Git 配置与使用详解
  • Java 核心面试题精选:基础、并发与容器详解
  • Git 分支管理实战指南:从基础概念到团队协作规范
  • SVN WebUI 管理后台部署及配置指南
  • OpenCode 本地 AI 模型配置指南
  • GitHub Copilot 实战体验与功能解析
  • Linux 运行 Windows 程序指南:Wine、Proton 与虚拟化方案
  • Python 盲水印工具 BlindWaterMark 使用指南
  • Backend For Frontend(BFF)架构解析:为前端定制的服务层
  • 开源 AI 短剧生成工具 Horseplay 介绍
  • Hunyuan-MT-7B WebUI 本地部署全流程
  • C++ 手写 HTTP 服务器:从请求解析到响应构建全流程
  • IDA Pro 逆向工程:CTF 题目解析与算法还原
  • EasyOCR 使用指南:Python 开源 OCR 工具图文识别实战
  • FPGA 工程师到底有哪些方向?每个岗位都在干什么?一篇给你讲清楚
  • Python 爬虫解析利器:PyQuery 快速入门
  • Qt 前后端通信:QWebChannel JS/C++ 互操作原理与示例
  • 阿里云 MoltBot 机器人钉钉 Stream 流式接入配置
  • OpenClaw 2026.3.7 更新:支持 GPT-5.4 与记忆热插拔
  • GTC 2026 中国 AI 企业集体亮相:从技术跟随到全球并跑

相关免费在线工具

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

  • JSON美化和格式化

    将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online