FPGA纯verilog完成JESD204B协议,基于AD9625材料接收,提供2套工程源码和技术支持


FPGA纯verilog搭建JESD204B协议,基于AD9625数据接收,提供2套工程源码和技术支持

1、前言

什么是JESD204B协议?

在需要实时处理、多通道同步和定制化应用的场景中。随着5G、航空航天、医疗影像等领域的持续发展,JESD204B与FPGA的结合将继续推动高性能数字系统向更高速度、更高集成度和更智能化的方向发展。协议发展历程如下:就是JESD204B是一种高速串行接口标准,专门用于连接数据转换器(ADC/DAC)和逻辑设备(如FPGA、ASIC)。它由JEDEC固态技术协会制定,是JESD204标准的修订版本;JESD204B协议通过其高速串行接口、确定性延迟和多通道同步能力,已成为现代高速数据采集系统的首选接口标准。FPGA凭借其并行处理能力、灵活性和可重构特性,在JESD204B系统实现中展现出显著优势,特别
在这里插入图片描述
JESD204关键特性如下:
数据速率:最高达12.5 Gbps
通道数量:支持1-8个通道
编码方式:8B/10B编码
同步机制:支持确定性延迟
子类支持:Subclass 0, 1, 2
JESD204协议分层结构如下:
在这里插入图片描述
JESD204B链路建立过程如下:
在这里插入图片描述
JESD204B详细建立步骤如下:
步骤1:代码组同步(CGS)
在这里插入图片描述
步骤2:初始通道对齐(ILAS)
在这里插入图片描述
步骤3:用户数据传输
正常数据传输开始
持续监控链路状态

JESD204B具体应用领域
1、无线通信基础设施,如下:
在这里插入图片描述
应用优势:
支持大规模MIMO体系
高采样率满足5G宽带需求
多通道同步协助相控阵列

2、航空航天与国防,如下:
在这里插入图片描述
应用优势:
高可靠性,抗干扰能力强
协助高速数据采集和处理
适用于恶劣环境

3、医疗影像设备,如下:
在这里插入图片描述
应用设备:
MRI(磁共振成像)
超声成像系统
CT扫描仪

4、测试与测量仪器,如下:
在这里插入图片描述

FPGA完成JESD204B的优势概括
1、架构灵活性,如下:
在这里插入图片描述
2、主要优势对比如下:
FPGA的并行架构使其能够同时处理多个数据流和事务,非常适合于SRIO这种需要高速数据交换的场景,有助于满足系统对高带宽和低延迟的苛刻要求。

FPGA实现JESD204B的优势详解
1、并行处理能力,如下:
在这里插入图片描述
优势:同时处理多个数据通道,实现真正的并行处理。
2、定制化信号处理,如下:
在这里插入图片描述
优势:在材料进入系统前完成预处理,降低后端处理负担。
3、低延迟设计,如下:
在这里插入图片描述
优势:适用于必须快速响应的实时体系。

官方有Example,为何要用你这个?

Xilinx官方的确有JESD204B IP核的Example例程;
继而呢?你看得懂吗?你会照着模仿做自己的方案吗?
如果你会,那么请划走;
如果你不会,不妨看看下面的聊天记录
在这里插入图片描述
这位朋友用了我的JESD204B参考工程,感觉少走了一年的弯路。。。

工程概述

本设计启用Xilinx系列FPGA为平台,基于纯verilog实现的JESD204B协议实现AD9625数据收发,旨在为读者给出一套精简版的、基于JESD204B协议的的数据收发架构;

