☰
JESD204 ip核使用与例程分析(二)
2026/10/9 4:53:17 网站建设 项目流程

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_phy ip核与JESD204 IP核数据流

JESD204时钟方案

图3-1 展示的是最通用、最灵活的时钟解决方案。在该方案中,refclk和glblclk均由同一个外部时钟芯片产生,进入 FPGA 后分别作为:

  • refclk→ JESD204_PHY 内部收发器(SerDes)的参考时钟;
  • glblclk→ JESD204 IP 核的核时钟。

在这种架构下,参考时钟与核时钟在物理上完全分离,二者可以运行在不同的时钟频率下,互不制约。
唯一的限制在于:参考时钟的频率值需根据收发器线速率来选择,而核时钟的频率值则严格等于线速率的 1/40。

为什么是 40?推导过程如下:

  • IP 核数据位宽选择32 bit;
  • 采用8b/10b 编码(每 8 bit 数据实际传输 10 bit);
  • 因此:32 / 8 × 10 = 40,即每 40 个串行比特对应 1 个核时钟周期。
    举例说明:

假设线速率为6.25 Gbps,则:

  • 核时钟频率 = 6.25 G / 40 =156.25 MHz;
  • 参考时钟频率同样可选156.25 MHz。

专用差分时钟对

input refclk0p, input refclk0n, input glblclkp, input glblclkn,

端口说明:

  • refclk0p/n:SerDes 专用参考时钟,必须专用,不可与其他功能共用;
  • glblclkp/n:FPGA 内部逻辑的全局时钟,强烈建议专用,以保证系统的稳定性和可靠性。

例程分析

Vivado 自带 JESD204 示例工程。以下分析基于如下假设:ADC 分辨率为 14 bit,含 2 bit 控制位。

jesd204_0_transport_layer_demapper

该模块负责 JESD204 协议接收端的 Transport Layer(传输层)解包,即将 IP 核输出的宽总线数据还原为各通道的采样数据。模块功能拆解:

  • 输入:宽总线格式的串行接收数据rx_tdata[255:0],以及数据有效信号rx_tvalid;
  • 解包:将 256 位数据流按 JESD204 协议格式,分离为8 个通道(Channel 0~7);
  • 每个通道包含:两个采样数据(sampl0、sampl1)和两个控制位(cntrl0、cntrl1);
  • 位宽:每个采样数据为14 bit,每个控制信号为2 bit;
  • 输出:对每个通道的数据和控制信号进行寄存,同步输出到下一级模块,便于后续数据处理与分析;
  • 握手:通过ready_out信号指示当前输出数据是否有效。注意:在实际代码移植、自行实现 JESD204 功能时,不使用该模块,而是自己拆分 ADC 接收到的数据。

jesd204_0_sig_chk

该模块是 JESD204 示例工程中的信号校验模块,用于对接收到的多通道采样数据和控制信号进行自动比对与校验,帮助验证链路传输的正确性。

输入信号:

  • 采样数据:8 个通道,每通道2 组采样,每组采样14 bit;
  • 控制信号:每通道2 个控制信号,每个2 bit。为什么每个通道有两组采样?

每个通道包含两组采样,是 JESD204 协议与 IP 核设计时,为提高数据吞吐率和链路利用率而采取的策略:每个时钟周期打包传输多个采样数据,既能高效利用带宽,也方便后续数据处理。具体原因如下:
原因 1:协议层面的数据打包机制- JESD204 协议在数据传输时,通常会将多个采样数据打包在一个数据帧/多帧中,以提高链路利用率和吞吐率;

  • 在 FPGA 端,每个时钟周期从 IP 核输出的数据总线(如 256 bit)往往包含了多个采样点的数据,而非单一采样。原因 2:提升数据吞吐率- JESD204链路速率很高,单个采样数据位宽较小(如8位、14位等)。
  • 每个时钟周期传输多个采样,可以充分利用总线带宽,减少时钟频率压力,提高系统效率。

jesd204_0_clocking

该模块负责 JESD204 系统的时钟输入与全局分布,主要完成以下两步工作:

第一步:接收并转换差分时钟输入

模块接收两组差分时钟信号:

  • refclk_pad_p/n:SerDes(高速收发器)的参考时钟输入;
  • glblclk_pad_p/n:FPGA 的全局时钟输入。

这两组差分信号分别通过 Xilinx 的专用差分输入缓冲器(IBUFDS_GTE2和IBUFDS)转换为 FPGA 内部的单端时钟信号,供后续电路使用。

第二步:全局时钟分布

使用全局时钟缓冲器(BUFG)对全局时钟进行缓冲和分发,生成glblclk_buf,保证时钟信号在 FPGA 内部的低偏斜和高可靠性。

//IBUFDS_GTE2IBUFDS_GTE2

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询