什么是GTH

GTH 是Xilinx UltraScale系列FPGA上高速收发器的一种类型,本质上和其它名称如GTP, GTX等只是器件类型不同、速率有差异;GTH 最低速率在500Mbps,最高在16Gbps

CoaXpress Host/Device IP 均需要用到厂商的GT收发器模块,因此这里写一篇笔记作为开发记录

GTH 的特性

physical coding sublayer (PCS) 是Xilinx 高速收发器的最顶层.

PCS(Physical Coding Sublayer)层是数据链路层中的一个子层,位于物理层和MAC(Media Access Control)层之间。它是在数据链路层中的一个组成部分,用于实现物理层与MAC层之间的接口功能。

PCS层的主要工作是将上层的数据帧转换为物理层能够传输的信号,并负责将接收到的信号解析为数据帧。它主要完成以下几个任务:

编码和解码:PCS层负责将上层数据帧进行编码,将其转换为物理层可传输的信号。这通常涉及到将数字数据转换为模拟信号,并在发送端对信号进行编码。接收端的PCS层则负责对接收到的信号进行解码,将其转换回数字数据。

时钟恢复:PCS层通过对接收到的信号进行时钟恢复操作,确保数据的准确传输。这包括识别接收信号中的时钟信息,以便正确地解析数据。

传输编码:PCS层可能会对数据进行传输编码,以增强传输的可靠性和效率。这包括添加冗余校验码、错误检测和纠正码等,以提高数据传输的可靠性,并确保数据在传输过程中不会出现错误。

对齐:PCS层负责对接收到的数据进行对齐,确保数据能够正确地被上层的MAC层处理和解析。

总的来说,PCS层在数据链路层和物理层之间起到了一个接口的作用,负责将上层的数据进行编码、时钟恢复、传输编码和对齐等操作,以实现可靠的数据传输。

由此可见,时钟恢复,数据编码,数据对齐等操作,均在PCS层完成,如果需要传输CRC校验,可以在更上一层实现,计算CRC后,将CRC结果作为正常数据进行传输

GTH 结构

下图是GTH的架构图,从图中可以得到几个信息:

1、GTH 一般是4个一组,4个channel ,1个common ,common负责时钟部分,channel 部分对应具体的serdes;

2、时钟恢复电路在PMA部分;

普通使用中需要关注的部分如下:

8B/10B 编解码,以RX为例

GTH模块内置了8b/10b编解码

对于单个channel来说,通常会选择内部40bit 位宽,用户32bit位宽模式,因为多数协议会定义用户数据为1个word == 4 bytes

8b/10b 编码的错误指示

The 8B/10B decoder performs out-of-table error detection and drives the RXCTRL3 port High when it is enabled,

but receives a 10-bit character that cannot be mapped into a valid 8B/10B character listed in Appendix A, Valid Data Characters. When this occurs, the

non-decoded 10-bit character is piped out of the decoder through the RX data interface with this format:

• The corresponding RXCTRL1 represents the 9th bit

• The corresponding RXCTRL0 represents the 8th bit

• The corresponding RXDATA byte represents the [7:0] bits

• The corresponding RXCTRL3 represents that an invalid 8B/10B character error occurred

8b/10b comma 对齐与word对齐

用K 码做对齐,常见用作对齐的K码为K28.5和K28.1,下图就实用K28.5做对齐

这只是byte对齐了,那么word怎么对齐呢?比如CoaXPress的downconnection高速传输用的都是1个word 4个字节作为一个最小单位,那么word怎么对齐呢?GTH也已经考虑了这一点,配置如下:

对应到GTWIZARD 模块,配置如下:

根据上述配置,CoaXpress协议对应的word数据就能正确的对齐并输出

(A word consists of 4 consecutive 8B/10B characters labeled P0, P1, P2 and P3 and are transmitted in the stated order (i.e. P0 first). The receiver shall perform word alignment in order to successfully decode the packets.)