首先在由示波器产生正弦波或者采用其他信号源输入AD9625转接板;AD9625实现模数转换后将AD数据通过FMC高速连接器发送到FPGA开发板的GT高速BANK;然后调用纯verilog实现的JESD204B物理层实现并行AD数据与高速低压差分串行材料接口的转换,并输出并行数据;继而调用纯verilog建立的JESD204B链路层实现JESD204B协议层解码功能,数据链路层由解码模块和控制模块两个部分构成;然后调用纯verilog实现的JESD204B传输层实现数据帧解析和格式转换;完成解码解码后的数据送入纯verilog实现的FIFO实现位宽转换和时钟域转换;然后数据送入纯verilog实现的DMA模块构建数据搬运,搬运到FPGA开发板板载DDR3中缓存;然后vitis软件端控制DMA读取AD数据依据串口打印或者通过IIO服务发送到上位机做后续处理;针对市场主流需求,本博客设计并提供2套工程源码,具体如下:
在这里插入图片描述
现对上述2套工程源码做如下解释,方便读者理解:

工程源码1

开发板FPGA型号为Xilinx–Virtex-7–xc7vx485tffg1761-2;首先在由示波器产生正弦波或者使用其他信号源输入AD9625转接板;AD9625实现模数转换后将AD数据通过FMC高速连接器发送到FPGA开发板的GT高速BANK;继而调用纯verilog实现的JESD204B物理层搭建并行AD数据与高速低压差分串行数据接口的转换,并输出并行信息;然后调用纯verilog实现的JESD204B链路层实现JESD204B协议层解码功能,数据链路层由解码模块和控制模块两个部分构成;然后调用纯verilog实现的JESD204B传输层实现数据帧解析和格式转换;完成解码解码后的数据送入纯verilog实现的FIFO构建位宽转换和时钟域转换;然后信息送入纯verilog实现的DMA模块构建数据搬运,搬运到FPGA开发板板载DDR3中缓存;然后vitis软件端控制DMA读取AD内容利用串口打印或者利用IIO服务发送到上位机做后续处理;

工程源码2

开发板FPGA型号为Xilinx–Zynq-7000–xc7z045ffg900-2;首先在由示波器产生正弦波或者使用其他信号源输入AD9625转接板;AD9625实现模数转换后将AD数据通过FMC高速连接器发送到FPGA开发板的GT高速BANK;然后调用纯verilog实现的JESD204B物理层实现并行AD数据与高速低压差分串行数据接口的转换,并输出并行数据;继而调用纯verilog搭建的JESD204B链路层实现JESD204B协议层解码功能,数据链路层由解码模块和控制模块两个部分构成;然后调用纯verilog实现的JESD204B传输层实现信息帧解析和格式转换;完成解码解码后的数据送入纯verilog实现的FIFO实现位宽转换和时钟域转换;然后数据送入纯verilog实现的DMA模块实现数据搬运,搬运到FPGA开发板板载DDR3中缓存;然后vitis软件端控制DMA读取AD数据借助串口打印或者通过IIO服务发送到上位机做后续处理;

本博客详细描述了FPGA纯verilog实现JESD204B协议实现AD9625数据收发的设计方案,工程代码可综合编译上板调试,可直接项目移植,适用于在校学生、研究生项目编写,也适用于在职工程师做学习提升,可应用于医疗、军工等行业的高速接口或图像处理领域;
提供完整的、跑通的工程源码和技术支持;
工程源码和技术支持的获取方式放在了文章末尾,请耐心看到结果;

免责声明

本工程及其源码即有自己写的一部分,也有网络公开渠道获取的一部分(包括CSDN、Xilinx官网、Altera官网等等),若大佬们觉得有所冒犯,请私信批评教育;基于此,本工程及其源码仅限于读者或粉丝个人学习和研究,禁止用于商业用途,若由于读者或粉丝自身原因用于商业用途所导致的法律挑战,与本博客及博主无关,请谨慎使用。。。

2、相关方案推荐

我已有的所有工程源码总目录----方便你快速找到自己喜欢的项目

博客地址:就是其实一直有朋友反馈,说我的博客文章太多了,乱花渐欲迷人,自己看得一头雾水,不方便迅速定位找到自己想要的项目,所以本博文置顶,列出我目前已有的所有项目,并给出总目录,每个任务的文章链接,当然,本博文实时更新。。。以下
点击直接前往

我这里已有的 GT 高速接口解决方案

