FPGA纯verilog实现JESD204B协议,基于ADRV9009数据环回收发,提供2套工程源码和技术支持

FPGA纯verilog实现JESD204B协议,基于ADRV9009数据环回收发,提供2套工程源码和技术支持

目录

FPGA纯verilog实现JESD204B协议,基于ADRV9009数据环回收发,提供2套工程源码和技术支持

1、前言

什么是JESD204B协议?

JESD204B是一种高速串行接口标准,专门用于连接数据转换器(ADC/DAC)和逻辑设备(如FPGA、ASIC)。它由JEDEC固态技术协会制定,是JESD204标准的修订版本;JESD204B协议通过其高速串行接口、确定性延迟和多通道同步能力,已成为现代高速数据采集系统的首选接口标准。FPGA凭借其并行处理能力、灵活性和可重构特性,在JESD204B系统实现中展现出显著优势,特别是在需要实时处理、多通道同步和定制化应用的场景中。随着5G、航空航天、医疗影像等领域的持续发展,JESD204B与FPGA的结合将继续推动高性能数字系统向更高速度、更高集成度和更智能化的方向发展。协议发展历程如下:

在这里插入图片描述


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协议实现ADRV9009数据收发,旨在为读者提供一套精简版的、基于JESD204B协议的的数据收发架构;

首先在由示波器产生正弦波或者使用其他信号源输入ADRV9009转接板;ADRV9009实现模数转换后将AD数据通过FMC高速连接器发送到FPGA开发板的GT高速BANK;然后调用纯verilog实现的JESD204B物理层实现高速低压差分串行AD数据与并行数据的转换,并输出并行数据;然后调用纯verilog实现的JESD204B接收端链路层实现JESD204B协议层解码功能,接收端链路层由解码模块和控制模块两个部分构成;然后调用纯verilog实现的JESD204B接收端传输层实现数据帧解析和格式转换;完成解码解码后的数据送入Xilinx官方的FIR Compiler IP核实现数据滤波;然后滤波后的数据进入纯verilog实现的接收端数据包通道聚合模块,实现4通道数据聚合为单通道数据;然后聚合数据进入Xilinx官方的DMA IP核实现数据搬运至DDR3内存;然后vitis软件端控制DMA读取AD数据通过串口打印或者通过IIO服务发送到上位机做后续处理;亦或者vitis软件端控制DMA读取AD数据送入纯verilog实现的发送端数据包通道分发模块,将单通道数据分发为4通道数据;然后4通道数据进入Xilinx官方的FIR Compiler IP核实现数据滤波;然后滤波后的数据进入纯verilog实现的JESD204B发送端传输层实现数据组帧和格式转换;然后数据进入纯verilog实现的JESD204B发送端链路层实现JESD204B协议层编码功能;然后数据进入纯verilog实现的JESD204B物理层实现并行DA数据与高速低压差分串行数据接口的转换,并输出高速低压差分串行信号;然后数据通过GT高速BANK经FMC转接板发送至ADRV9009转接板实现数模转换并发送出去。针对市场主流需求,本博客设计并提供2套工程源码,具体如下:

在这里插入图片描述


现对上述2套工程源码做如下解释,方便读者理解:

工程源码1

