xilinx的高速接口构成原理和连接结构
本文来源:
- V3学院 尤老师的培训班笔记
- 【高速收发器】xilinx高速收发器学习记录
- Xilinx-7Series-FPGA高速收发器使用学习—概述与参考时钟
- GT Transceiver的总体架构梳理
文章目录
- 一、概述:
- 二、高速收发器结构:
- 2.1 QUAD
- 2.1.1 时钟
- 2.1.2 CHANNEL的内部结构:
- 1)TX
- 2)RX
一、概述:
Xilinx 的高速接口称之为 transceivers(高速收发器),这部分电路是专用电路,供电等都是独立的,管脚和通用管脚不通用。每个系列的高速接口略有不同,分别为:
1.A7 的GTP
2.V7的GTH
3.K7的GTX
4.少量V7的GTZ

它们之间的区别在于最高线速率不同,GTZ>GTH>GTX>GTP.,结构大致相同。
手上板子的芯片是xc7a100t系列的,因此需要参考的手册是ug482。
二、高速收发器结构:


上图可以看到:A7系列的高速收发器(GTP)是上下两侧分布的,而K7系列的高速收发器(GTX)则是单列放置。
2.1 QUAD
Xilinx 的高速接口是 QUAD 为单位的,意思是 4 对收发器(channel)组成一个 QUAD ,这是收发器的最小单元。
quad内部结构图如下:


可见一个quad包括:
1.4个channel,每个channel包含一对收发器
2.1个common(共享时钟资源),包含两个PLL。
3.两个REFCLK(参考时钟)。
注释:
1.GTREFFCLK0/1 是参考时钟,是给高速接口内的 PLL 提供的参考时钟用于产生 PLL 输出
时钟的。
2.GTGREFCLK 是用于测试高速接口的测试时钟,一般我们用户不需使用,比如 IBERT 这
种测试软件可以使用。
3.SouthCLK 是由相邻的上游 QUAD 提供的时钟或者给相邻下游 QUAD 提供时钟,上图是
一个独立的 QUAD。
4.NorthCLK 是由下游的 QUAD 提供时钟,或者给相邻上游的 QUAD 提供时钟。
2.1.1 时钟
因为每一个Quad有两个外部参考时钟,因此对于每一个Quad来说,可以选择两个不同的参考时钟,每一个CHANNEL的接收端和发送端都可以独立选择参考时钟,如下图所示:

此外,还可以使用其他Qua的参考时钟(south clk & north clk),

图上可以看到:REFCLK进来必须要经过一个IBUFDS_GTE,完成差分转单端。
IBUFDS_GTE内部结构图:

注释:HROW是全局时钟放在水平方向还是垂直方向的节点,ODIV2是输出给用户逻辑用的,可以选二分频或者不分频或者直接拉低降低功耗。
注意CPLL和QPLL的区别:
1.QPLL,其中的Q含义就是QUAD,即一个GTX QUAD公用的PLL。
2.CPLL,即Channel PLL,含义是每一个Channel单独拥有的PLL。
3.两者支持的线速率不同CPLL的速率要小于QPLL。
2.1.2 CHANNEL的内部结构:

-
Transmitter的数据流大致为: FPGA用户逻辑的数据,进入FPGA TX接口,进入PCS,再经过PMA,转换为高速串行数据输出。
-
Receiver的数据流大致为:数据由PMA部分结构,转换为并行数据进入PCS,再经过RX接口输出给FPGA用户逻辑处理。
1)TX

其中: 用户的并行数据实际是64bit, PCS中会插入2bit数据让他变成66bit.(做64b/66b编码),但是PCSparallel clock 和PMA parallelclock之间的交互,它并不会一次将66位取走,比如他一次取走32位,两次才会取走64位。多余的两位就取不走了,怎么办?
答:一个周期剩余2bit数据,等到16个周期之后,就满32位了,此时TX Sync Gearbox缓存了32位了,就会告诉用户端,让他停一拍,此时TX Sync Gearbox就把积累的32位传递给PMA parallelclock这边了。
2)RX