我的主页有FPGA GT 高速接口专栏,该专栏有 GTP 、 GTX 、 GTH 、 GTY 等GT 资源的视频传输例程和PCIE传输例程,其中 GTP基于A7系列FPGA开发板搭建,GTX基于K7或者ZYNQ系列FPGA开发板搭建,GTH基于KU或者V7系列FPGA开发板搭建,GTY基于KU+系列FPGA开发板搭建;以下是专栏地址:
点击直接前往

我这里已有的 JESD204 高速AD接口解决方案

我的主页有FPGA JESD204 高速AD接口解决方案专栏,有JESD204B、JESD204C等接口解决方案,以下是专栏地址:
点击直接前往

3、工程详细设计方案

工程设计原理框图

工程设计原理框图如下:
在这里插入图片描述

JESD204B 硬件设计架构

通过JESD204B硬件设计实现AD9625芯片与FPGA之间的物理通道交互,基于JESD204B协议,其中AD9625采用FMC转接板形式与FPGA开发板实现物理连接,MFC的HPC接口时钟完全右MFC转接板供给,本设计采用外部时钟输入方式,你也能够采用时钟晶振方式,比如TI公司的LMK04828,多路同源时钟实现JESD204B协议的可靠运行,JESD204B硬件设计架构如下:
在这里插入图片描述

信号输入设备

做测试时,可采用示波器产生正弦波作为信号输入,不再赘述;

AD9625芯片解读

AD9625是Analog Devices(ADI)公司推出的一款高性能、高集成度宽带射频收发器,代表了软件定义无线电(SDR)技术的先进水平。作为AD9361的升级版本,它在带宽、集成度和性能方面都有显著提升,广泛应用于通信基础设施、航空航天和国防等领域。根据官方数据手册,AD9625内部架构如下:
在这里插入图片描述

AD9625核心特性概览

ADI推出的一款高性能14位、高速模数转换器(ADC),专为宽带信号采集设计,核心特性如下:就是AD9625
1、分辨率与采样率
分辨率:14 位(无失码),确保信号量化精度。
最大采样率:125 MSPS(每秒百万采样点),支持宽带信号(如通信、雷达、测试测量领域的中频信号)采集。
2、动态性能
信噪比(SNR):74 dBFS(典型值,输入频率 70 MHz,采样率 125 MSPS),量化噪声低,适合弱信号检测。
无杂散动态范围(SFDR):90 dBc(典型值),谐波失真小,信号保真度高。
有效位数(ENOB):12 位(典型值),实际信号采集精度接近 12 位理想 ADC。
3、输入特性
模拟输入范围:±0.5 V(峰峰值 1 V),支持单端或差分输入(通过外部配置)。
输入带宽:>800 MHz,可直接采集高频信号(如射频下变频后的中频信号)。
4、电源与功耗
电源电压:1.8 V(内核)、1.2 V(数字接口),低功耗设计,典型功耗约 195 mW(125 MSPS 时)。
5、工作模式
支持正常采样模式、PRBS(伪随机序列)测试模式(用于链路验证)、直流耦合 / 交流耦合模式,灵活适配不同场景。

AD9625信息与设置接口详解

AD9625 数据接口:JESD204B 高速串行接口
AD9625 采用JESD204B协议作为高速数据输出接口,替代传统并行接口,减少引脚数量并提升传输速率,具体特性如下:
1、协议与链路配置
JESD204B 是面向高速 ADC/DAC 的串行数据传输协议,协助多通道同步、高速率传输。
AD9625 支持1 条差分串行链路(Lane),每条 Lane 的数据速率可配置(范围:1.25 Gbps ~ 3.125 Gbps),匹配 125 MSPS 采样率时,典型 Lane 速率为 2.5 Gbps(14 位数据经 8b/10b 编码后传输)。
2、数据格式
原始采样数据为 14 位补码,经 JESD204B 编码后,以帧(Frame)和多帧(Multi-frame)结构传输。
每帧包含 1 个 14 位采样点(经 8b/10b 编码扩展为 10 位符号),多帧周期内嵌入同步信息(如 SYSREF 信号触发的帧对齐)。
3、同步机制
依赖外部SYSREF(系统参考信号) 构建多芯片同步(如多 ADC 通道相位对齐),SYSREF 为脉冲信号,需与 ADC 采样时钟(CLK)同步。
内部含有 CDR(时钟数据恢复)模块,从串行数据中恢复时钟,确保接收端(FPGA)与 ADC 的时序同步。

