Xilinx GTH 简介 ,CoaXpress FPGA PHY 部分
什么是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 部分的更多相关文章
- xilinx和altera的fpga的不同之处!----如果不知道,你将为之付出代价! --转载
本人从2004年接触fpga开始,至今已经8年了.开发过altera的flex系列和cyclone3系列:开发过xilinx的vii和v5系列.下面谈谈本人对二者的一些不同,以便引起开发者对一些细节上 ...
- 270-VC709E 增强版 基于FMC接口的Xilinx Vertex-7 FPGA V7 XC7VX690T PCIeX8 接口卡
VC709E 增强版 基于FMC接口的Xilinx Vertex-7 FPGA V7 XC7VX690T PCIeX8 接口卡 一.板卡概述 本板卡基于Xilinx公司的FPGA XC7V ...
- Xilinx FPGA结构
FPGA是什么?FPGA是现场可编程逻辑阵列,由可编程逻辑资源(LUT和 REG),可编程连线,可编程I/O构成.Xilinx的FPGA的基本结构是一样的,但随着半导体工艺的发展,FPGA的逻辑容量越 ...
- Xilinx Altera FPGA中的逻辑资源(Slices VS LE)比较
前言 经常有朋友会问我,“我这个方案是用A家的FPGA还是X家的FPGA呢?他们的容量够不够呢?他们的容量怎么比较呢?”当然,在大部分时候,我在给客户做设计的时候,直接会用到最高容量的产品,因为我们的 ...
- Lattice系列FPGA入门相关0(Lattice与Altera、Xilinx对比及入门)
需求说明:Lattice系统FPGA入门 内容 :Lattice与Altera.Xilinx对比 来自 :时间的诗 1.Lattice与Altera.Xilinx对比 latt ...
- 202-基于TI DSP TMS320C6678、Xilinx K7 FPGA XC7K325T的高速数据处理核心板
该DSP+FPGA高速信号采集处理板由我公司自主研发,包含一片TI DSP TMS320C6678和一片Xilinx FPGA K7 XC72K325T-1ffg900.包含1个千兆网口,1个FMC ...
- 基于Xilinx Kintex-7 FPGA K7 XC7K325T PCIeX8 四路光纤卡
基于Xilinx Kintex-7 FPGA K7 XC7K325T PCIeX8 四路光纤卡 1. 板卡概述 板卡主芯片采用Xilinx公司的XC7K325T-2FFG900 FPGA,pin_ ...
- 202-基于TI DSP TMS320C6678、Xilinx K7 FPGA XC72K325T的高速数据处理核心板
基于TI DSP TMS320C6678.Xilinx K7 FPGA XC72K325T的高速数据处理核心板 一.板卡概述 该DSP+FPGA高速信号采集处理板由我公司自主研发,包含一片TI DSP ...
- 175-基于TI DSP TMS320C6455、Xilinx V5 FPGA XC5VSX95T的高速数据处理核心板
基于TI DSP TMS320C6455.Xilinx V5 FPGA XC5VSX95T的高速数据处理核心板 一.板卡概述 该DSP+FPGA高速信号采集处理板由我公司自主研发,包含一片TI DSP ...
- Xilinx FPGA全局介绍
Xilinx FPGA全局介绍 现场可编程门阵列 (FPGA) 具有诸多特性,无论是单独使用,抑或采用多样化架构,皆可作为宝贵的计算资产:许多设计人员并不熟悉 FPGA,亦不清楚如何将这类器件整合到设 ...
随机推荐
- awk的简要使用
原文地址:https://www.lujun9972.win/blog/2020/08/23/在命令行进行简单的统计分析/index.html 目录 使用awk获取最小值.最大值.中位数和平均值 使用 ...
- 定位解析一个因脚本劫持导致webpack动态加载异常的问题
问题描述 项目现场的前端项目在点击顶部的导航栏切换不同的模块时,会有小概率出现模块加载报错的情况: 我们的前端项目里是有基于react-loadable做的懒加载的,上图的12.be789340.ch ...
- 【Go WEB进阶实战】开源的电商前后台API系统
前言 最近有很多小伙伴私信我:在学完Go基础后,想使用一个框架实战一个商业项目,但是又苦于不知道选择什么框架,更不知道做什么商业项目. 为了解决大家这些问题,我结合自己的项目经历,为大家开源了一个简单 ...
- git查看自己是从那个分支建的分支
可能发生的情况 很多时候,开始建分支的时候, 能够确认自己是那个分支建的,但是当写完功能之后, 再去回想,有时是忘记自己基于那个分支建的分支. 这时有一个命令的话就可以很快的定位了. 查看创建的分支来 ...
- 【JS 逆向百例】转变思路,少走弯路,X米加密分析
声明 本文章中所有内容仅供学习交流,抓包内容.敏感网址.数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除! 逆向目标 目标:X米账号登 ...
- WebAssembly入门笔记[3]:利用Table传递引用
在<WebAssembly入门笔记[2]>中,我们介绍了如何利用Memory在作为宿主的JavaScript应用和wasm模块之间传递数据,但是Momory面向单纯二进制字节的读写在使用起 ...
- C/C++ 感染标志与空字节感染
C/C++ 通过搜索PE结构中的空隙部分,对指定文件写入感染标志,作用是,如果程序被感染过则不再继续感染,而搜索空字节,则是要将恶意代码动态的填充到可执行文件中,并劫持执行流,以下代码就是这两种代码的 ...
- SpringBoot接入阿里云oss
1.pom中添加阿里云oss坐标 <?xml version="1.0" encoding="utf-8"?> <dependencies&g ...
- 创建多线程方式(Java)
一.创建自定义线程类继承Thread 自定义线程类代码 package com.demo05; public class MyThread extends Thread { @Override pub ...
- Odoo16—即时通信模块discuss
odoo中自带的discuss模块是一个简易版的即时通信系统,虽然简单,但是功能还是挺强劲的.可以发送图文消息,可以语音,可以视频,也可以共享屏幕,看下效果吧! PC端效果 手机端效果 重点说明 没错 ...