当前位置: 首页 > news >正文

高端Zynq ultrascale+使用GTH回环测试 提供2套工程源码和技术支持

这目录

  • 1、前言
  • 2、GTH 高速收发器介绍
    • GTH 高速收发器结构
    • 参考时钟的选择和分配
    • GTH 发送端
    • GTH 接收端
  • 3、vivado工程详解
  • 4、上板调试验证
  • 5、福利:工程代码的获取

1、前言

Xilinx系列FPGA内置高速串行收发器,配有可配置的IP方便用户调用,按照速度等级和使用器件分别如下:
GTP:Artix7使用,最大线速率6.6Gbps,之前写过一篇GTP实现板间视频传输的文章,参考链接:GTP
GTX:Kintex7使用,最大线速率12.5Gbps,之前写过一篇GTX实现板间视频传输的文章,参考链接:GTX
GTH:ultrascale+系列的 GTH 收发器最高支持 16.3Gbps,本例程使用的器件是xczu7ev-ffvc1156-2-i;
本文详细描述了高端FPGA对GTH的回环测试的实现设计方案,工程代码编译通过后上板调试验证,可直接项目移植,适用于在校学生、研究生项目开发,也适用于在职工程师做项目开发,可应用于医疗、军工等行业的高速信号传输领域;
提供完整的、跑通的工程源码和技术支持;
工程源码和技术支持的获取方式放在了文章末尾,请耐心看到最后;
本设计提供2套工程源码:
工程1:GTH仿真工程;
工程1:GTH回环测试工程;

2、GTH 高速收发器介绍

GTH 高速收发器结构

在 Ultrascale/Ultrascale+架构系列的 FPGA 中,GTH 高速收发器通常使用 Quad 来划分,一个 Quad 由四个GTHE3/4_CHANNEL 原语和一个 GTHE3/4_COMMON 原语组成。每个 GTHE3/4_COMMON 中包含两个 LC-tank pll(QPLL0 和 QPLL1)。只有在应用程序中使用 QPLL 时,才需要实例化 GTHE3/4_COMMON。
在这里插入图片描述
每个 GTHE3/4_CHANNEL 由一个 channel PLL(CPLL)、一个 transmitter,和一个 receiver 组成。一个参考时钟可以直接连接到一个 GTHE3/4_CHANNEL 原语,而不需要实例化 GTHE3/4_COMMON。
在这里插入图片描述
GTH 收发器的发送端和接收端功能是相互独立,都是由 Physical Media Attachment(物理媒介适配PMA)和Physical Coding Sublayer(物理编码子层 PCS)组成。PMA 内部集成了串并转换(PISO)、预加重、接收均衡、时钟发生器和时钟恢复等;PCS 内部集成了 8b/10b 编解码、弹性缓冲区、通道绑定和时钟修正等。
在这里插入图片描述

参考时钟的选择和分配

UltraScale 器件中的 GTH 收发器提供了不同的参考时钟输入选项。参考时钟选择架构支持 QPLL0、QLPLL1 和CPLL。从架构上讲,每个 Quad 包含四个 GTHE3/4_CHANNEL 原语,一个 GTHE3/4_COMMON 原语,两个专用的外部参考时钟引脚对,以及专用的参考时钟路由。如果使用到了高性能 QPLL,则必须实例化 GTHE3/4_COMMON,如下面 GTHE3/4_COMMON 时钟多路复用器结构的详细视图所示,在一个 Quad 中有 6 个参考时钟引脚对,两个本地参考时钟引脚对:GTREFCLK0或GTREFCLK1,两个参考时钟引脚对来自上面的两个Quads:GTSOUTHREFCLK0或 GTSOUTHREFCLK1,两个参考时钟引脚对来自下面的两个 Quads:GTNORTHREFCLK0 或 GTNORTHREFCLK1。
在这里插入图片描述
类似的,下面是 GTHE3/4_CHANNEL 原语中的参考时钟多路复用器结构的详细视图。在这里插入图片描述

GTH 发送端