AD9625 配置接口:SPI 控制接口
AD9625 的工作参数(如采样率、测试模式、输入范围)经过SPI 接口配置,具体特性如下:
1、SPI 接口特性
兼容 SPI v2.1 协议,支持三线模式(SCLK、MOSI、MISO),主从架构(ADC 为从设备)。
最大时钟频率:10 MHz,拥护读写操作(利用寄存器地址区分)。
2、核心配置寄存器
芯片 ID 寄存器(0x00):固定值 0x62,用于硬件识别(程序中经过ad9625_setup函数验证)。
模式控制寄存器(0x01):配置测试模式(如 PRBS 使能、直流偏置测试)。
时钟配置寄存器(0x03):设置采样时钟分频(如分频系数 1/2,降低采样率)。
JESD204B 配置寄存器(0x10-0x1F):配置 Lane 速率、编码方式(8b/10b)、帧结构参数。
3、配置流程
上电后,FPGA 依据 SPI 向 AD9625 写入配置值,步骤包括:初始化 PLL(确保采样时钟稳定)、部署 JESD204B 参数、使能数据输出,最后读取状态寄存器验证配置生效(如 PLL 锁定标志)。

纯verilog实现的JESD204B 物理层方案

非Xilinx原语部分,里面包含了GTEX2_COMMON和GTXE2_CHANNEL(GTX为例)原语,实现JESD204B物理层,即达成并行AD材料与高速低压差分串行数据接口的转换。就是JESD204B物理层采用纯verilog代码完成,注意这里的纯verilog指的

纯verilog实现的JESD204B物理层方案特性如下:
1、纯verilog代码实现,适用于Xilinx 7系列、Ultrascale和Ultrascale+系列FPGA;
2、支持Xilinx系列的GTXE2、GTHE3、GTHE4、GTYE4高速收发器原语;
3、最高可支持到单Lane 32.75Gbps线速率,根据选择的GT原语类型而定;
4、与Xilinx的JESD204 PHY IP核相比,简化了高速收发器配置流程,可任意修改底层代码,缺点是需要对高速收发器底层十分了解,否则很难精准安装;
5、预留了高速收发器的COMMON、CHANNEL和Eye-Scan的DRP配置接口,并转换为AXI4-Lite接口,可通过软件实现高速收发器线速率的动态配置;
6、支持8B10和64B66B编解码协议;

纯verilog实现JESD204B物理层方案设计架构如下:
在这里插入图片描述
纯verilog构建JESD204B物理层方案源码架构如下:
在这里插入图片描述
关于这个纯verilog搭建JESD204B物理层方案IP的详细配置和采用,博主专门写了一个文档并放在了资料包中,如下:
在这里插入图片描述

纯verilog实现的JESD204B 数据链路层方案

JESD204B信息链路层采用纯verilog代码实现,完成JESD204B数据链路层解码作用。内容链路层由解码模块和控制模块两个部分构成;
纯verilog实现的JESD204B内容链路层方案特性如下:
1、纯verilog代码实现,适用于Xilinx 7系列、Ultrascale和Ultrascale+系列FPGA;
2、协助JESD204B和JESD204C;
3、支持JESD204子类0和1;
4、确定性延迟(用于子类1操作);
5、支持AXI4-Lite动态配置;
6、支撑事件、中断;
7、8B/10B模式下的最大带宽:15 Gbps;
8、64B/66B模式下的最大带宽:32 Gbps;
9、低延迟;
10、每个独立的Lane可启用/禁用;

纯verilog实现JESD204B数据链路层方案设计架构如下:
在这里插入图片描述
纯verilog搭建JESD204B数据链路层解码模块方案代码架构如下:
在这里插入图片描述
纯verilog实现JESD204B数据链路层控制模块方案代码架构如下:
在这里插入图片描述
关于这个纯verilog构建JESD204B链路方案IP的详细配置和应用,博主专门写了一个文档并放在了资料包中,如下:
在这里插入图片描述