开发板FPGA型号为Xilinx–Zynq-7000–xc7z045ffg900-2;首先在由示波器产生正弦波或者使用其他信号源输入ADRV9009转接板;ADRV9009实现模数转换后将AD数据通过FMC高速连接器发送到FPGA开发板的GTX高速BANK;然后调用纯verilog实现的JESD204B物理层实现高速低压差分串行AD数据与并行数据的转换,并输出并行数据;然后调用纯verilog实现的JESD204B接收端链路层实现JESD204B协议层解码功能,接收端链路层由解码模块和控制模块两个部分构成;然后调用纯verilog实现的JESD204B接收端传输层实现数据帧解析和格式转换;完成解码解码后的数据送入Xilinx官方的FIR Compiler IP核实现数据滤波;然后滤波后的数据进入纯verilog实现的接收端数据包通道聚合模块,实现4通道数据聚合为单通道数据;然后聚合数据进入Xilinx官方的DMA IP核实现数据搬运至DDR3内存;然后vitis软件端控制DMA读取AD数据通过串口打印或者通过IIO服务发送到上位机做后续处理;亦或者vitis软件端控制DMA读取AD数据送入纯verilog实现的发送端数据包通道分发模块,将单通道数据分发为4通道数据;然后4通道数据进入Xilinx官方的FIR Compiler IP核实现数据滤波;然后滤波后的数据进入纯verilog实现的JESD204B发送端传输层实现数据组帧和格式转换;然后数据进入纯verilog实现的JESD204B发送端链路层实现JESD204B协议层编码功能;然后数据进入纯verilog实现的JESD204B物理层实现并行DA数据与高速低压差分串行数据接口的转换,并输出高速低压差分串行信号;然后数据通过GTX高速BANK经FMC转接板发送至ADRV9009转接板实现数模转换并发送出去。

工程源码2

开发板FPGA型号为Xilinx–Zynq UltraScale+ MPSoCs–xczu9eg-ffvb1156-2-e;首先在由示波器产生正弦波或者使用其他信号源输入ADRV9009转接板;ADRV9009实现模数转换后将AD数据通过FMC高速连接器发送到FPGA开发板的GTH高速BANK;然后调用纯verilog实现的JESD204B物理层实现高速低压差分串行AD数据与并行数据的转换,并输出并行数据;然后调用纯verilog实现的JESD204B接收端链路层实现JESD204B协议层解码功能,接收端链路层由解码模块和控制模块两个部分构成;然后调用纯verilog实现的JESD204B接收端传输层实现数据帧解析和格式转换;完成解码解码后的数据送入Xilinx官方的FIR Compiler IP核实现数据滤波;然后滤波后的数据进入纯verilog实现的接收端数据包通道聚合模块,实现4通道数据聚合为单通道数据;然后聚合数据进入Xilinx官方的DMA IP核实现数据搬运至DDR3内存;然后vitis软件端控制DMA读取AD数据通过串口打印或者通过IIO服务发送到上位机做后续处理;亦或者vitis软件端控制DMA读取AD数据送入纯verilog实现的发送端数据包通道分发模块,将单通道数据分发为4通道数据;然后4通道数据进入Xilinx官方的FIR Compiler IP核实现数据滤波;然后滤波后的数据进入纯verilog实现的JESD204B发送端传输层实现数据组帧和格式转换;然后数据进入纯verilog实现的JESD204B发送端链路层实现JESD204B协议层编码功能;然后数据进入纯verilog实现的JESD204B物理层实现并行DA数据与高速低压差分串行数据接口的转换,并输出高速低压差分串行信号;然后数据通过GTH高速BANK经FMC转接板发送至ADRV9009转接板实现数模转换并发送出去。

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

免责声明

