Xilinx高速接口GT介绍以及IP核详解

这篇具有很好参考价值的文章主要介绍了Xilinx高速接口GT介绍以及IP核详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


一、GT是什么?

参考链接:https://zhuanlan.zhihu.com/p/46052855

  1. 它是集成在FPGA芯片内部的固定电路, 因此我们只需要关心该固定电路与FPGA的逻辑部分接口时序即可;
  2. 它是串行收发器, 发送出去只有1bit数据, 而接收端也是1bit线。 但FPGA与该器件的接口数据是多bit的, 因此该收发器同时也是一个高速并串转换器;
  3. 它是高速收发器, 一般线速率可达Gbps, GT分为不同系列, 在不同的系列中有不同的速度。
  4. GT(包括GTX、 GTH和GTP)是Xilinx在高速SerDes的基础上, 增加了其他模块, 如LVDS、 PLL、 8b/10b编解码+绕解码等(具体可以看Xilinx相关文档, 如ug476)形成的一个高速串行收发器, GT是Gigabit Transceiver的意思, 它是实现当下一些高速串行接口的基础: 如PCIe、 RapidIO等

二、如何实现的高速传输

  1. 采用差分接口, 能够很好地抑制共模干扰, 有效提高传输的可靠性;
  2. 由于采用了SERDES, 使用串行总线传输数据, 不需要考虑并行总线的位对齐的问题, 并行总线由于在布线时很难保证每条线路长度与电气特征一致, 导致信号到达时间不同, 在较高的工作频率下很难实现完全同步, 以致出现信号偏移。 这使接收器难以确定采样时间, 容易造成数据错误。 所以串行总线可以以很高的速率传输串行数据;
  3. 由于寄生电容的影响, 在并行的两条数据线中容易产生串扰, 甚至改变信号原有真实电平。 采用地线进行屏蔽可以在一定程度上消除串扰, 但同时也造成总线线路数目的急剧增加。 而串行总线不存在这样的问题。
  4. SERDES不需要传输随路时钟, 因为接收端的时钟提取核恢复模块可以从接收到的串行数据中提取出时钟, 所以不存在随路时钟的抖动带来的问题。

三.GT高速收发器结构

gt口输出接口是什么,高速接口学习,tcp/ip,fpga开发,网络协议

1. PMA、 PCS

GT高速收发器结构图主体分为PMA(Physical Media Attachment, 物理媒介适配层)和PCS(Physical Coding Sublayer, 物理编码子层)。PMA的功能为:串并转换(图中的SIPO-串入并出和PISO-并入串出)和模拟部分;PCS中的功能, 都是并行的数字电路处理。理论上说GTX的最小必要单元就是PMA, 其主要原因就是核心的模拟部分。 而PCS理论上可以全部由FPGA普通逻辑来实现。 当然作为硬核提供的PCS功能更多、 性能更好、 使用更方便。

2. Elastic Buffer:

弹性buffer, 基本结构是一个FIFO, 常用于处理buffer两边的跨时钟问题。 不过其实有更多的用途, 比如Clock Correction或者Channel Bonding。另外还有一种不用Elastic Buffer的模式, 一般称为buffer bypass模式, 算是一种高级应用。

3. 8B10B:

通常说8b10b是一个编码方式。 在这里还指GTX PCS中的一个模块。作为编码,8b10b有平衡电平, 防止连续1/0的功能。 编码分为正负码和特殊K码。 最常用的K码应该是k28.5。 8b10b最大的优势在于自带错误检测。 当出现8b10b错误的时候, 大概率是链路质量有问题。 8b10b最大的劣势是效率比较低, 有20%的额外开销, 所以常用于低于8G的场景, 最常见的、 使用8b10b、 同时又高于8G线速率的似乎是CPRI Rate7, 线速率9.8G左右。作为GTX的一个模块, 发送端提供了方便使用的编码接口, 接收端提供了方便使用的输出指示, 直接使用即可。另外, GTX还提供了Gearbox。 除了8b10b之外, 还有其他很多编码方式, 比如64b66b, Gearbox就是为这一类编码做准备的。