纯verilog实现的JESD204B 传输层方案

JESD204B传输层采用纯verilog代码实现,实现JESD204B接收数据帧解析和格式转换功能。
该JESD204B传输层方案特性如下:
1、纯verilog代码实现,适用于Xilinx 7系列、Ultrascale和Ultrascale+系列FPGA;
2、支持JESD204B和JESD204C;
3、拥护AXI4-Lite动态配置;

纯verilog实现JESD204B传输层方案设计架构如下:
在这里插入图片描述
JESD204B数据传输层负责在AD9625 JESD204B接口中进行数据格式的映射和解映射,即根据ADC芯片资料手册调整
在这里插入图片描述
关于这个纯verilog实现JESD204B传输层方案IP的详细配置和运用,博主专门写了一个文档并放在了资料包中,如下:
在这里插入图片描述

PL端逻辑工程源码架构

提供2套工程源码,以工程源码1为例,工程Block Design设计如下:
在这里插入图片描述
提供2套工程源码,以工程源码2为例,工程Block Design设计如下:
在这里插入图片描述
提供2套工程源码,以工程源码2为例,综合后的工程源码架构如下:
在这里插入图片描述

PS端软件工程源码架构

软件主要特性
PS端软件工程是基于AD9625 ADC芯片和JESD204B接口的FPGA裸机工具,主要实现 ADC 材料采集、配置管理及数据处理功能。具体功能如下:
1、硬件初始化与调整
初始化 SPI 接口用于 AD9625 部署
安装 GPIO 用于 SYSREF 信号控制
初始化高速收发器 (XCVR)、JESD204B 接收核心、ADC 核心和 DMA 控制器
验证 AD9625 芯片 ID 和 PLL 锁定状态
2、数据采集与测试
支持 PRBS(伪随机序列)测试,验证数据传输链路正确性
通过 DMA 将 ADC 数据从 FPGA 采集到 DDR 内存 (adc_buff 缓冲区)
可选 IIO 框架支持,用于内容交互
3、数据处理与输出
当启用 IIO_SUPPORT 时,凭借 UART 接口提供 IIO 设备访问能力,可与上位机通信
无 IIO 帮助时,仅完成基础配置和素材采集,不进行额外处理

软件程序流程图
程序流程图如下:
在这里插入图片描述
软件代码架构
PS端软件工程源码架构如下:
在这里插入图片描述
软件程序架构与模块作用
1、主程序模块 (ad9625_jesd204b_main.c)
程序入口,负责整体流程调度
定义硬件参数和缓冲区 (adc_buff)
协调各模块初始化顺序
2、AD9625 驱动模块 (ad9625.c/ad9625.h)
提供 SPI 读写接口,实现芯片寄存器配置
支持 AD9625 自检和测试模式切换 (如 PRBS)
验证芯片 ID 和 PLL 状态
3、JESD204B 接收模块 (axi_jesd204_rx.c)
部署 JESD204B 协议参数 (帧结构、编码方式)
监控链路状态 (锁定状态、错误信息)
管理高速串行链路的初始化和时钟配置
4、DMA 模块 (axi_dmac)
实现数据从 ADC 核心到 DDR 内存的直接传输
经过 axi_dmac_transfer_start 启动传输
拥护传输完成等待和缓存刷新
5、IIO 框架支持 (可选)
通过 UART 接口提供标准 IIO 设备访问
允许上位机通过 IIO 协议读取采集数据
实现数据缓冲区与外部交互的桥梁

软件数据流向与处理说明
1、数据采集路径
在这里插入图片描述
2、数据处理方式
无 IIO 支持:内容仅存储在 DDR 的 adc_buff 中,程序仅完成采集后退出,不进行波形分析或显示
有 IIO 协助:通过 UART 接口向上位机提供数据访问能力,上位机可通过 IIO 客户端程序 (如 libiio) 读取数据,进行波形呈现或分析
3、人机交互方式
主要利用 UART 串口通信 (当启用 IIO_SUPPORT 时)
无图形界面或本地显示功能,需依赖上位机软件进行数据可视化
支持打印调试信息到控制台 (printf/xil_printf)

