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

FPGA_GTX:简要版

1. GTX介绍

Xilinx FPGA的GT意思是Gigabyte Transceiver。通常称呼为Serdes、高速收发器。GT在xilinx不同系列有着不同的产品,从7系列到UltraScale系列分别有GTP、GTX、GTZ、GTH、GTY和GTM。不同GT整体结构上类似,为了支持越来越高的line rate,在细节上有着不同的差异
在这里插入图片描述

本文参考@小飞侠学FPGA

2. 使用高速收发器的原因

  1. 主要是还是速率的问题,特别是在现在对于速率要求越来越高的情况下。在高速串行口之前,当数据速率开始超过1gb /s时,并行I/O方案就会达到物理限制(原因在于并行I/O总线中,接口对齐(延时)问题阻碍了与外部设备的有效通信),并且不再能够提供可靠、经济的方式来保持信号同步
  2. 之前的解决方案
    1. 两个ic上都应用一个公共时钟,用于数据传输和接收,各种延误在速率低的情况下还可以忽略,因为延误相对于有效信号来说非常小。但随着速率的提高,延误的影响越来越大,甚至导致系统上的错误。
      在这里插入图片描述

    2. 随之而来的解决方法是,不依靠系统时钟,发送方在发生数据的时候,也发送一个同步的时钟。这样可以消除部分延迟,同时由于两根线是从同一个地方发出,传输距离等也很容易做的一致,所以有些延迟也可以抵消
      不过,源同步设计导致时钟域数量的显著增加。这引入了时序约束和分析的复杂性,如现场可编程设备具有有限时钟缓冲的门阵列(FPGA),以及必须定制设计每个时钟树的专用集成电路(ASIC)。这个问题在大型并行总线上更加严重,因为电路板设计的限制常常迫使每个数据总线使用多个转发时钟。因此,32位总线可能需要4个,甚至8个转发时钟。
      在这里插入图片描述

    3. 还有一种自同步的模式。它一数据线带着时钟奔向你,相对自同步来说,它不需要那么多的时钟线了,随之而来的时钟复制也不需要。但比特率变动时需要额外的手段来纠正。如果数据包含相当多的连续零或连续一,那么可能出现失同步的情况。此外,在传输中,噪声或者干扰可能会导致误码。
      ssss.

3. 本文目的

因为GTX的协议会非常复杂,这篇文章的目的是快速掌握如何使用IP核

4. 简单理解

  1. 理解为一个高速并串转换器(串行速率可达几十G),把你给它的并行数据,转换为串行输出,或者给它串行数据,它会给你转换为并行数据。它可以单独作为发送装置或接收装置,也可以一起运行。

    这里有一点像RGMII,在FPGA侧是单边沿传输,先把从PHY芯片接收到的双边沿的RGMII信号转为单边沿的GMII信号,也就是说FPGA要对以太网的数据进行处理的话先把来自PHY芯片的双边沿信号转化为单边沿的信号。

  2. 可以自定义协议来实现通信
  3. 它也经常用来配合其他IP核,实现协议通信。比如常用于两块板子之间通信的Auraro协议,可以配合Xilinx 提供的 Aurora IP 核来实现。GTx主要负责物理层(Physical Layer)数据的发送和接收,包括一系列的物理层任务,如信号的串行化和解串行化、编码和解码、时钟恢复等。 Aurora IP 核则负责帧生成和检查、错误处理、信道初始化、链路状态管理等功能。它还支持以下的协议:
    在这里插入图片描述

5. 使用方法

配置IP核->生成相应的例程->更改部分程序满足自己的需求~

http://www.lryc.cn/news/393887.html

相关文章:

  • 使用mq向队列发送消息流程
  • Git中两个开发分支merge的原理
  • 数字图像处理、机器视觉(计算机视觉)、计算图形学概念
  • Android SurfaceFlinger ——获取显示屏信息(十八)
  • QCustomPlot+ vs2022+ qt
  • Perl 语言开发(五):循环语句
  • 线性系统理论及应用GUI设计及仿真
  • RAG综述汇总
  • 智慧水利的变革之路:如何通过大数据、物联网和人工智能构建高效、智能、可持续的水利管理新模式
  • springcloud-gateway 网关组件中文文档
  • Android Gradle开发与应用Gradle详细使用
  • 软件架构的23个基本原则:构建稳健、可扩展的系统
  • 江苏省生产经营单位安全管理考核(附答案)
  • Kafka第四篇——生产数据总体概括,源码解析分区策略,数据收集器,Sender发送线程,key值
  • 二叉树的链式结构
  • 【STM32】在标准库中使用DMA
  • 多线程详解
  • 软件工程需求之:业务需求与用户需求
  • Nettyの源码分析
  • MySQL远程登录
  • html的作业
  • 【TORCH】查看dataloader里的数据,通过dataloader.dataset或enumerate
  • KDTree 简单原理与实现
  • [c++] 可变参数模版
  • QWidget窗口抗锯齿圆角的一个实现方案(支持子控件)2
  • 数据结构之“队列”(全方位认识)
  • 密码学复习
  • 【文献解析】一种像素级的激光雷达相机配准方法
  • Http 实现请求body体和响应body体的双向压缩方案
  • C++(Qt)-GIS开发-简易瓦片地图下载器