详解Xilinx JESD204B PHY层端口信号含义及动态切换线速率(JESD204B五)

news2025/1/11 21:40:21

  Xilinx官方提供了两个用于开发JESD204B的IP,其中一个完成PHY层设计,另一个完成传输层的逻辑,两个IP必须一起使用才能正常工作。

  7系列FPGA只能使用最多12通道的JESD204B协议,线速率为1.0至12.5 Gb/s;而UltraScale和UltraScale+系列FPGA还可以使用最多8通道的JESD204C协议,线速率为1.0至32 Gb/s。

  PHY层的IP是在GTX/H的基础上封装得到的,因此GTX/H的很多原理在该IP中依旧可以使用,包含共享逻辑的内核框图如下所示。

在这里插入图片描述

图1 包含共享逻辑的内核

  下图是该IP的一个使用场景,包含三路JESD204B的收发通道,此处使用了三个PHY IP,其实可以只使用一个三通道的PHY,通过AXI接口调节各个通道的线速率。

在这里插入图片描述

图2 IP示例设计

1、端口信号

  手册对该IP的讲解比较简单,没有其内部详细的框图,因此从端口信号出发,分析其功能。图1是包含三个收发器通道的端口信号框图,端口信号的含义如下表所示:

表1 IP端口信号
信号I/O含义
txoutclkO收发器的输出时钟,该时钟来自TX主通道,一般不会使用。
rxoutclkO收发器的输出时钟,该时钟来自RX主通道,一般不会使用。
tx_core_clkI用于驱动收发器txusrclk2的内核时钟,频率为发送通道线速率/40。
rx_core_clkI用于驱动收发器rxusrclk2的内核时钟,频率为接收通道线速率/40。
drp_clkI动态重新配置端口(DRP)时钟。
cpll_refclkI收发器通道PLL的参考时钟。
qpll_refclkI7系列四通道QPLL的参考时钟。
tx_reset_gtITX通道复位信号。
rx_reset_gtIRX通道复位信号。
tx_reset_doneOTX通道复位完成指示信号。
rx_reset_doneORX通道复位完成指示信号。
tx_sys_resetITX通道收发器及PLL复位信号。
rx_sys_resetIRX通道收发器及PLL复位信号。
gtN_txdata[31:0]I发送通道的用户数据接口,N取值范围[0,lane-1]。
gtN_txcharisk[3:0]I发送通道的K码指示信号,N取值范围[0,lane-1]。
gt_prbssel[2:0]I设置发送通道的PRBS模式。
gtN_rxdata[31:0]O接收通道的用户数据接口,N取值范围[0,lane-1]。
gtN_rxcharisk[3:0]O接收通道的K码指示信号,N取值范围[0,lane-1]。
rxencommalignI逗号对齐指示信号,高电平有效。
txp_out[N:0]O正差分串行数据输出, N取值范围[0,lane-1]。
txn_out[N:0]O负差分串行数据输出, N取值范围[0,lane-1]。
rxp_in[N:0]I正差分串行数据输入, N取值范围[0,lane-1]。
rxn_in[N:0]I负差分串行数据输入, N取值范围[0,lane-1]。

  我在网上发现很多人对tx_core_clk的频率为什么是线速率除以40不理解,一些博主给出的答案是手册上这么写的,手册确实是这么写的,没有什么毛病。

  但是前面我们已经详细分析了GTX的时钟架构,要知道这个原因还不是易如反掌吗?

  首先JESD204B的PHY是在GTX/H的基础上封装得到的,并且tx_core_clk就是GTX/H的txusrclk2,那只需要知道txusrclk2的频率计算方式即可。

  JESD204B采用8B10B编码,则如下图可知,输入数据为32位,编码后的数据位宽为40,则txusrclk2的频率为线速率除以40。不管PCS内部并行数据位宽是20位还是40位,都不会影响txusrclk2的频率,这个参数只会影响txusrclk的频率。