4、vivado工程源码1详解–>V7-485T版本

开发板FPGA型号:Xilinx–Virtex-7–xc7vx485tffg1761-2;
FPGA制作环境:Vivado2022.2;
AD输入:AD9625;
DA输出:串口打印或串口输出到上位机;
信息交互接口:JESD204B;
JESD204B物理层方案:纯verilog达成的JESD204B物理层;
JESD204B链路层方案:纯verilog实现的JESD204B链路层;
JESD204B传输层方案:纯verilog实现的JESD204B传输层;
JESD204B使用高速收发器类型:GTH;
工程作用:让读者掌握FPGA基于JESD204B达成AD9625数据收发的设计能力,以便能够移植和设计自己的项目;
工程Block Design和工程代码架构请参考第3章节的《工程源码架构》小节内容;
工程的资源消耗和功耗如下:
在这里插入图片描述

5、vivado工程源码2详解–>Zynq7045版本

开发板FPGA型号:Xilinx–Zynq-7000–xc7z045ffg900-2;
FPGA开发环境:Vivado2022.2;
AD输入:AD9625;
DA输出:串口打印或串口输出到上位机;
数据交互接口:JESD204B;
JESD204B物理层方案:纯verilog实现的JESD204B物理层;
JESD204B链路层方案:纯verilog搭建的JESD204B链路层;
JESD204B传输层方案:纯verilog实现的JESD204B传输层;
JESD204B使用高速收发器类型:GTX;
工程作用:让读者掌握FPGA基于JESD204B实现AD9625资料收发的设计能力,以便能够移植和设计自己的项目;
工程Block Design和工程代码架构请参考第3章节的《工程源码架构》小节内容;
工程的资源消耗和功耗如下:
在这里插入图片描述

6、工程移植说明

vivado版本不一致处理

1:假设你的vivado版本与本工程vivado版本一致,则直接打开工程;
2:如果你的vivado版本低于本工程vivado版本,则需要打开工程后,点击文件–>另存为;但此方法并不保险,最保险的方法是将你的vivado版本升级到本工程vivado的版本或者更高版本;
在这里插入图片描述
3:如果你的vivado版本高于本工程vivado版本,处理如下:
在这里插入图片描述
打开工程后会发现IP都被锁住了,如下:
在这里插入图片描述
此时需要升级IP,操作如下:
在这里插入图片描述
在这里插入图片描述

FPGA型号不一致处理

如果你的FPGA型号与我的不一致,则需更改FPGA型号,操作如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
更改FPGA型号后还需要升级IP,升级IP的方法前面已经讲述了;

其他注意事项

1:由于每个板子的DDR不一定完全一样,所以MIG IP要求根据你自己的原理图进行配置,甚至许可直接删掉我这里原工程的MIG并重新添加IP,重新配置;
2:根据你自己的原理图修改引脚约束,在xdc记录中修改即可;
3:纯FPGA移植到Zynq需要在工程中添加zynq软核;

7、上板调试验证

准备工作

要求准备的器材如下:
AD9371子卡;
FPGA开发板;

AD9625数据收发效果演示

将AD9625子卡连接FPGA开发板的FMC-HP接口,如下:
在这里插入图片描述
然后打开vitis,下载程序,具体演示这里不方便展示,敬请见谅

8、工程代码的获取

代码太大,无法邮箱发送,以某度网盘链接方式发送,
资料获取方式:文章末尾的V名片。
网盘资料如下:
在这里插入图片描述
此外,有很多朋友给本博主提了很多意见和建议,希望能丰富服务内容和选项,因为不同朋友的需求不一样,因而本博主还提供以下服务:
在这里插入图片描述

posted @ 2026-01-30 08:50  gccbuaa  阅读(23)  评论(0)    收藏  举报