结合本节课的历程,来看一下 transmitter 端工作流程,并行数据从设备逻辑给到 TX 接口,首先进入物理编码子层(PCS),经过 8B/10B 编码器编码之后,进入一个发送缓存区 Phase Adjust FIFO。如下所示,GTH 收发器TX 数 据 路 径 有 两 个 用 于 PCS 的 内 部 并 行 时 钟 域 :PMA 并 行 时 钟 域 (XCLK) 和 PCS 并 行 时 钟 域(TXUSRCLK),如果要传输数据,XCLK 速率必须与 TXUSRCLK 速率匹配,并且必须解决两个时钟 域 之 间 的 相 位 差 。 GTH 发 送 端 提 供 了 一 个 TX buffer 和 一 个 TX 相 位 校 准 电 路 , 以 解 决 XCLK 和TXUSRCLK 域之间的相位差。推荐默认使用 TX Buffer,易于操作。如果对低延迟有严格要求则须旁路 TX buffer。当 TX buffer 被旁路时,使用 TX 相位校准电路去调整 XCLK 和 TXUSRCLK 域之间的相位差,以便将数据从 PCS 传输到 PISO。最后通过高速 Serdes 进行并串转换(PISO),经预/后加重,输出TX 驱动程序作为高速串行数据。
在这里插入图片描述

GTH 接收端

接下来看一下 Receiver 端工作流程,RX 接收到的信号会首先经过 RX 均衡器,均衡器的主要作用是用于补偿信号的高频损失, LPM 和 DFE 分别是两种不同模式的均衡器。
在这里插入图片描述
RX 的时钟数据恢复电路是图上图中的 RX CDR 模块,因为 GTH 传输不带随路时钟,因此在接收端必须去实现时钟恢复和数据恢复,时钟数据恢复电路下图所示:
在这里插入图片描述
GTHE3/4_CHANNEL 收发信机采用相位旋转 CDR 架构。传入数据首先经过接收机均衡阶段。均衡数据由边缘和数据采样器捕获。数据采样器捕获的数据被提供给 CDR 状态机和下游收发器块。CDR 状态机使用来自边缘和数据采样器的数据来确定传入数据流的相位,并控制相位插值器(pi)。边缘采样器的相位被锁定在数据流的过渡区域,而数据采样器的相位被定位在数据眼的中间,CPLL 或 QPLL 为相位插补器提供基准时钟。相位插补器反过来产生良好的、均匀间隔的采样相位,以允许 CDR 状态机有良好的相位控制。
数据经过 CDR 之后进行串并转换,这里的 Polarity 是用来进行极性控制的,如果传入的数据是 PRBS,那么接下来会使用内嵌的 PRBS 检查器进行 check,xilinx 官方提供了四种不同的伪随机序列生成器可供用户选择,PRBS checker 用来测试信号的完整性。如果传入的是 8b10b 编码后的用户数据,那么接下来就会对传出的数据进行边界对齐和 8b10b 的解码。
最后是 RX elastic buffer 这个部分,如上图所示,GTH 收发器 RX 数据路径有两个用于 PCS 的内部并行时钟域:PMA 并行时钟域(XCLK)和 PCS 并行时钟域(RXUSRCLK),为了接收数据,PMA 并行速率必须足够接近
RXUSRCLK 速率,并且必须解决两个时钟域之间的相位差。GTH 收发器包含一个 RX elastic buffer,以解决 XCLK和 RXUSRCLK 域之间的差异。当 RX elastic buffer 被旁路时,RX 相位校准电路用于调整 SIPO 并行时钟域和 RXXCLK 域之间的相位差,以实现从 SIPO 到 PCS 的可靠数据传输,最后输出给 RX 外部接口。要特别注意一下的是RX elastic buffer 还具有时钟纠正和通道绑定功能。

3、vivado工程详解