4. PRBS:

PRBS是伪随机序列码, GTX自带了PRBS的生成器(在TX内部) 和PRBS接收/检查模块(在RX内部)。 ibert中的误码率检查就是基于内置的PRBS模块。从结构图可以看到, PRBS和8b10b没有项目连接的直接关系, 所以ibert的测试中没有使用8b10b编码(也没有使用其他编码)。 同时内部的PRBS也不支持使用其他编码。 所以如果想在GTX外部使用PRBS信号源, 可以另外单独做PRBS的生成器和校验模块。 Xilinx似乎是有相关参考设计的。

5. ibert:

ibert是Xilinx提供的一个用于GT辅助调试的IP。首先明确一下, 这是一个IP。 所以ibert有两种用法:
1.直接使用example design进行独立使用;
2.集成到某个工程中进行使用;
ibert最常用的两个用途是:
1.基于PRBS模块的误码率检查;
2.基于眼图扫描模块的测量近端眼图;
另外, ibert中可以方便的设置GTX的所有参数。 是个不错的参数测试平台。通常可以尝试几个参数的调整来查看对GTX的误码率/眼图是否有帮助, 这几个参数是TX部分的预加重。 而接收端的设置是均衡模式, 由于均衡的原理较为复杂, 而且多为自动调整, 所以不会有简单的几个参数就能看出变化。

6.QPLL、 CPLL:

  • 四个GTX为一组, 称呼为Quad, 每个GTX称呼为Channel, 就很容易理解QPLL和CPLL了。 QPLL是一个Quad共用的PLL, GTX一个Quad只有一个QPLL。 CPLL是每个Channel独有的PLL。从底层角度看, 由于CPLL是每个Channel独有的, 所以CPLL的所有接口都在Channel这个底层模块中。 而QPLL是另外使用了一个叫common的底层模块。GTX中QPLL和CPLL, 除了数目(一个Quad一个QPLL四个CPLL) 和归属(QPLL属于common, CPLL属于Channel)不同之外, 最大的不同在于支持的最高线速率频率不同。 CPLL最高只有6.xG, 而QPLL可以超过10G(具体数值要根据器件的速度等级来查询DataSheet)。即使QPLL工作在很高的线速率下, Channel也可以工作在较低的线速率下。 具体的实现方案就是:
  1. 使用Channel自带的CPLL而不用QPLL;
  2. Channel可以将QPLL的速率按2的倍数进行降低;
    这样同一个参考时钟下, 一个Quad的不同GTX有机会跑在不同的线速率下。 当然这一需求需要更多的操作, IP本身无法实现。

四、IP核设计

gt口输出接口是什么,高速接口学习,tcp/ip,fpga开发,网络协议

  • GT TYPE: GT类型,取决于器件是否支持

  • Shared Logic: 选择Quad PLL、差分参考时钟缓冲器、时钟复位逻辑是否包含在IP核内部还是示例工程当中
    gt口输出接口是什么,高速接口学习,tcp/ip,fpga开发,网络协议

  • Protocol: 协议类型预设,一般默认

  • TX RX: 输入输出的线速率以及参考时钟频率设置

  • Quad Column: 使用芯片左侧还是右侧芯片。

  • PLL Selection: CPLL是每一个channel都有的PLL,最高速率为6G,QPLL为一个QUAD四个channel共用的PLL,速率可超过10G。

  • 可视化的图形里可以直接约束GT位置以及参考时钟,也可以在XDC文件中约束管脚,后者优先级高。
    gt口输出接口是什么,高速接口学习,tcp/ip,fpga开发,网络协议

  • TX、RX: 设置FPGA用户侧位宽和编码形式,内部位宽会根据前俩者选项自动计算

  • 一般推荐使用buffer,若设计延时敏感则去掉buffer,采用相位对齐电路
    gt口输出接口是什么,高速接口学习,tcp/ip,fpga开发,网络协议

  • Comma Value:逗号值,一般为K28.5。逗号的含义就是让接收端知道从哪里开始是有效的用户数据。

  • Comma Mask:逗号值掩码:可将逗号某一位变为x(即任意值),从而加大逗号搜索范围。

  • Align to:控制多少个Byte搜索一次逗号值,默认即时刻都在搜索。

  • RXBYTEISALIGN:接收端字节对齐信号,该信号可告知逗号被成功检测,数据已对齐。

  • Differential Swing and Emphasis Mode:差异摆动和强调模式,特殊协议选择,PCIE,SATA。

  • RX Equalization:RX均衡器:短距离传输使用低功耗的LPM,长距离使用DFE。

  • Automatic Gain Control:自动增益控制

  • RX Termination:RX终止,门限电压值,当电压值可编程的时候,推荐500mV以下。

  • TXPOLARITY:TX端N、P极性控制

  • TXDIFFCTRL:发送端幅值控制

  • TXPOSTCURSOR:后加重调节

  • TXPRECURSOR:预加重调节

