当前位置: 首页 > news >正文

JESD204 ip核使用与例程分析(二)

JESD204 ip核使用与例程分析(二)

  • JESD204时钟方案
  • 专用差分时钟对
  • 例程分析
    • jesd204_0_transport_layer_demapper
    • jesd204_0_sig_chk
    • jesd204_0_clocking
    • jesd204_0 ip核
      • port
      • 寄存器
      • AXI-LITE寄存器配置
    • jesd204_phy ip核

JESD204时钟方案

在这里插入图片描述
图3-1所示为最通用、灵活的时钟解决方案。在图中,refclk和glblclk均由同一外部时钟芯片产生,进入FPGA后分别作为JESD204_PHY内部收发器的参考时钟和JESD204 IP核的核时钟。在这种方式下,参考时钟和核时钟完全物理上分离,它们可以运行在不同的时钟频率下而没有相互限制。

唯一的限制就是参考时钟的频率值要根据收发器线速率的大小而选择,核时钟的频率值则完全等于线速率的1/40倍。

假设线速率为6.25G,那么核时钟的频率值为6.25G/40=156.25MHZ,参考时钟频率也可选156.25MHZ

专用差分时钟对

  input                   refclk0p,input                   refclk0n,input                   glblclkp,input                   glblclkn,
  • refclk0p/n 是SerDes专用参考时钟,必须专用;
  • glblclkp/n 是FPGA内部逻辑的全局时钟,强烈建议专用,以保证系统的稳定和可靠。最好专用

例程分析

vivado自带例程,假设ADC分辨率为14bit,含2bit控制位;

jesd204_0_transport_layer_demapper

该模块用于JESD204协议接收端的Transport Layer(传输层)解包。

  • 输入为宽总线格式的串行接收数据(rx_tdata[255:0]),以及数据有效信号(rx_tvalid)。
  • 将输入的256位数据流,按照JESD204协议格式,分离成8个通道(Channel 0~7),每个通道包含两个采样数据(sampl0、sampl1)和两个控制位(cntrl0、cntrl1)。
  • 每个采样数据为14位,每个控制信号为2位。
  • 对每个通道的数据和控制信号进行寄存,同步输出到下一级模块,便于后续数据处理和分析。
  • 通过ready_out信号,指示当前输出数据是否有效。

在代码移植,实现JESD204功能时不使用该模块,自己拆分ADC接收到的数据

jesd204_0_sig_chk

  • 该模块是JESD204示例工程中的信号校验模块,用于对接收到的多通道采样数据和控制信号进行自动比对和校验。
  • 输入为8个通道的采样数据(每通道2组采样,每组采样14位)和控制信号(每通道2个控制信号,每个2位)。

为什么每个通道两组采样?
每个通道有两组采样,是因为JESD204协议和IP核设计时,为了提高数据吞吐率和链路利用率,每个时钟周期会打包传输多个采样数据。这样既能高效利用带宽,也方便后续数据处理。

原因1:

  • JESD204协议在数据传输时,通常会将多个采样数据打包在一个数据帧/多帧中,以提高链路利用率和吞吐率。
  • 在FPGA端,每个时钟周期从IP核输出的数据总线(如256位)往往包含了多个采样点的数据,而不是单一采样。

原因2:提升数据吞吐率

  • JESD204链路速率很高,单个采样数据位宽较小(如8位、14位等)。
  • 每个时钟周期传输多个采样,可以充分利用总线带宽,减少时钟频率压力,提高系统效率。

jesd204_0_clocking

  • 接收两组差分时钟输入信号:
    refclk_pad_p/n:SerDes(高速收发器)参考时钟输入
    glblclk_pad_p/n:FPGA全局时钟输入
    通过 Xilinx 的专用差分输入缓冲器(IBUFDS_GTE2 和 IBUFDS)将差分时钟信号转换为单端时钟信号,供后续电路使用。

  • 全局时钟分布
    使用全局时钟缓冲器(BUFG)对全局时钟进行缓冲和分发

相关文章:

  • Spring Boot 与 RabbitMQ 的深度集成实践(三)
  • MAC电脑中右键后复制和拷贝的区别
  • LabVIEW数据库使用说明
  • labview硬件开发板——LED流水灯
  • 在linux里上传本地项目到github中
  • NW860NW894美光闪存颗粒NX770NX789
  • 网络安全之大模型隐私攻击技术
  • 计算机视觉与深度学习 | EMD-KPCA-LSTM、EMD-LSTM、LSTM回归预测对比,多输入单输出(Matlab完整程序和数据)
  • QT6 源(111):阅读与注释菜单栏 QMenuBar,进行属性与成员函数测试,信号与槽函数测试,并给出源码
  • 华为ODgolang后端一面面经
  • 对话即编程:如何用 Trae 的 @智能体 5 分钟修复一个复杂 Bug?
  • Uniapp中动态控制scroll-view滚动的方式
  • 耗时十分钟,做了一个 uniapp 灵感泡泡机
  • Linux笔记---内核态与用户态
  • uniapp运行到微信开发者工具报错“更改appid失败touristappidError:tourist appid”
  • Python对JSON数据操作
  • vscode怎么关闭自动定位文件
  • 计算机底层的多级缓存以及缓存带来的数据覆盖问题
  • 包装类(1)
  • 一文详解红黑树
  • 上海文化馆服务宣传周启动,为市民提供近2000项活动
  • 上海中心城区首条“定制化低空观光航线”启航,可提前一天提需求
  • 周国辉谈花开岭现象 :年轻的公益人正在用行动点亮希望
  • 假冒政府机构账号卖假货?“假官号”为何屡禁不绝?媒体调查
  • 芬兰西南部两架直升机相撞坠毁,第一批救援队已抵达现场
  • 美官方将使用华为芯片视作违反美出口管制行为,外交部回应