Xilinx GTH 简介 ,CoaXpress FPGA PHY 部分的更多相关文章

  1. xilinx和altera的fpga的不同之处!----如果不知道,你将为之付出代价! --转载

    本人从2004年接触fpga开始,至今已经8年了.开发过altera的flex系列和cyclone3系列:开发过xilinx的vii和v5系列.下面谈谈本人对二者的一些不同,以便引起开发者对一些细节上 ...

  2. 270-VC709E 增强版 基于FMC接口的Xilinx Vertex-7 FPGA V7 XC7VX690T PCIeX8 接口卡

    VC709E 增强版 基于FMC接口的Xilinx Vertex-7 FPGA V7 XC7VX690T PCIeX8 接口卡 一.板卡概述       本板卡基于Xilinx公司的FPGA XC7V ...

  3. Xilinx FPGA结构

    FPGA是什么?FPGA是现场可编程逻辑阵列,由可编程逻辑资源(LUT和 REG),可编程连线,可编程I/O构成.Xilinx的FPGA的基本结构是一样的,但随着半导体工艺的发展,FPGA的逻辑容量越 ...

  4. Xilinx Altera FPGA中的逻辑资源(Slices VS LE)比较

    前言 经常有朋友会问我,“我这个方案是用A家的FPGA还是X家的FPGA呢?他们的容量够不够呢?他们的容量怎么比较呢?”当然,在大部分时候,我在给客户做设计的时候,直接会用到最高容量的产品,因为我们的 ...

  5. Lattice系列FPGA入门相关0(Lattice与Altera、Xilinx对比及入门)

    需求说明:Lattice系统FPGA入门 内容       :Lattice与Altera.Xilinx对比 来自       :时间的诗 1.Lattice与Altera.Xilinx对比 latt ...

  6. 202-基于TI DSP TMS320C6678、Xilinx K7 FPGA XC7K325T的高速数据处理核心板

    该DSP+FPGA高速信号采集处理板由我公司自主研发,包含一片TI DSP TMS320C6678和一片Xilinx FPGA K7 XC72K325T-1ffg900.包含1个千兆网口,1个FMC ...

  7. 基于Xilinx Kintex-7 FPGA K7 XC7K325T PCIeX8 四路光纤卡

    基于Xilinx Kintex-7 FPGA K7 XC7K325T PCIeX8 四路光纤卡 1. 板卡概述   板卡主芯片采用Xilinx公司的XC7K325T-2FFG900 FPGA,pin_ ...

  8. 202-基于TI DSP TMS320C6678、Xilinx K7 FPGA XC72K325T的高速数据处理核心板

    基于TI DSP TMS320C6678.Xilinx K7 FPGA XC72K325T的高速数据处理核心板 一.板卡概述 该DSP+FPGA高速信号采集处理板由我公司自主研发,包含一片TI DSP ...

  9. 175-基于TI DSP TMS320C6455、Xilinx V5 FPGA XC5VSX95T的高速数据处理核心板

    基于TI DSP TMS320C6455.Xilinx V5 FPGA XC5VSX95T的高速数据处理核心板 一.板卡概述 该DSP+FPGA高速信号采集处理板由我公司自主研发,包含一片TI DSP ...

  10. Xilinx FPGA全局介绍

    Xilinx FPGA全局介绍 现场可编程门阵列 (FPGA) 具有诸多特性,无论是单独使用,抑或采用多样化架构,皆可作为宝贵的计算资产:许多设计人员并不熟悉 FPGA,亦不清楚如何将这类器件整合到设 ...

随机推荐

  1. [转帖]Nginx(2):架构设计与工作流程

    https://cloud.tencent.com/developer/article/1886166?areaSource=&traceId= 这些天呐,实在是给我看晕了.起因自然还是对 n ...

  2. typeScript类型别名

    类型别名 类型别名:是可以给一个类型起一个新的名字 采用关键字 type 例如 type Name=string|number type strType=string|number|boolean; ...

  3. 手写promise自定义封装异步任务回调的执行

    自定义封装异步任务回调的执行 <script type="text/javascript"> let p = new Promise((resolve, reject) ...

  4. 使用Visual Studio调试 .NET源代码

    前言 在我们日常开发过程中常常会使用到很多其他封装好的第三方类库(NuGet依赖项)或者是.NET框架中自带的库.如果可以设置断点并在NuGet依赖项或框架本身上使用调试器的所有功能,那么我们的源码调 ...

  5. 【scikit-learn基础】--『回归模型评估』之准确率分析

    分类模型的评估和回归模型的评估侧重点不一样,回归模型一般针对连续型的数据,而分类模型一般针对的是离散的数据. 所以,评估分类模型时,评估指标与回归模型也很不一样,比如,分类模型的评估指标通常包括准确率 ...

  6. TienChin-课程管理-课程搜索

    后端 新建 CourseVO.java: /** * CourseVO类是一个课程的值对象,用于存储课程的相关信息. * 它包含了课程的名称.类型.适用对象.最低价格和最高价格等属性. */ publ ...

  7. OCR文字检测与识别系统:融合文字检测、文字识别和方向分类器的综合解决方案

    1. OCR文字检测与识别系统:融合文字检测.文字识别和方向分类器的综合解决方案 前两章主要介绍了DBNet文字检测算法以及CRNN文字识别算法.然而对于我们实际场景中的一张图像,想要单独基于文字检测 ...

  8. 【奶奶看了都会】ComfyUI+SVD制作AI视频教程,附效果演示

    AI一天,人间一年 大家好啊,我是小卷,最近AI绘画又发展出一些新玩意了,小卷因为工作的关系有一个月没关注AI的发展了,都有点跟不上版本节奏了... 1.comfyui的使用效果 今天给大家介绍下AI ...

  9. flash8.ocx或其附件之一不能正确注册

    运行书中自带光盘中的程序,在该程序的readme说明中,提到这类错误,解决方式是: 因为是免安装程序,需要运行"setup"文件夹下的setup.exe文件,安装控件.在安装完成后 ...

  10. SpringMVC关于@RequestBody加与不加的区别

    SpringMVC关于@RequestBody加与不加的区别 前两天在做项目的时候遇到了这样一个问题,小组成员为了方便做接口测试,给Controller控制器上加了@RequestBody注解,但是前 ...