开发板:Zynq ultrascale+xczu7ev-ffvc1156-2-i;
开发环境:vivado2021.1,2021.1以上版本均可打开,升级一下IP即可使用;
输入/输出:SFP接口的GTX对插回环;
首先创建一个工程,添加 UltraScale FPGAs Transceivers Wizard IP;
在这里插入图片描述
这 里 的 预 设 配 置 选 择 GTH-aurora_8B10B 即 可 。 串 行 收 发 器 类 型 取 决 于 使 用 的 具 体 设 备 , 以MZU04A 板卡为例,它的 SFP+仅支持 GTH 类型。
在这里插入图片描述
接收端边界对齐和 comma 检测:在这里插入图片描述
工程代码架构如下:
在这里插入图片描述

4、上板调试验证

在这里插入图片描述
编译完工程之后下载程序,验证光纤接口 8b10b 回环实验。下载完成后查看 ILA 的波形,当检测模块中的
prbs_any_chk_error_int 信号一直为 0,说明光纤接口 8b10b 环回实验下载验证成功。
在这里插入图片描述

5、福利:工程代码的获取

福利:工程代码的获取
代码太大,无法邮箱发送,以某度网盘链接方式发送,
资料获取方式:私,或者文章末尾的V名片。
网盘资料如下:
在这里插入图片描述
在这里插入图片描述

相关文章:

高端Zynq ultrascale+使用GTH回环测试 提供2套工程源码和技术支持

这目录1、前言2、GTH 高速收发器介绍GTH 高速收发器结构参考时钟的选择和分配GTH 发送端GTH 接收端3、vivado工程详解4、上板调试验证5、福利:工程代码的获取1、前言 Xilinx系列FPGA内置高速串行收发器,配有可配置的IP方便用户调用,按照速度…...

入门(Createing a scene)

