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)对全局时钟进行缓冲和分发