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.)

posted @ 2023-06-11 22:01  Hello-FPGA  阅读(3607)  评论(1编辑  收藏  举报