目录
本文主要对xilinx的GTX核的使用手册进行阅读,UG476,可以对照着原文再看我的博文。
Ch1.Transceiver and Tool Overview
2.1Reference Clock Input Structure
2.2Reference Clock Selection and Distribution
2.3.4TX Initialization and Reset
2.3.5GTX/GTH Transceiver TX Reset in Response to Completion of Configuration
2.3.6GTX/GTH Transceiver TX Reset in Response to GTTXRESET Pulse
2.3.7GTX/GTH Transceiver TX Component Reset
2.3.8RX Initialization and Reset
2.3.9GTX/GTH Transceiver RX Reset in Response to Completion of Configuration
2.3.10GTX/GTH Transceiver RX Reset in Response to GTRXRESET Pulse
2.3.11GTH Transceiver RX PMA Reset
2.3.12GTX/GTH Transceiver RX Component Resets
2.6DRP:Dynamic Reconfiguration Port
发射端:GTX高速收发器Transceiver之发射端Transmitter(UG476)
Ch1.Transceiver and Tool Overview
xilinx的7系列FPGA根据不同的器件类型,集成了GTP、GTX、GTH以及GTZ四种串行高速收发器,可以支持多种协议如PCI Express,SATA,JESD204B等。
四种收发器主要区别是支持的线速率不同,图一可以说明在7系列里面器件类型和支持的收发器类型以及最大的收发器数量[1]。
图1
GTXE2_CHANNEL/GTHE2_CHANNEL代表一个GTX/GTH transceiver channel。
GTXE2_COMMON/GTHE2_COMMON代表一个QPLL。
a) Xilinx的7系列FPGA随着集成度的提高,其高速串行收发器不再独占一个单独的参考时钟,而是以Quad来对串行高速收发器进行分组;
b)一个Quad包括四个GTX/GTH transceiver channel、一个QPLL组成,两个差分输入参考时钟接口;
c)每一个串行高速收发器称为一个Channel,其主要由channel PLL 、TX和RX组成。
以XC7K325T为例,GTX在FPGA内部如图二所示:
图2
对于每一个Quad的结构图如图三:
图3
对于每一个串行高速收发器,其包含了发送部分和接收部分,内部结构图4:
图4
发送端和接收端功能独立,均由PMA(Physical Media Attachment,物理媒介适配层)和PCS(Physical Coding Sublayer,物理编码子层)两个子层组成。
其中PMA子层包含高速串并转换(PISO)、预/后加重、接收均衡、时钟发生器及时钟恢复等电路。PCS子层包含8B/10B编解码、缓冲区、通道绑定和时钟修正等电路。
GTX发送端处理流程:首先用户逻辑数据经过8B/10B编码后,进入一个发送缓存区Phase Adjust FIFO,该缓冲区主要是PMA子层和PCS子层两个时钟域的时钟隔离,解决两者时钟速率匹配和相位差异的问题,最后经过高速Serdes进行并串转换(PISO parallel-in serial-out),有必要的话,可以进行预加重、后加重(Pre/Post Emp)。值得一提的是,如果在PCB设计时不慎将TXP和TXN差分引脚交叉连接,则可以通过极性控制来弥补这个设计错误。接收端和发送端过程相反,相似点较多,这里就不赘述了,需要注意的是RX接收端的弹性缓冲区(RX Elastic Buffer),其具有时钟纠正和通道绑定功能。
Ch2.Shared Features
2.1Reference Clock Input Structure
2.2Reference Clock Selection and Distribution
1.参考时钟整体架构
每个Quad的时钟结构如图所示[1]:
红色方框表示两个外部差分参考时钟源。
绿色方框是来自其他Quad的参考时钟输入,7系列FPGA支持使用相邻(南北方向)Quad的参考时钟作为当前Quad的参考时钟。
多路参考时钟源经过一个选择器之后,分两路进入QPLL和CPLL,其中蓝色方框是QPLL,黄色方框是CPLL。
CPLL与QPLL的区别
对于每个GTX Channel来说,可以独立选择参考时钟,可以选择QPLL或者CPLL,区别在于两者支持的线速率不同,QPLL支持的线速率高于CPLL。 CPLL支持的线速率1.6GHz到3.3GHZ之间;QPLL来说,GTX支持的线速率分两档,Lower Baud支持5.93GHz~8.0GHz,Upper Baud支持9.8GHz~12.5GHz,对于GTH则不分档位,支持的线速率为8.0GHz~13.1GHz。
2.Quad或Channel时钟选择
因为每一个Quad有两个外部参考时钟,因此对于每一个Quad来说,可以选择两个不同的参考时钟,每一个CHANNEL的接收端和发送端都可以独立选择参考时钟,如图所示:
如果用户需要使用其他Quad的参考时钟源来作为当前Quad的参考时钟,在满足下面三个条件的情况下可以使用:
1. 只能使用当前Quad上方的Quad的参考时钟;
2. 只能使用当前Quad下方的Quad的参考时钟;
3. 一个Quad的参考时钟源不能驱动超过3个Quad的收发器(只能驱动当前Quad和上下方相邻两个Quad);