AD9371 官方例程HDL详解之JESD204B TX侧时钟生成 (二)

AD9371 系列快速入口

AD9371+ZCU102 移植到 ZCU106 : AD9371 官方例程构建及单音信号收发

ad9371_tx_jesd -->util_ad9371_xcvr接口映射: AD9371 官方例程之 tx_jesd 与 xcvr接口映射

AD9371 官方例程 时钟间的关系与生成 : AD9371 官方例程HDL详解之JESD204B TX侧时钟生成(一)

梳理 AD9371 时钟,理解采样率和各个时钟之间的关系 : AD9371 官方例程HDL详解之JESD204B TX侧时钟生成 (三)

参考资料:
UltraScale Architecture GTH Transceivers User Guide UG576


前言

AD9371 官方例程HDL详解之JESD204B TX_CLK生成 (一)


一、TXUSRCLK 和 TXUSRCLK2

TXUSRCLK2 主要负责 写数据到 TXDATA 端口,TXUSRCLK主要提供TX PCS 部分逻辑时钟。PCS中还有一个时钟域: PMA parallel clock domain (XCLK)。 TX Serial Clock是高速串行时钟。下面重点介绍TXUSRCLK和TXUSRCLK2
在这里插入图片描述
TXUSRCLK 和 TXUSRCLK2 之间的关系和 TX_DATA_WIDTH 、 TX_INT_DATAWIDTH 等参数有关,本例程中,TX8B10BEN=1; TX_DATA_WIDTH =40; TX_INT_DATAWIDTH =1; Internal Data Width =40;

在这里插入图片描述
得到
TXUSRCLK Rate = Line Rate / 40= link rate;

在这里插入图片描述
TXUSRCLK2 = TXUSRCLK= Line Rate / 40= link rate;

在这里插入图片描述

下图中TXOUTCLK 选择的 TXOUTCLKPMA , 本例中 TXOUTCLKPMA =Line Rate / (2(上升沿和下降沿都有效) x 4 x 5)=Line Rate / 40=TXUSRCLK2 = TXUSRCLK (详见下一节TX Serial Clock 和 PMA Parallel Clock),所以TXOUTCLK可以经过BUFG_GT后直接驱动TXUSRCLK2和TXUSRCLK 。

在这里插入图片描述

二、TX Serial Clock 和 PMA Parallel Clock

在这里插入图片描述
PISO模块,将并行数据转化为高速串行数据输出,PISO高速串行时钟由QPLL0/1 或CPLL 输出的信号经过D分频后生成:
f P L L C l k o u t D \frac{f_{P L L C l k o u t} }{D} DfPLLClkout
由于上升沿和下降沿都有效,
f LineRate  = f P L L C l k o u t × 2 D f_{\text {LineRate }}=\frac{f_{P L L C l k o u t} \times 2}{D} fLineRate =DfPLLClkout×2
对于后续的 2或4 分频,TX_INT_DATAWIDTH = 0 为2分频;TX_INT_DATAWIDTH = 1 是4分频。

对于后续的 4或 5 分频,TX_DATA_WIDTH = 16 或 32 或 64 为4 分频;TX_DATA_WIDTH = 20 或 40 或 80 为5 分频;

本例程中TX_INT_DATAWIDTH = 1;TX_DATA_WIDTH = 40; 依次选择 4分频 和 5分频。

PISO并行时钟由TXOUTCLKPMA提供:

T X O U T C L K P M A = f P L L C l k o u t D ∗ 4 ∗ 5 TXOUTCLKPMA=\frac{f_{P L L C l k o u t} }{D*4*5} TXOUTCLKPMA=D45fPLLClkout

可知在例程中 TXOUTCLKPMA 与 LineRate 差40倍
T X O U T C L K P M A = f LineRate  40 = T X U S R C L K = T X U S R C L K 2 TXOUTCLKPMA=\frac{f_{\text {LineRate }} }{40}=TXUSRCLK =TXUSRCLK2 TXOUTCLKPMA=40fLineRate =TXUSRCLK=TXUSRCLK2

三、TXOUTCLK

