ad9250与FPGA jesd204b接口调试记录

ops/2024/9/23 18:25:18/

最近项目中采用FPGA+AD9250实现数据采集功能,记录一下调试的过程。

1.硬件架构

AD9250与FPGA数据通路采用jesd204B协议,基于SerDes接口,硬件方案如下图所示。FPGA采用xilinx ku3p.
在这里插入图片描述

1个AD9250有2个lane,我们的系统用了2个AD9250接在FPGA的1个收发器Quad(4个lane)上。

注:两个jesd204bip核共用一个收发器的quad必须使用CPLL,如果使用QPLL会报错,因为QPLL是4个channel公用的,而4个channel各自有一个CPLL。当一个quad不同channel独立工作的时候就必须使用CPLL。

2.时钟方案

根据xilinx jesd204b ip核手册的时钟章节可以看到有一种简化的时钟方案(下图),用收发器的参考时钟作为jesd204b ip核的核心时钟。前提是两者的频率相等,核心时钟由线速率得到(ad9250线速率5G/40=125M),我们将收发器的参考时钟配置为125M即可共用。
在这里插入图片描述

通过这两个原语何以实现上图中clocking mudule的时钟方案

//IBUFDS_GTE4IBUFDS_GTE4 ibufds_refclk0(.O               (refclk_i),.ODIV2           (refclk_copy),.CEB             (tied_to_ground_i),.I               (refclk_pad_p),.IB              (refclk_pad_n));BUFG_GT refclk_bufg_gt_i(.I              (refclk_copy),.CE             (gt_powergood),.CEMASK         (1'b1),.CLR            (1'b0),.CLRMASK        (1'b1),.DIV            (3'b000),.O              (coreclk_i));

时钟芯片生成sysref信号、收发器的参考时钟、ADC采样时钟,其中ADC采样时钟设置为250M

注:sysref信号是jesd204b的class 1 用来实现确定性延时的信号,sysref必须是多帧时钟的周期的整数倍,由于jesd204b的F(每个多帧的帧数)默认设置了32,所以这里sysref的频率设置为采样频率的32分之1。

注:如果收发器的参考时钟是固定的没法修改,比如156.25M,与核心时钟不一致,那么就不能用上述的时钟方案,只能用通用方案,即单独一路时钟作为核心时钟,如果下图所示:

在这里插入图片描述

3.FPGA配置

FPGA侧需要两个ip核,jesd204和jesd204phy。ip核配置的参数由所选adc确定。包括SerDes的lane数量,sysref模式(连续还是单次),K(每帧的字节数),F(每个多帧的帧数),线速率,phy的参考时钟频率。这些要与adc设置一致。

ad9250的sysref默认是连续模式,采样的位宽是14bit,一帧数据会填充2bit达到16bit,也就是两个字节,所以K配置为2,F默认是32,所以ip核配置为32。线速率手册上是5Gbps,我们也可以自己算出来:

采样频率250Mx位宽14bit=3.5Gbps,算上每个采样数据补充的2bit以及链路层8b10b编码,最终的线速率为:

3.5Gx16/14x10/8=5Gbps

ip核配置

在这里插入图片描述

在这里插入图片描述

勾选示例工程包含共享逻辑,可以参考示例工程的时钟方案,特别是多个adc同步场景。

在这里插入图片描述

根据adc的设置,sysref打开

在这里插入图片描述

204bphy配置

在这里插入图片描述

在这里插入图片描述

4.启动流程

  1. 复位FPGA的204Bip核
  2. 配置时钟芯片,产生各个时钟源
  3. 使能时钟buffer,将时钟源分配给各个ADC和FPGA
  4. 根据ADC手册上的配置流程,配置204b相关参数,最后使能adc以及204b接口
  5. 将FPGA的204Bip核解除复位状态,开始和ADC完成204b的同步工作
  6. 获取采集数据

5.注意事项

jesd204b ip核的axi-lite接口用来动态配置ip核,不管是否使用都需要给时钟驱动(下面图片的信号),否则ip核一直处于复位状态无法工作。

在这里插入图片描述


http://www.ppmy.cn/ops/87668.html

相关文章

项目开发经验

1.背景 在准备开发一个项目或者项目中的一个模块的时候,除了系统本身的设计,还有一个非常重要的设计 测试的设计或者说生成模拟数据的设计也是非常重要的,否则在开发中去手动配置数据是非常耗时麻烦的,而且也不准确 2.场景假设 假设项目组要开发一个类似某宝的电商系统, 主要…

2024年人工智能顶级会议投稿信息汇总(数据挖掘领域)

数据挖掘是信息科学领域的重要分支,致力于挖掘和分析庞大数据集中的有价值模式与规律。它融合了统计学、机器学习和数据库技术,目的是从海量数据中抽取有用的知识,辅助决策制定过程。本文首先精选介绍数据挖掘领域内的重要会议,包…

从分散到整合,细说比特币发展史

原文标题:《Layered Bitcoin》 撰文:Saurabh Deshpande 编译:Chris,Techub News 古往今来,货币在社会中都具有三个关键的功能:财富的储存手段、交换媒介和计量单位。虽然货币的形式在不断变化&#xff0c…

CSS雷达光波效果(前端雷达光波效果)

前言 CSS雷达光波效果是一种视觉动画效果,常用于模仿雷达扫描或检测的视觉反馈。这种效果通常涉及到动态的圆形或弧形图案,它们从一个中心点向外扩散,类似于水面上的涟漪或雷达扫描线。以下是创建CSS雷达光波效果的一些关键技术和步骤&#…

https执行过程,特点,作用

还是大剑师兰特:曾是美国某知名大学计算机专业研究生,现为航空航海领域高级前端工程师;CSDN知名博主,GIS领域优质创作者,深耕openlayers、leaflet、mapbox、cesium,canvas,webgl,ech…

[Linux安全运维] Nginx安装部署以及LNMP框架搭建保姆级教程

前言 LNMP:Linux 系统下 NginxMySQLPHP 网站服务器架构。因为四种软件均是免费开源网站,所有这是一个免费、高效的网站服务系统。 本章主要介绍的是Nginx相关的环境部署,以及LNMP框架的搭建,Nginx知识点介绍在文章:[…

关于Unity四种合批技术详解

文章目录 一.静态合批(StaticBatching)1.启用静态合批2.举例说明3.静态合批的限制4.静态合批的优点缺点5.动态指定物品合批 二.动态合批(Dynamic Batching)1.启用动态合批2.合批规则3.举例说明4.使用限制 三.GPU Instancing1.启用GPU Instancing2.启用限制3.举例说明 四.SRP Ba…

C#实现数据采集系统-Mqtt实现采集数据转发

在数据采集系统中,通过ModbusTcp采集到数据之后,再通过MQTT转发到其他应用 MQTT操作 安装MQTT mqtt介绍和环境安装 使用MQTT 在C#/Net中使用Mqtt MQTT类封装 MQTT配置类 public class MqttConfig{public string Ip {get; set;