本工程及其源码即有自己写的一部分,也有网络公开渠道获取的一部分(包括ZEEKLOG、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硬件设计实现ADRV9009芯片与FPGA之间的物理通道交互,基于JESD204B协议,其中ADRV9009采用FMC转接板形式与FPGA开发板实现物理连接,MFC的HPC接口时钟完全右MFC转接板供给,本设计采用外部时钟输入方式,你也可以采用时钟晶振方式,比如TI公司的LMK04828,多路同源时钟实现JESD204B协议的可靠运行,JESD204B硬件设计架构如下:

在这里插入图片描述

信号输入设备

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

ADRV9009芯片解读

ADRV9009内部架构如下:

ADRV9009特性如下:
1、双发射器/接收器
2、双输入共享观察接收器
3、最大接收器带宽:200 MHz
4、最大可调谐发射器合成带宽:450 MHz
5、最大观察接收器带宽:450 MHz
6、全集成的小数 N 射频合成器
7、全集成的时钟合成器
8、适用于射频 LO 和基带时钟的多芯片相位同步
9、JESD204B 数据路径接口
10、调谐范围:75 MHz 至 6000 MHz

ADRV9009是ADI公司一款高集成度射频(RF)、捷变收发器,提供双通道发射器和接收器、集成式频率合成器以及数字信号处理功能。这款IC具备多样化的高性能和低功耗组合,以满足3G、4G和5G宏蜂窝时分双工(TDD)基站应用要求。
ADRV9009接收路径由两个独立的宽带宽、直接变频接收器组成,具有一流的动态范围。该器件还支持用于TDD应用的宽带宽、时间共享观测路径接收器(ORx)。完整的接收子系统拥有自动和手动衰减控制、直流失调校正、正交误差校正(QEC)和数字滤波功能,从而消除了在数字基带中提供这些功能的必要性。还集成了多种辅助功能,比如模数转换器(ADC)、数模转换器(DAC)、用于功率放大器(PA)的通用输入/输出(GPIO)以及RF前端控制。除自动增益控制(AGC)之外,ADRV9009还具有灵活的外部增益控制模式,且在动态设置系统级增益方面具有极大的灵活性。
ADRV9009接收信号通过具有固有抗混叠特性的一组四个高动态范围、连续时间Σ-Δ ADC实现数字化。相比传统的中频(IF)接收器时,直接变频架构组合不会出现带外镜像混频或缺少混叠,可降低对RF滤波器的要求。发射器采用创新的直接变频调制器,可实现高调制精度和极低的噪声。观测接收器路径由一个宽带宽、直接变频接收器组成,具有一流的动态范围。
ADRV9009完全集成的锁相环(PLL)可同时针对发射器(Tx)和接收器(Rx)信号路径提供高性能、低功耗的小数N分频RF频率合成。额外的频率合成器可生成转换器、数字电路和串行接口所需的时钟。多芯片同步机制可同步RF本振(LO)相位和多个ADRV9009芯片之间的基带时钟。同时采取防范措施,以满足高性能基站应用的隔离要求。还集成了压控振荡器(VCO)和环路滤波器元件。
ADRV9009高速JESD204B接口支持高达12.288 Gbps的通道速率,在最宽带宽模式下实现每发射器两个通道以及每接收器单个通道。该接口还支持针对更低带宽的交错模式,从而将高速数据接口通道总数降至1。还支持固定和浮点两种数据格式。浮点格式使内部AGC对解调器器件不可见。
ADRV9009的内核可由1.3 V稳压器至1.8 V稳压器直接供电并通过标准的四线式串行端口进行控制。全面的节电模式可将正常使用情况下的功耗降至低点。ADRV9009采用12 mm × 12 mm、196引脚芯片级球栅阵列封装(CSP_BGA)。

纯verilog实现的JESD204B 物理层方案

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

纯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链路层编码发送功能。链路层发送由编码模块和控制模块两个部分构成;
纯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的详细配置和使用,博主专门写了一个文档并放在了资料包中,如下:

在这里插入图片描述

纯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为例,综合后的工程源码架构如下:

在这里插入图片描述

PS端软件工程源码架构

软件主要功能
1、上电自检与配置:依次给各个硬件模块(时钟、数据链路、芯片本身)“通电”并“设置工作模式”。
2、建立数据通道:搭建好从射频模拟信号到FPGA内部数字内存之间的完整高速公路。
3、运行与交互:最后进入工作状态,可以执行预设的数据收发任务(如DMA_EXAMPLE),或者等待更高级的命令(通过IIO框架)。
软件程序流程图
程序流程图如下:

在这里插入图片描述


软件代码架构
PS端软件工程源码架构如下:

在这里插入图片描述


软件程序架构
流程图展示了代码的宏观执行顺序,而具体工作由以下几个紧密协作的软件模块完成:

1、Talise API驱动层 (talise.h, talise.c)
作用:这是控制ADRV9009芯片的核心软件层。它提供了一系列函数,将复杂的射频参数配置(如频率、增益、带宽)和操作(如启动、校准、同步)封装成简单的API。
在代码中的体现:talise_setup() 函数调用此API,根据 talise_config.h 中的预定义参数(talInit)对芯片进行完整配置。talise_multi_chip_sync() 则用于多芯片相位同步,这对MIMO系统至关重要。

2、硬件抽象层与平台驱动 (adi_hal.h, 各no_os_*及平台头文件)
作用:提供对底层硬件(SPI, GPIO, 缓存等)的统一访问接口,使上层代码无需关心具体使用的是Xilinx还是Altera(Intel)的FPGA。
在代码中的体现:hal 结构体变量封装了SPI、GPIO的操作句柄和参数。例如,通过hal[t].spi_adrv_csn指定SPI片选,Xil_DCacheFlush()等函数管理数据缓存。

3、高速数据链路模块 (JESD204B & FPGA收发器)
作用:负责ADRV9009与FPGA之间高速数字基带数据流的可靠传输。JESD204B是一种高速串行协议,代码需要正确配置其链路参数(车道速率、帧格式等)。
在代码中的体现:jesd_init()配置JESD协议参数;fpga_xcvr_init()配置FPGA内部的收发器(Transceiver)物理层,以匹配计算出的车道速率。jesd_rx_watchdog()和jesd_status()用于监控链路健康状态。

4、数据路径与控制IP核 (ADC/DAC/DMA Controller)

作用:在FPGA侧,这些IP核负责处理并移动JESD链路送来的数据。
axi_adc_core / axi_dac_core:将JESD串行数据转换为并行数据供逻辑使用,或反之。
axi_dmac (Direct Memory Access Controller):高效地在数据转换器和内存之间搬运大量数据,无需CPU频繁干预。
在代码中的体现:axi_adc_init(), axi_dac_init(), axi_dmac_init()初始化这些IP核。在DMA_EXAMPLE部分,演示了如何使用DMA将波形数据从内存发送到DAC,或将ADC数据捕获到内存。

5、时钟与电源管理 (app_clocking.c)
作用:生成并提供ADRV9009和FPGA收发器所需的各种高精度、低抖动时钟(如器件时钟、SYSREF参考时钟等)。这是整个系统稳定工作的基础。
在代码中的体现:clocking_init()函数根据系统需求,通过外部时钟芯片(如AD9528)配置并输出这些时钟。

6、工业I/O框架 (IIO Framework) - 可选项
作用:提供了一个用于调试、数据采集和远程控制的成熟框架。通过IIO,可以在主机PC上使用工具(如iio-oscilloscope)实时查看ADRV9009采集的波形或动态调整其参数。
在代码中的体现:当定义IIO_SUPPORT宏时,start_iiod()函数会启动一个IIO守护进程,将ADC/DAC设备暴露给网络或本地。

4、vivado工程源码1详解–>Zynq7045版本

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

在这里插入图片描述

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

开发板FPGA型号:Xilinx–Zynq UltraScale+ MPSoCs–xczu9eg-ffvb1156-2-e;
FPGA开发环境:Vivado2022.2;
AD输入:ADRV9009;
DA输出:串口打印或串口输出到上位机;
数据交互接口:JESD204B;
JESD204B物理层方案:纯verilog实现的JESD204B物理层;
JESD204B链路层方案:纯verilog实现的JESD204B链路层;
JESD204B传输层方案:纯verilog实现的JESD204B传输层;
JESD204B使用高速收发器类型:GTH;
工程作用:让读者掌握FPGA基于JESD204B实现ADRV9009数据收发的设计能力,以便能够移植和设计自己的项目;
工程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、上板调试验证

准备工作

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

ADRV9009数据收发效果演示

将ADRV9009子卡连接FPGA开发板的FMC-HP接口,如下:

在这里插入图片描述


然后打开vitis,下载程序,具体演示这里不方便展示,敬请见谅

8、工程代码的获取

代码太大,无法邮箱发送,以某度网盘链接方式发送,
资料获取方式:文章末尾的V名片。
网盘资料如下:

在这里插入图片描述


此外,有很多朋友给本博主提了很多意见和建议,希望能丰富服务内容和选项,因为不同朋友的需求不一样,所以本博主还提供以下服务:

在这里插入图片描述

Read more

【前端实战】构建 Vue 全局错误处理体系,实现业务与错误的清晰解耦

【前端实战】构建 Vue 全局错误处理体系,实现业务与错误的清晰解耦

目录 【前端实战】构建 Vue 全局错误处理体系,实现业务与错误的清晰解耦 一、为什么要做全局错误处理? 1、将业务逻辑与错误处理解耦 2、为监控和埋点提供统一入口 二、Vue 中的基础全局错误处理方式 1、Vue 中全局错误处理写法 2、它会捕获哪些错误? 3、它不会捕获哪些错误? 4、errorHandler 的参数含义 三、全局错误处理的进阶设计 1、定义“可识别的业务错误” 2、在 errorHandler 中做真正的“分类处理” 3、补齐 Promise reject 的捕获能力 4、错误处理的策略化封装 四、结语         作者:watermelo37         ZEEKLOG优质创作者、华为云云享专家、阿里云专家博主、腾讯云“

Java Web 交通管理在线服务系统系统源码-SpringBoot2+Vue3+MyBatis-Plus+MySQL8.0【含文档】

Java Web 交通管理在线服务系统系统源码-SpringBoot2+Vue3+MyBatis-Plus+MySQL8.0【含文档】

摘要 随着城市化进程的加快和机动车保有量的持续增长,交通管理面临着日益复杂的挑战。传统的线下交通管理服务模式效率低下,难以满足现代社会的需求。交通拥堵、违章处理效率低、信息不透明等问题日益突出,亟需通过信息化手段提升管理效率和服务水平。基于此,开发一套高效、便捷的交通管理在线服务系统具有重要意义。该系统旨在整合交通管理资源,实现业务线上化、数据可视化,为公众提供一站式服务,同时为管理部门提供决策支持。关键词:交通管理、在线服务、信息化、效率提升、决策支持。 本系统采用SpringBoot2作为后端框架,结合Vue3前端技术,实现前后端分离开发。数据库选用MySQL8.0,通过MyBatis-Plus简化数据操作。系统功能涵盖用户管理、违章处理、车辆信息管理、在线缴费等模块。用户可通过系统查询违章记录、缴纳罚款、预约业务办理;管理员则能高效管理车辆和驾驶员信息,生成统计报表。系统设计注重用户体验和数据安全,采用JWT进行身份验证,确保数据传输加密。关键词:SpringBoot2、Vue3、MyBatis-Plus、MySQL8.0、JWT、数据安全。 数据表

OpenClaw Web Search 完全指南(2026年3月最新)

OpenClaw Web Search 完全指南(2026年3月最新) 本文详细介绍 OpenClaw 内置 web_search 工具的 5 个官方搜索渠道,以及 Tavily 技能的使用方法。帮助你选择最适合的免费/付费方案。 目录 * OpenClaw 搜索功能概述 * 5 个官方搜索渠道详解 * 1. Brave Search API * 2. Google Gemini * 3. Grok (xAI) * 4. Kimi (Moonshot) * 5. Perplexity * 免费额度对比表 * 推荐配置方案 * Tavily Web Search 技能 * 配置步骤详解 * 常见问题 OpenClaw 搜索功能概述 OpenClaw 提供两种搜索能力:

编程小白也能玩转AI!零基础入门指南

编程小白也能玩转AI!零基础入门指南

🎁个人主页:User_芊芊君子 🎉欢迎大家点赞👍评论📝收藏⭐文章 🔍系列专栏:AI 【前言】 你是不是也经常听到“AI时代来了”,却总觉得那是程序员、算法工程师的专属领域?自己连代码都没写过,是不是就只能旁观?别急——2025年,AI早已不是高不可攀的黑科技,而是一套普通人也能上手的实用工具。本文专为零编程基础的小白量身打造,不讲公式、不谈理论,只教你怎么用最简单的方式,把大模型变成你的“智能外挂”:写周报、回邮件、分析数据、做方案……从注册账号到跑通第一段代码,手把手带你迈出第一步。你会发现,会打字,就能玩转AI。 一、别被“AI”吓到!你不需要成为科学家 很多人一听“人工智能”,立刻想到: * 要懂数学?要会微积分? * 要会写复杂代码? * 要有GPU服务器? 错!2025年了,AI已经像Word、