其中比较重要的是:Rx-PMA中有CDR(时钟恢复模块),依赖refclk,从数据中将时钟恢复出来。
相关文章:
xilinx的高速接口构成原理和连接结构
本文来源: V3学院 尤老师的培训班笔记【高速收发器】xilinx高速收发器学习记录Xilinx-7Series-FPGA高速收发器使用学习—概述与参考时钟GT Transceiver的总体架构梳理 文章目录 一、概述:二、高速收发器结构:2.1 QUAD2.1.1 时钟2.1.2 CHANNEL…...
git 上传文件夹至远端仓库的方法
上传的远端git可以是gitlab、github、gitee、gitblit或者gitCode等等 以下以GitHub为例说明: 1、登录GitHub网站(账户/密码) 2、创建一个新的空白项目(或者已有的项目)hello-world 分支是master ,这里默认即…...
【鸿蒙系统】 ---OpenHarmony加快本地编译(二)
💌 所属专栏:【鸿蒙系统】 😀 作 者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! 💖 欢…...
centos配置natapp 自动配置
下载配置文件 centos 这里 我用的 natapp_autostart-master\natapp_autostart-master\systemd 文件夹下的 natapp.service 上传natapp 运行natapp客户端 在 https://natapp.cn 官网 下载客户端. 放在目录 /usr/natapp/ 运行 sudo chmod ax /usr/natapp/natapp给予可执行权…...
sell脚本多行合成一行
awk {ORS",\n"}{print $2} 120w-3-ws | awk {if(NR%10!0)ORS"";else ORS"\n"}{print $1 >> "newRefundIds.txt"}RS是awk读取文件时的行分隔符 ORS则是awk输出时的行结束符 FS是awk读入记录时的列分隔符 OFS则是awk输出时的列…...
部署prometheus 监控k8s集群
目录 1、主机清单 2、拉取镜像 3、服务安装 4、安装prometheus-operator 5、查看custom metrics api 6、获取prometheus端口 7、将 alertmanager-main 、grafana、prometheus-k8s的端口暴露出来 8、再次查看prometheus端口 9、浏览器访问IP:31940 部署k8集群…...
两个基本功不足导致的bug
作为程序员,基本功不好,可能会在工作中经常碰到一些看起来很隐蔽的 bug,乍看没毛病,自己半天还找不到问题所在。 但是,如果基本功扎实的同学可能一眼就能看出来。 一、HashMap 取不到值 Map<Integer, Integer>…...
【算法每日一练]-图论(保姆级教程篇16 树的重心 树的直径)#树的直径 #会议 #医院设置
目录 树的直径 题目:树的直径 (两种解法) 做法一: 做法二: 树的重心: 题目: 会议 思路: 题目:医院设置 思路: 树的直径 定义:树中距离最…...
Qt播放音乐代码示例
主界面 点击play按钮播放或暂停音乐,拖动进度条,音乐对应播放。 QWidget window;QPushButton* playButton new QPushButton("Play");// Qt 播放音乐// 创建 QMediaPlayer 对象QMediaPlayer* player new QMediaPlayer;// 指定音频文件的路径…...
多线程应用中的性能优化:创建合适的线程数
多线程应用中的性能优化:创建合适的线程数 在多线程应用中,为了降低延迟和提高吞吐量,我们可以采取两种主要策略:优化算法或者充分利用硬件性能。要发挥硬件的极致性能,就需要使用多线程来提高CPU或I/O的利用率。 由于…...
本地运行环境工具UPUPWANK(win)和Navicat数据库管理工具
UPUPWANK安装地址:https://www.upupw.net 1.进入UPUPWANK后点击一键开启 2.新增项目 这里请千万注意80端口,如果80端口被占用了,请记住去任务管理器关闭占用80端口的进程。不然就不会成功显示。(笔者含泪警告,一晚上的…...
LeetCode 每日一题 2024/3/18-2024/3/24
记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步 目录 3/18 303. 区域和检索 - 数组不可变3/19 1793. 好子数组的最大分数3/20 1969. 数组元素的最小非零乘积3/21 2671. 频率跟踪器3/22 2617. 网格图中最少访问的格子数3/23 254…...
Unity 鼠标拖拽3D物体跟随移动的方法
之前我们研究过UI拖拽跟随鼠标移动的方法:https://blog.csdn.net/mr_five55/article/details/135562325 但是该方法不适合3D场景。 假如我们要通过鼠标拖拽3D物体移动,那么可以使用以下控制方法: using System.Collections; using System.…...
数据分析-Pandas分类数据的类别排序和顺序
数据分析-Pandas类别的排序和顺序 数据分析和处理中,难免会遇到各种数据,那么数据呈现怎样的规律呢?不管金融数据,风控数据,营销数据等等,莫不如此。如何通过图示展示数据的规律? 数据表&…...
利用 Claude 3 on Amazon Bedrock 和 Streamlit 的“终极组合”,开发智能对话体验
概述 通过本文,您将学会如何利用 Streamlit 框架快速搭建前端交互界面。该界面将集成图像上传功能,让用户可以方便地提交待处理图片。在后端,我们将借助 Amazon Bedrock 的 Message API,调用 Claude 3 家族中的 Sonnet 模型对图像…...
Golang基础 Label标签与goto跳转
使用方法 Label 和goto是必须的 Label可以声明再函数体的任何地方 Label的作用范围是在函数体中 Label在嵌套函数(闭包)是不可用的. 不管是在闭包里调用闭包外的Label, 还是在闭包外调用闭包里的Label 变量的声明必须在goto之前 示例 package mainimport "fmt"…...
二进制王国(蓝桥杯备赛)【sort/cmp的灵活应用】
二进制王国 题目链接 https://www.lanqiao.cn/problems/17035/learning/?contest_id177 题目描述 思路 这里就要灵活理解字典序排列,虽然string内置可以直接比较字符串字典序,但是在拼接时比较特殊,比如 11的字典序小于110,但…...
活用C语言之宏定义应用大全
零、C语言宏定义知多少 C语言的编程过程中经常会用到宏定义,然而如果你只是使用宏定义做一些常量的定义,那么你不是OUT了就是C语言小白。 那么我们在编程过程中,宏定义都有哪些作用呢? 常量定义 可以作为功能代码的开关 防止头文件被重复…...
【源码】I.MX6ULL移植OpenCV
编译完成的源码: git clone https://gitee.com/wangyoujie11/atkboard_-linux_-driver.git 1.下载源码放在自己的opecv源码目录下 2.QTOpenCV工程代码放置的位置 3.更改.pro工程文件的opencv地址 4.使用命令行编译 前提是自己环境中已经配置好arm-qt的交叉编译…...
pytorch深度学习——dataset(附数据集下载)
在学习深度学习的时候,我们需要考虑如何去处理数据去训练我们的模型,pytorch为我们提供了Dataset和DataLoader两个类来对数据进行处理,前者作用是提供了一种方式来获取数据及其label,后者的作用是为网络提供不同的数据形式。本文主…...
深度探索.NET Aspire在云原生应用性能与安全加固的创新实践
深度探索.NET Aspire在云原生应用性能与安全加固的创新实践 前言 云原生应用在当今数字化转型浪潮中扮演着关键角色,其性能与安全成为决定应用成败的核心要素。.NET Aspire作为微软推出的面向云原生开发的框架,为开发者提供了一套完整的工具与方法&#…...
OpenClaw自动化写作:Qwen2.5-VL-7B生成图文并茂技术文档
OpenClaw自动化写作:Qwen2.5-VL-7B生成图文并茂技术文档 1. 为什么需要自动化技术文档写作 作为一个经常需要编写技术文档的开发者,我深知文档写作的痛点。每次完成一个功能模块后,总要花大量时间整理代码片段、截图、编写说明文字。最麻烦的…...
ArcGIS Pro新手必看:用‘按掩膜提取’和‘裁剪’工具搞定栅格与矢量数据范围限定(附详细步骤图)
ArcGIS Pro数据范围限定实战:从工具选择到避坑指南 刚接触ArcGIS Pro的研究人员常常会遇到这样的困惑:手头收集了研究区域的各种数据,却不知道如何精确限定到自己的研究范围。面对"裁剪"和"按掩膜提取"两个看似相似的工具…...
reids-cluster部署
准备六台主机,地址如下: 10.0.0.101 10.0.0.102 10.0.0.103 10.0.0.104 10.0.0.105 10.0.0.106 一、每台节点配置 Redis (101~106)修改 redis.conf,添加或修改以下参数:vim /etc/redis/redis.conf # 1. 允许所有网络接口 bind …...
三种常见AC/DC转换方案详解与选型指南
1. 交流转直流方案概述在电子设备设计中,将交流电转换为直流电是最基础也是最重要的环节之一。作为一名硬件工程师,我在过去十年里接触过各种AC/DC转换方案,从简单的阻容降压到复杂的开关电源设计。这些方案各有特点,适用于不同的…...
cwalk:嵌入式C/C++轻量级路径处理库实战指南
1. cwalk:嵌入式系统中轻量级跨平台路径处理库的工程实践解析在嵌入式固件开发中,路径操作看似与裸机环境无关,实则在多个关键场景中不可或缺:Bootloader中从FAT32/SD卡加载固件镜像时需解析/firmware/v2.3.1/app.bin;…...
PolyServo:基于中断的软件PWM多路伺服控制库
1. PolyServo 库深度解析:基于中断的多路 RC 伺服电机精确控制方案1.1 项目定位与工程价值PolyServo 是一个面向嵌入式实时控制场景设计的轻量级伺服驱动库,其核心创新在于完全摒弃对硬件 PWM 外设引脚的依赖,转而采用高精度软件定时器中断机…...
Halcon卡尺直线检测避坑指南:参数设置与常见错误排查
Halcon卡尺直线检测避坑指南:参数设置与常见错误排查 在工业视觉检测领域,直线边缘的精准定位是许多项目的基础需求。Halcon作为行业标杆工具,其卡尺直线检测功能看似简单,却暗藏诸多参数陷阱。不少开发者在初次接触时࿰…...
从Webgoat靶场实战看SQL注入:新手如何用PHPStudy快速搭建并复现经典攻击(附Java/ASP.NET防御代码)
从零构建Webgoat靶场:SQL注入攻防实战与安全编码指南 在Windows环境下使用PHPStudy快速搭建Webgoat靶场,是安全爱好者入门Web安全的高效路径。这个开源的Web应用安全测试平台,由OWASP组织维护,专门设计用于演示常见Web漏洞原理与防…...
1984-2024年中国10米分辨率城市土地利用栅格数据(商业、公服、居住等9类)
城市土地利用是刻画城市扩张与功能空间演化的重要基础信息。长时序、高分辨率且具有跨期可比性的城市土地利用数据,已成为城市扩张诊断、空间结构演化研究、国土空间规划评估与生态环境效应分析的重要支撑。而现有城市土地利用数据往往存在时间跨度不足、历史时期分…...