在这里插入图片描述

图3 GTX/H数据位宽

  7系列FPGA该IP的复位框图如下所示,sys_reset和reset_gt两个复位的范围不一样,reset_gt只对GTX/H进行复位,而sys_reset会同时复位QPLL、CPLL以及内部的逻辑部分,范围更大。

在这里插入图片描述

图4 7系列FPGA复位控制

  其余端口信号都比较简单,是GTX的8B10B编码方式的简化端口信号,不再赘述其含义。该IP还可以通过一组axi_lite端口去配置其内部的寄存器,这部分信号上表并没有列出。还可以把调试接口引出,调试接口相关信号也与GTX的信号基本一致,所以不再赘述。

2、寄存器

  该IP内部提供了很多寄存器,用户可以通过axi_lite总线进行配置,如下图所示,很多只读寄存器,通过这些寄存器可以获取IP的一些配置参数。

在这里插入图片描述

图5 只读寄存器

  内部还有很多配置GTX/H的寄存器,比如回环模式、预加重、去加重、均衡器等等,如下图所示。

在这里插入图片描述

图6 GTX/H的相关寄存器配置

  上述这些寄存器要么在GTX/H中经常出现,要么就是一些只读的状态寄存器,用户一般会使用到的其实是更改线速率的相关寄存器,其实就是更改QPLL/CPLL的分频系数。

2.1、更改QPLL参数配置线速率

  QPLL内部框图如下所示,首先外部时钟信号从5处输入,经过M倍分频后到达4处,4和3一起输入鉴相器,然后经过环路滤波器,当3和4的相位频率相同时,QPLL输出锁定。

  GTX的压控振荡器VCO可以输出两种频率范围,Lower Band的范围是5.93~8GHz,Upper Band的范围是9.8~12.5GHz。而GTH QPLL的VCO频率范围是8~13.1GHz。

在这里插入图片描述

图7 QPLL原理图

  上图2处是输出时钟信号,1处是VCO输出信号,3处是VCO输出信号经过N分频后的反馈信号。

  因为QPLL锁定的条件是鉴相器输入信号频率相位保持一致,因此会有如下公式fPLLClkin / M = fPLLClkout * 2 / N,最终计算得到fPLLClkout = (fPLLClkin * N) / (2 * M)。

  如下图所示,QPLL或者CPLL的输出时钟经过数据选择器作为CDR的参考时钟信号,CDR调整该时钟和接收数据的相位后,经过D分频后作为串并转换(SIPO)的串行时钟信号。

在这里插入图片描述

图8 GTX接收端的内部时钟架构

  在前文分析GTX内部时钟架构的时候推测出SIPO和ISPO模块是双沿传输数据的,因此可以计算得到线速率为f(LineRate)=f(pllClkOut)*2/D。

  因此可以通过设置M、N、D和VCO的输出频段等几个参数达到更改线速率的效果,比如参数M与QPLL_REFCLK_DIV寄存器的值对应。

在这里插入图片描述

图9 设置有效分频参数

  上图中M和N参数对应的寄存器地址和设置如下所示,QPLL需要注意VCO的频段设置,超出范围则无法得到正确的输出时钟频率。

在这里插入图片描述

图10 M和N参数的设置

  由于参数D是位于PMA内部,与QPLL和CPLL没有关系,因此不管使用QPLL还是CPLL,分频系数D的寄存器均如下所示,因为两个通道均有该结构,因此都需要设置该参数。

在这里插入图片描述

图11 参数D的设置

2.2、更改CPLL参数配置线速率

  CPLL比QPLL会简单一点,GTX的VCO输出频率范围1.63.3GHz,GTH的VCO输出频率范围1.65.16GHz。

在这里插入图片描述

图12 CPLL内部框图

  CPLL锁定条件为鉴相器的两个输入频率和相位保持一致,最终得到如下公式:

在这里插入图片描述
  QPLL和CPLL的输出时钟与线速率关系是一样的,因此不再赘述;最终也只需要配置N1、N2、M、D这几个参数,就可以改变线速率。CPLL这几个参数对应的寄存器名和取值范围如下图所示。

在这里插入图片描述

图13 CPLL分频系数与寄存器对应关系

  参数D的配置与图11一致,一般情况下不需要去修改这些参数,在配置IP时vivado会自动计算出这些寄存器的数值。但是如果在系统运行时,想要去更改某路收发器的线速率,就必须了解这些寄存器的配置原理。

  配置这些参数时,首先要考虑VCO的频率范围,如果存在多组参数能够满足要求的情况,则选中数值较小的分频参数那一组。

  上述通过axi_lite配置高速收发器内部的参数,因为该IP可以包含多个高速收发器通道。因此在配置具体的高速收发器之前,需要通过地址为0x24的寄存器写入后续需要配置的高速收发器通道。否则将会对默认的高速收发器通道进行配置,导致其余收发器的参数没有配置。

在这里插入图片描述

图14 选择高速收发器通道

  该IP其实比较简单,只是对GTX/H进行了简单封装,接收端连对齐都没有实现,必须配合JESD204B的发送或接收模块一起使用才行。后面先单独仿真一下该模块,在与上层IP一起使用。

  该手册可以在公众号后台回复“xilinx手册”(不包括引号),在其的JESD204B文件夹中获取。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2199823.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

胤娲科技:AI评估新纪元——LightEval引领透明化与定制化浪潮

AI评估的迷雾,LightEval能否拨云见日? 想象一下,你是一位AI模型的开发者,精心打造了一个智能助手,却在最终评估阶段遭遇了意外的“滑铁卢”。 问题出在哪里?是模型本身不够聪明,还是评估标准太过…

新手如何打造抖音矩阵账号,矩阵账号的优势有哪些?如何搭建矩阵系统的源码开发oem部署

抖音新手如何打造爆款矩阵账号? 在当前数字媒体盛行的时代,抖音作为一个领先的短视频分享平台,为品牌和个人提供了展示自己的舞台。对于初学者而言,构建一个有效的抖音账号矩阵是提升影响力的关键策略!今天&#xff0c…

mysql内置函数查询

聚合函数 :聚合函数查询时纵向查询,它是对一列的 值进行计算,然后返回一个单一的值,聚合函数会忽略空值。 namedescriptionavg()返回参数的平均值bit_and()按位返回andbit_or()按位返回orbit_xor()按位返回异或count()返回返回的…

Uos-Uos使用Remmina通过VNC远程连接到另一台Uos

Uos使用Remmina通过VNC远程连接到另一台Uos 一、概述二、对端机器安装 VNC服务器三、本机远程对端服务器 一、概述 这里记录一下使用Remmina通过VNC远程连接到另一台Uos系统,环境均是Linux操作系统 本机ip:10.8.11.64 对端ip:10.20.42.17 …

进程的状态的理解(概念+Linux)

文章目录 进程的状态并行和并发物理和逻辑 时间片进程具有独立性等待的本质运行阻塞标记挂起等待 Linux下的进程状态(一)运行状态(R - running)(二)睡眠状态(S - sleeping)&#xff…

银河麒麟V10中启用SELinux

银河麒麟V10中启用SELinux 1、启用SELinux1.1 切换到strict模式1.2 注意 2、验证SELinux状态 💖The Begin💖点点关注,收藏不迷路💖 在银河麒麟高级服务器操作系统V10中,可以使用security-switch工具来启用SELinux&…

springboot邮件群发功能的开发与优化策略?

springboot邮件配置指南?如何实现spring邮件功能? SpringBoot框架因其简洁、高效的特点,成为了开发邮件群发功能的理想选择。AokSend将深入探讨SpringBoot邮件群发功能的开发过程,并提出一系列优化策略,以确保邮件发送…