在这里插入图片描述
TXOUTCLK 经过 BUFG_GT后 驱动TXUSRCLK2和TXUSRCLK ,TXOUTCLK 可以根据 TXOUTCLKSEL 选择来源,根据下述程序 TXOUTCLK = 3’b011; 选择 TXPLLREFCLK_DIV1

在这里插入图片描述在这里插入图片描述
TXPLLREFCLK_DIV1 根据 TXSYSCLKSEL选择时钟源

上述结构体中 sys_clk_sel = ADXCVR_SYS_CLK_QPLL0=3;

channel 原语赋值时:

TXSYSCLKSEL: assign tx_sys_clk_sel_s = (up_tx_sys_clk_sel[1] == 0) ? 2'b00 : {1'b1,~up_tx_sys_clk_sel[0]};

所以2’b11最低位取反,TXSYSCLKSEL = 2’b10 ;TXOUTCLK 来自于 QPLL0 的参考时钟

由上节可知 QPLL0、 QPLL1、 CPLL的参考时钟 都是 MGTREFCLK 通过 IBUFDS_GTE4后提供到channel 的 GTREFCLK0,即 ref_clk1,AD9528 的 OUT1TXOUTCLK 来源于AD9528 的 OUT1

在这里插入图片描述

TXOUTCLKPCS 和 TXOUTCLKFABRIC 是冗余输出

TXOUTCLK 通过 BUFG_GT后 可以用作互联逻辑时钟

四、25 MHz clock

对于同步和定时,需要一个 尽可能接近25MHz的时钟 ,对于SATA OOB,必须是25MHz

在这里插入图片描述

25MHz 时钟由 TXPLLREFCLK_DIV1 分频产生 ,TXPLLREFCLK_DIV1 是QPLL0/1,或CPLL的参考时钟,本例程中都源于 AD9528 输出的OUT1 ,是122.88MHz, 大于100MHz ,小于 125MHz , 所以 TX_CLK25_DIV = 5 ;同理 RX_CLK25_DIV = 5 。

在这里插入图片描述
TX CLK25 DIV 和 RX CLK25 DIV 在 util_ad9371_xcvr ip 中 设置为5

在这里插入图片描述


JESD204B是一种高速数据传输协议,常用于与AD(模数转换器)或DA(数模转换器)芯片配合使用,替代了LVDS接口。它能提供更高的通信速率,更强的抗干扰能力,并且需要较少的布线数量。 对于AD9172这款芯片,通过使用FPGA来进行调试是一种常见的方法。您可以使用FPGA作为JESD204B的接收端,并配置相应的IP核用于与AD9172进行通信。此外,您还可以将FPGA作为JESD204B的发送端,可以选择单独使用FPGA,或者与JESD204B PHY(物理层)配合使用。 关于AD9172的例程,具体的实现方法和代码可能因厂商或项目而异。一种常见的做法是使用厂商提供的开发套件或参考设计,其中包括了示例代码和相关文档。通过参考这些示例代码,您可以了解如何配置FPGA与AD9172进行通信,包括初始化设置、数据传输和时钟同步等步骤。 为了更详细地了解AD9172的例程,您可以参考AD9172的产品手册、厂商提供的参考设计或开发套件的文档。这些资源通常会提供详细的步骤和示例代码,帮助您快速上手使用AD9172芯片,并进行相应的调试和开发工作。 总结起来,JESD204B与AD9172的调试可以通过FPGA来实现。您可以使用FPGA作为JESD204B的接收端或发送端,配合相应的IP核和芯片进行通信。关于AD9172的例程,您可以参考厂商的开发套件、参考设计或产品手册,以获取更详细的信息和示例代码,以帮助您进行调试和开发工作。 : jesd204b高速ad/da调试,在做项目中使用到AD9172和AD9689系列芯片,如何使用fpga来调试,调试过程中遇到的问题记录。 : JESD204B通常配合AD或DA使用,替代LVDS,提供更高的通讯速率,抗干扰能力更强,布线数量更少。 : JESD204B IP核作为接收端时,单独使用,作为发送端时,可以单独使用,也可以配合JESD204b PHY使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值