1.Overview
xilinx的7系列FPGA根据不同的器件类型,集成了GTP、GTX、GTH、GTZ四种串行高速收发器,可以支持多种协议如PCI Express,SATA,JESD204B等。四种收发器主要区别是支持的线速率不同,下图可以说明在7系列里面器件类型和支持的收发器类型以及最大的收发器数量。
GT支持的使用场景如下:
GT以硬核的形式集成在FPGA芯片中。其中,一个GT称为一个channel,四个GT组成一组称为Quad,如下图所示,一共四个Quad,16个GT。只用配置好接口数据和时钟,就可以实现高速串行接口。
关于时钟,一个Quad包含一个QPLL,每一个GT各自包含一个CPLL。每个Quad可以共享相邻Quad的输入参考时钟,每个Quad中的GT可以选择使用CPLL的输出时钟,也可以选择使用QPLL的输出时钟。区别在于QPLL可以提供更高的时钟频率,具体使用哪个PLL需要根据项目实际来选择。
每个channel(GT)包含TX(发送器)和RX(接收器),如下图所示,两者的功能独立,都由PMA(Physical Media Attachment,物理媒介适配层)和PCS(Physical Coding Sublayer,物理编码子层)两部分组成。其中,PMA功能为:串并转换和模拟部分,PCS功能为:并行的数字电路处理。
2.Transmitter
TX的结构图如下,并行数据流入FPGA的TX接口,通过PCS和PMA,然后作为高速串行数据从TX驱动器流出。其中
- FPGA TX Interface:FPGA的TX接口是FPGA到GTX/GTH收发器的TX数据路径的网关,完成输入并行数据位宽的配置。
- TX PIPE Control:PCIe物理层接口,如果使能了PCIE接口,则该通道是PCIE的数据通道。
- 8B/10B Encoder:完成对输入数据的8B/10B编码(目的是直流平衡),是可选项。效率比较低,常用于低于8G的场景。
- TX Gearbox:提供 64B/66B、64B/67B等高效编码形式。
- Pattern Generator:伪随机序列(Pseudo-random bit sequences,PRBS)是一种貌似随机,实际上是有规律的周期性二进制序列,用于高速串行通信通道传输的误码率测试。
- TX Phase Interpolator Controller:这是TX相位插值器控制器模块,支持动态控制TX相位插值器(TX PI),TX PMA中的数据进行微调。
- Phase Adjust FIFO:GTX/GTH收发器TX数据路径有两个内部并行时钟域,为了正确传输数据,必须解决两个域之间的所有相位差。
- Polarity :如果TXP和TXN差分线在PCB上意外交换,则GTX/GTH收发器TX传输的差分数据将被反转。一种解决方案是在串行化和传输之前将并行数据反转,以抵消差分对上的反向极性。
- PISO:完成并行数据换串行。
- TX OOB and PCIE:这个主要是当GTP作为PCIE或SATA接口时所需要的功能。
- TX Driver:是一个高速电流模差分输出缓冲器。为了最大限度地提高信号完整性。
3.Receiver
高速串行数据流入GTX/GTH收发器RX的PMA,进入PCS,最后进入FPGA内部。PCS负责前处理和串转并,PMA负责解码,基本上与TX实现的功能相反。RX结构图如下,