这一部分将对three.js来做一个简要的介绍 首先将开始搭建一个场景,其中包含一个正在旋转的立方体 梦开始的地方 在开始使用threeJS之前,我们需要创建一个HTML文件来显示它(将下列HTML代码保存为你电脑上的一个HTML文件然后在你的浏览器中打…...

Unity入门精要03---透明效果

本节知识架构 1.渲染顺序与渲染队列 如果采用了透明度混合即要是实现半透明效果,那么就要关闭深度写入,那么此时渲染顺序就会变得非常非常重要,不然会出现不正确的遮挡效果。具体的分析可见书中解释 一句话概括就是因为没有写入深度&#xf…...

一文解码:如何在人工智能热潮下实现产业“智”变

近期由ChatGPT有关人工智能的话题引发了全民热议,在这股子浪潮下,讨论最多的话题就是ChatGPT的出现会为我们带来怎样的技术变革?是否会改变我们目前的生产方式?对于未来人工智能技术的发展,我们该如何客观看待&#xf…...

webshell管理工具-菜刀的管理操作

什么是webshell Webshell是一种运行在Web服务器上的脚本程序,通常由黑客使用来绕过服务器安全措施和获取对受攻击服务器的控制权。Webshell通常是通过利用Web应用程序中的漏洞或者弱密码等安全问题而被植入到服务器上的。 一旦Webshell被植入到服务器上&#xff0…...

dl----算法常识100例

1.depthwise卷积&&Pointwise卷积 depthwise与pointwise卷积又被称为Depthwise Separable Convolution,与常规卷积不同的是此卷积极大地减少了参数数量,同时保持了模型地精度,depthwise操作是先进行二维平面上地操作,然后利…...

京东百亿补贴,不要把方向搞偏了

出品 | 何玺 排版 | 叶媛 我吐槽来了。 3月6日0时,京东正式加入百亿补贴战局。那么,京东百亿补贴力度如何?用户又有什么反馈?我们一起来看看。 01 京东百亿补贴实测 京东百亿补贴上线的第一天,玺哥就亲自进行了体…...

Java中的static与final关键字

一、static关键字 static修饰位置表示含义变量表示这是一个类变量,类加载时分配在堆中方法静态方法,不依赖于对象可直接通过类标识访问代码块静态代码块,只在类加载初始化阶段时执行一次内部类静态嵌套类,表示只是放在外部类的文…...

开学新装备 - 学生党是否该入手 MacBook

学生党是否该入手 macbook 这个问题,相信许多人在许多社区都有看到过类似讨论。只不过,许多讨论都掺杂了信仰、智商税、不懂、不熟悉未来需求等各种因素,导致内容空洞价值不大。这篇文章,抛开了所有非理性因素,详细的告…...

【前端技巧】ESLint忽略检查行和文件

Author:Outman Date:2023-03-10 ESLint忽略检查行和文件 一、注释方式 1.注释忽略 —— 块注释 /* eslint-disable */ console.log(test); /* eslint-enable */2.注释忽略 —— 忽略指定规则项 /* eslint-disable no-alert, no-console */ alert(tes…...

单片机学习笔记之点阵(8x8)

心血来潮,想捡一下丢了很久的单片机,纪录一下单片机学习简单的点阵显示,及踩到的䟘,找到吃灰很久的普中科技开发板(非广告,为毕设学习买的)。 1. 使用工具 使用开发板: 普中科技开发…...

我一个普通程序员,光靠GitHub打赏就年入70万,

一个国外程序员名叫 Caleb Porzio在网上公开了自己用GitHub打赏年入70万的消息和具体做法。 Caleb Porzio 发推庆祝自己靠 GitHub 打赏(GitHub Sponsors)赚到了 10 万美元。 GitHub Sponsors是 GitHub 2019 年 5 月份推出的一个功能,允许开发…...

剖析Spring MVC如何将请求映射到Controller

Spring MVC是一种基于Java的Web框架,可以帮助开发者快速地构建Web应用程序。在Spring MVC中,请求将会被映射到对应的Controller中进行处理。本文将会介绍Spring MVC如何将请求映射到Controller的过程。 DispatcherServlet DispatcherServlet是Spring M…...

设计模式之美-工厂模式

分类:简单工厂模式(静态工厂模式),工厂方法模式,抽象工厂模式。 这种设计模式也是 Java 开发中最常见的一种模式,它的主要意图是定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类&a…...

A Star算法最通俗易懂的一个版本

01-概述虽然掌握了 A* 算法的人认为它容易,但是对于初学者来说, A* 算法还是很复杂的。02-搜索区域(The Search Area)我们假设某人要从 A 点移动到 B 点,但是这两点之间被一堵墙隔开。如图 1 ,绿色是 A ,红色是 B &…...

JavaWeb--ListenerAjaxaxiosjson

Listener&Ajax&axios1 Listener1.1 概述1.2 分类1.3 代码演示2 Ajax2.1 概述2.1.1 作用2.1.2 同步和异步2.2 快速入门2.2.1 服务端实现2.2.2 客户端实现2.2.3 测试2.3 案例2.3.1 分析2.3.2 后端实现2.3.3 前端实现2.4 测试3 axios3.1 基本使用3.2 快速入门3.2.1 后端实…...

NoneBot2,基于Python的聊天机器人

NoneBot2,基于Python的聊天机器人第一步,配置python第二步,配置[go-cqhttp](https://github.com/Mrs4s/go-cqhttp)第三步,配置[NoneBot](https://61d3d9dbcadf413fd3238e89--nonebot2.netlify.app/)NoneBot2 是一个现代、跨平台、…...

java反射机制及其详解

反射反射机制反射调用优化有时候我们做项目的时候不免需要用到大量配置文件,就拿框架举例,通过这些外部文件配置,在不修改的源码的情况下,来控制文件,就要用到我们的反射来解决 假设有一个Cat对象 public class Cat …...

Leetcode—环形链表

前言:给定一个链表,判断是否为循环链表并找环形链表的入口点 首先我们需要知道什么是双向循环链表,具体如下图所示。 对于链表,我们如何去判断链表是循环链表呢?又寻找入环点呢?我们可以利用快慢指针的方法…...

蓝牙耳机哪个戴的最舒服?久戴不累的蓝牙耳机推荐

在喧嚣的时代中,快节奏和疲惫充斥着我们的生活,于是耳机成为了人们必不可少的东西,无论是闲暇时亦或是正处在工作时,都会将它戴上,出门在外戴耳机变成了常态,所以小编就整理了一期久戴不累的蓝牙耳机。 No…...

【Python内存管理2026权威白皮书】:GIL演进、引用计数重构与GC智能调度三大突破性策略首次公开

第一章:Python智能体内存管理策略2026最新趋势全景概览随着大语言模型驱动的Python智能体(Agent)在生产环境中的深度部署,传统CPython内存管理机制正面临前所未有的挑战:动态工具调用、多轮推理缓存、跨Agent状态共享及…...

VisionPro实战:CogGraphicCollection在工业检测中的5个高效用法(附代码)

VisionPro实战:CogGraphicCollection在工业检测中的5个高效用法(附代码) 在工业自动化领域,机器视觉系统正变得越来越智能和高效。作为康耐视VisionPro平台的核心组件之一,CogGraphicCollection为工程师提供了强大的图…...

别再傻傻分不清了!IM和RTC到底差在哪?从微信聊天到腾讯会议的技术选择

IM与RTC技术选型指南:从协议栈到商业场景的深度解析 当你的产品经理在白板上画出一个"消息气泡"和一个"视频通话图标"时,技术团队首先需要面对的灵魂拷问是:这到底该用IM架构还是RTC架构?2019年某在线教育初创…...

PostgreSQL权限管理实操:Homebrew安装后,如何正确创建postgres用户并导入项目数据

PostgreSQL权限管理实战:从Homebrew安装到项目数据迁移全指南 当你用Homebrew完成PostgreSQL安装后,真正的挑战才刚刚开始。许多开发者卡在权限配置这一关,导致后续数据迁移和日常操作频频受阻。本文将带你深入PostgreSQL的权限体系&#xff…...

OpenClaw浏览器自动化:nanobot镜像实现定时抢购与价格监控

OpenClaw浏览器自动化:nanobot镜像实现定时抢购与价格监控 1. 为什么选择OpenClaw实现浏览器自动化 去年双十一期间,我为了抢购某款显卡,连续三天凌晨守着电脑刷新页面,结果还是错过了补货。这种经历让我开始寻找自动化解决方案…...

PlayCover深度技术解析:如何在M系列Mac上实现iOS游戏原生运行体验

PlayCover深度技术解析:如何在M系列Mac上实现iOS游戏原生运行体验 【免费下载链接】PlayCover Community fork of PlayCover 项目地址: https://gitcode.com/gh_mirrors/pl/PlayCover PlayCover作为一款创新的开源工具,让Apple Silicon Mac用户能…...

零基础玩转OpenClaw:Qwen3-32B-Chat镜像云端体验指南

零基础玩转OpenClaw:Qwen3-32B-Chat镜像云端体验指南 1. 为什么选择云端体验OpenClaw? 第一次听说OpenClaw时,我正被各种本地部署的依赖项折磨得焦头烂额。作为一个习惯在MacBook上写代码的开发者,光是配置CUDA环境就让我望而却…...

Linux内核数据结构与算法深度解析

Linux内核中常用的数据结构和算法分析 1. 链表数据结构实现与应用 1.1 链表基础结构 链表是Linux内核中使用最广泛的数据结构之一,它解决了数组不能动态扩展的缺陷。链表元素可以动态创建、插入和删除,且不需要占用连续内存空间。每个链表节点由两部分…...

小型电动助力播种机【设计说明书+CAD图纸+solidworks三维+STEP+IGS】

小型电动助力播种机是针对传统播种作业效率低、劳动强度大的问题设计的农业机械装置,其核心作用在于通过电动助力系统优化播种流程,实现均匀播种与精准控制。该装置采用模块化设计理念,将动力传输、播种控制与行走机构集成于一体,…...

Anthropic 经济指数报告:学习曲线

引言 Anthropic 经济指数利用隐私保护数据分析系统,追踪 Claude 在整个经济领域中的应用情况。这是Anthropic 努力的一部分,旨在尽早理解 AI 对经济的影响,以便研究人员和政策制定者有充足的时间做好准备。 在最新一期的报告中,首先观察到了与先前报告相比使用情况的变化…...