4.1、逗号码

首先8B/10B编码是把一个8bit数通过某种编码变成10bit数, 并且得出的10bit数中的0和1的个数更平衡, 以此减少直流分量。8B/10B编码是由高3位的3B/4B编码加上5B/6B编码组成的, 而K28.5就是由5(101) 和28(11100) 组成, 即101_11100, 十六进制则是BC。 经过编码表变成10bit数。

4.1.1、为什么需要逗号码

如下所示, 串行收发器接收到一个一个的1bit数据, 就像汉字一样, 接收到一个一个的汉字。 我们需要逗号把汉字隔开才能明白句子的意思, 而数据也一样
gt口输出接口是什么,高速接口学习,tcp/ip,fpga开发,网络协议
如下图所示, 左边为发送端的并行数据, 右边为接受端的并行数据。 当接收到逗号码之后才开始接收Data1, 有点类似于开始符。
gt口输出接口是什么,高速接口学习,tcp/ip,fpga开发,网络协议
发送端和接收端与FPGA的接口除之前定义的32bit数之外, 还有4个1bit组成的4bit CHARISK数据。
TXCHARISK端口用于指示TXDATA上的数据是K码还是常规数据。 8B/10B编码器检查接收到的TXDATA字节, 以匹配任何K字符, 如果对应的TXCHARISK位驱动为高。 简单来说, TXCHARISK拉高, 编码器就把该数据编码为逗号, 否则编码为普通数据。当接收检测到逗号码的时候, 对应RXCHARISK会拉高。 来辅助接收端把数据进行对齐, 当勾选了IP核中的RXSLIDE, 就需要手动产生RXCHARISK。(简单来说,该信号就是K码指示信号,和AXI当中的keep信号类似)
gt口输出接口是什么,高速接口学习,tcp/ip,fpga开发,网络协议文章来源地址https://www.toymoban.com/news/detail-848643.html

  • LOOPBACK:环回测试端口
    gt口输出接口是什么,高速接口学习,tcp/ip,fpga开发,网络协议
  • CLOCK correction:时钟纠正
  • Sequence length:时钟纠正序列个数
  • 图中序列码为0hBC50,即一个K28.5和一个0h50