香山南湖架构分析--FE

总体架构 分支预测和指令缓存,通过FTQ达到解耦的目的;FTQ将请求送给ICache,进行取指;取出的指令码通过预译码初步检查分支预测的错误并及时冲刷预测流水线;检查后的指令送入指令缓冲并传给译码模块,最终形成后端的指令…

抓住最后机会!24年PMP认证报名今日开始,流程详解助你成功

为减少同一时间集中报名造成的网络拥堵,本次报名将采取以下形式分地区、分批次开放报名。 一、考试安排 考试时间:2024年11月30日 第一批报名城市 2024年10月9日10:00至10月16日16:00,以下城市的考点将开通报名&…

城市交通场景分割系统源码&数据集分享

城市交通场景分割系统源码&数据集分享 [yolov8-seg-C2f-Faster&yolov8-seg-GhostHGNetV2等50全套改进创新点发刊_一键训练教程_Web前端展示] 1.研究背景与意义 项目参考ILSVRC ImageNet Large Scale Visual Recognition Challenge 项目来源AAAI Glob…

FineReport打开报错“配置数据库出错“怎么解决?

配置数据库被锁住,是否重置?将在embed文件夹生成备份并重置 我直接用管理员身份证打开就完美解决了!

fmql之Linux下AXI GPIO、MISC

AXI GPIO 正点原子第41章。 要使用AXI GPIO,就要在vivado工程中,添加相关的IP。 然后dts会自动生成相关的AXi GPIO的设备树内容。 MISC 正点原子第42章。 /***************************************************************Copyright © ALIENTE…

C++--特殊类的设计

下面所实现类的源码:源码链接 不可拷贝类 在C中,我们有时候需要设计一些不可拷贝的类,即不允许用户通过拷贝构造函数或赋值操作来创建该类的副本。这样设计通常是为了确保资源(如文件描述符、窗口句柄等)的唯一性&…

(JAVA)熟悉队列的进阶结构 - 优先队列

1. 优先队列 ​ 普通队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除。 ​ 在某些情况下,我们可能需要找出队列中的最大值或者最小值,例如使用一个队列保存计算机的任务,一般情况下计算机的任务都是有…

FTP连接池与多线程上传下载算法实现(C语言)

FTP连接池与多线程上传下载算法实现(C语言) 设计思路伪代码示例C代码示例为了避免多线程环境下FTP连接池在故障重连时导致的竞争条件和core dump问题,我们需要设计一个精细的连接池管理系统,确保在连接重连时,其他线程不会尝试使用该连接。以下是一个简化的设计思路和示例…

开源计算器应用的全面测试计划:确保功能性和可靠性

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

Navicat图形化设置字段unique

点击索引,选择字段和索引类型即可。

前端学习笔记-JS进阶篇-04

1、深浅拷贝 开发中经常需要复制一个对象。如果直接用赋值会有下面问题: 首先浅拷贝和深拷贝只针对引用类型 1.1、浅拷贝 浅拷贝:拷贝的是地址 常见方法: 1.2.1、 拷贝对象:Object.assgin() / 展开运算符 {...obj} 拷贝对象…

目标检测指标:AP,mAP

目标检测指标:AP,mAP 论文:A Survey on Performance Metrics for Object-Detection Algorithms 文章目录 目标检测指标:AP,mAP摘要1 介绍2 主要的性能指标TP、FP、FNP、RAP A P 11 AP_{11} AP11​ A P a l l AP_{all}…

金慧-综合管理信息系统 LoginBegin.aspx SQL注入复现

0x01 产品描述: 金慧-综合管理信息系统(以下简称“金慧综合管理系统”)是上海金慧软件有限公司基于多年行业系统研发和实施经验,为各类企业量身定制的一套综合性管理解决方案。该系统旨在通过信息化手段,提升企业的管理…