到了这里,关于Xilinx高速接口GT介绍以及IP核详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Xilinx平台Aurora IP介绍(三)Aurora配置及接口介绍

    来咯来咯,搬砖全靠它! 汇总篇: Xilinx平台Aurora IP介绍(汇总篇) 目录 一、Aurora配置 1.1第一页配置

    2024年02月16日
    浏览(28)
  • 【FPGA】Xilinx Cordic IP 内核使用记录(输入输出数据格式介绍)及实验仿真

    Rotate 实现的功能是坐标的旋转。 输入 X, Y, Phase 输出X’, Y’ 具体实现的功能对应的数学表达形式如下: 在做FFT 复乘旋转因子时也可以用这个IP核的Rotate功能来实现。旋转因子-旋转! Translation 实现的功能是求模,以及向量的夹角 输入 X, Y 输出X’ and Phase 具体实现的功能对应

    2024年02月07日
    浏览(38)
  • Xilinx PCIe IP核接口详解

    Xilinx PCIe IP核接口详解 在FPGA领域中,PCIe(Peripheral Component Interconnect Express)总线接口已经成为了许多高速数据交换的标准。这是因为PCIe总线拥有极高的带宽、低延迟和可靠性。因此,Xilinx也提供了自己的PCIe IPs,以便在FPGA上实现PCIe接口。 Xilinx的PCIe IP核支持PCIe Gen 1、Gen 2、

    2024年02月15日
    浏览(44)
  • RapidIO、SelectIO、Serdes、GT、Aurora、GTX、LVDS介绍

          一些高速总线接口(RapidIO、Serdes、GTX、GTH、Aurora、PCIE、LVDS、SRIO、SelectIO)概念及功能不清晰,现在就其功能与联系分别总结如下:        串行RapidIO,高速串行通信协议,旨在链接DSP、FPGA、网络处理器等芯片,具有低延迟、高带宽(支持25Gbps、2.5Gbps、3.125Gbps的数据

    2024年02月05日
    浏览(33)
  • xilinx的高速接口构成原理和连接结构

    本文来源: V3学院 尤老师的培训班笔记 【高速收发器】xilinx高速收发器学习记录 Xilinx-7Series-FPGA高速收发器使用学习—概述与参考时钟 GT Transceiver的总体架构梳理 Xilinx 的高速接口称之为 transceivers(高速收发器),这部分电路是专用电路,供电等都是独立的,管脚和通用管脚

    2024年04月15日
    浏览(28)
  • FPGA(基于xilinx)中PCIe介绍以及IP核XDMA的使用

    例如:第一章 PCIe简介以及IP核的使用 PCIe 总线架构与以太网的 OSI 模型类似,是一种分层协议架构, 分为事务层(Transaction Layer)、 数据链路层(Data Link Layer) 和物理层(Physical Layer)。 这些层中的每一层都分为两部分:一部分处理出站(要发送的)信息,另一部分处理入站(接收

    2024年02月08日
    浏览(36)
  • vivado 预设文件、IP设置(_P)、用户参数、以太网时钟处理、GT位置限制、当前可识别板的IP列表

    了解预设文件 预设文件有助于在特定配置中自定义IP核心。PS7、axi_emc和当linear_flash或DDR3_SDRAM 界面是在Vivado IP集成商的Board选项卡中选择的。预设文件使用XML格式。preset_file是为特定的Board文件定义的,可以是用于将预设应用于多个IP。 ip_presets schema=\\\"1.0\\\" ip_preset preset_proc_name=

    2024年01月23日
    浏览(38)
  • Rust中的智能指针:Box<T> Rc<T> Arc<T> Cell<T> RefCell<T> Weak<T>

    智能指针(smart pointers)是一类数据结构,是拥有数据所有权和额外功能的指针。是指针的进一步发展 指针(pointer)是一个包含内存地址的变量的通用概念。这个地址引用,或 ” 指向”(points at)一些其 他数据 。引用以 符号为标志并借用了他们所 指向的值。除了引用数据

    2023年04月20日
    浏览(50)
  • C++ 中 <iterator> <functional> <numeric> 库好用的函数

    简述:迭代器省代码用的。 std::advance 记忆方法:advance-前进。 形如: advance(it, step) ,表示 it 迭代器自增 step 步。 实现类似于: 或 std::next std::prev 记忆方法:自己问英语老师。 形如 next(it, n) 及 prev(it, n) ,默认 n = 1 ,表示迭代器前移、后移 n 位。 为 std::advance 的变体,区

    2024年02月05日
    浏览(52)
  • mipi接口 1280(RGB)*720 LCD屏开发驱动笔记帖 1、MTK8788[android 9.0]GT9XX TP触摸屏驱动流程分析

    ps:创业开发产品,自学笔记,不一定适合教材性的阅读,零碎整理,自我总结用 材料:4.1寸lcd屏两块,屏自带触控,屏幕资料具备,rk3399和MK8788开发版上分别开发。 1】rk3399       ​​​​​​​ 开发板:友善的rk3399v2开发版, 资料链接 : 处理器:RK3399 内核: 编译工具

    2023年04月08日
    浏览(92)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包