- 什么是高速收发器(GTX)
FPGA中的通信协议分为低速协议和高速协议,常见的低速协议有UART、SPI、I2C等,这些协议的通信速率较低使用FPGA内部逻辑就可以实现;常见的高速协议有PCIe、以太网、Auraro、SRIO等协议,利用FPGA内部的时钟、LUT是无法实现的,假如线速度为1G,则FPGA内部需要跑到1G的频率,就算是双边沿采样也要达到500MHz,这么高的频率FPGA是很难达到的。但是随着技术的发展,对信息传输速率的要求越来越高,各种高速通信协议成为了绕不开的话题,那如何利用FPGA来实现这些高速协议呢?
首先我们知道信号的传输经历了串行到并行再到串行的发展历程,由于并行传输的传输距离有限,误码率高等缺点,现在的通信方式一般都采用串行传输,但FPGA中产生处理的一般都是并行信号,因此人们提出来SERDES技术,即串行解串,通过该技术将待发送的并行信号转化为串行信号,接收的时候再将串行信号转化为并行信号,从而实现高速串行通信。赛灵思的GT系列便是因为这个而提出的一种集成于芯片内部的高速收发器。GT的意思是Gigabyte Transceiver,G比特收发器。通常称为Serdes,高速收发器,GT,或者用具体型号(例如GTX)来称呼。
- 高速收发器的组成
GT系列的结构图如下所示:
由上图我们可以看到GTX的结构包含两部分,一个大框图一个小框图,小框图就是PMA(Physical Media Attachment,物理媒介适配层),大框图就是PCS(Physical Coding Sublayer,物理编码子层),PMA的功能为:串并转换和模拟部分;PCS中的功能都是并行的数字电路处理。理论上说GTX的最小必要单元就是PMA, 其主要原因就是核心的模拟部分。 而PCS理论上可以全部由FPGA普通逻辑来实现。 当然作为硬核提供的PCS功能更多、 性能更好、 使用更方便。
赛灵思7系列芯片中所集成的主要有GTP、GTX、GTH和GTZ四种型号,其中GTP用于A7系列,GTX常用于K7系列,GTH则常用于V7系列,GTZ用于少数V7系列,本文主要介绍GTX系列,其最高传输速率可达12.5GHz,xc7k325t的高速收发器分布图如下所示:
该芯片包含四个GT bank,GT bank被称为Qaud,每个Qaud包含四个通道,每个通道就是一个GT收发器。GTXE2_CHANNEL的结构图如下所示:
每个bank包含4个高速收发器,每个高速收发器通道(GTXE2_CHANNEL)包含一个CPLL和独立的发送、接收通道。四个高速收发器通道共用一个QPLL,且每个通道左边都有两对差分时钟引脚。差分时钟信号进入FPGA后通过IBUFDS_GTE2将差分信号转为单端信号,此单端信号再作为QPLL的输入时钟,QPLL的输出时钟又作为高速收发器的时钟。
如下图所示,差分时钟进入FPGA之后,先经过IBUFDS_GTE2转换为单端时钟,然后作为QPLL或者CPLL的时钟输入,QPLL或者CPLL的输出时钟作为发送和接收部分的时钟信号。
需要注意的是一般当线速率大于5.92Gb/s时,必须使用QPLL,否则可以选择使用QPLL或者CPLL。 QPLL和CPLL的参考时钟选择复用器如下所示:
四个GTX收发器,两个专用参考时钟引脚对和专用北向或南参考时钟路由的Quad架构。Quad中的每个GTX收发器通道有六个时钟输入:
•两个本地参考时钟引脚对,GTREFCLK0或GTREFCLK1
•两个参考时钟引脚对来自上面的Quad, GTSOUTHREFCLK0或GTSOUTHREFCLK1
•两个参考时钟引脚对来自下面的Quad, GTNORTHREFCLK0或GTNORTHREFCLK1
上图为两个相邻的bank之间的时钟输入连接图,相邻的bank可以把对方的输入时钟作为自己的参考时钟输入,因此每个差分时钟最多只能驱动12个高速收发器。每个GTX收发器通道包含一个CPLL,内部通道时钟架构如下图所示。TX和RX时钟分频器可以分别选择来自QPLL或CPLL的时钟,从而允许TX和RX数据路径使用不同的参考时钟输入以异步频率工作。
TX和RX时钟分频器模块控制PMA和PCS模块使用的串行和并行时钟的产生。如果TX和RX数据路径以相同VCO频率的整数倍线路速率工作,则它们可以共享CPLL。CPLL结果如下图所示:
锁相环锁定时需要满足Fclkout/N1/N2 = Fclkin/M,得到Fclkout = ((N1*N2)/M)*Fclkin,分频系数为(N1*N2)/M。
常见通信协议的CPLL参考时钟频率如下所示:
- 初始化和复位
GTX收发器必须在FPGA设备上电和配置后初始化才能使用。GTX发送端(TX)和接收端(RX)可以独立初始化,也可以并行初始化。GTX收发器TX和RX初始化包括两个步骤:
- 初始化驱动TX/RX的关联锁相环
- 初始化TX和RX数据路径(PMA + PCS)
GTX收发器TX和RX可以从QPLL或CPLL接收时钟。在初始化TX和RX之前,必须先初始化TX和RX使用的关联PLL(QPLL/CPLL)。TX和RX使用的任何锁相环都是单独复位的,其复位操作完全独立于所有TX和RX复位。只有当关联的锁相环被锁定后,才能初始化TX和RX数据路径。
GTX的TX复位只能使用顺序复位模式(Sequential mode )。
GTX的RX复位可以使用两种复位模式:
Sequential mode :顺序复位。随复位状态机(initialization 或 component)顺序复位各个部分。
Single mode :单独复位。仅复位单个部分(PMA、PCS、内部功能块)。
复位完成由信号(TX/RX)RESETDONE表示,由低到高。复位模式对CPLL和QPLL没有任何影响。GTX也可以被软件进行弹性复位设置,不管是哪种模式。
使用GTRESETSEL来选择复位模式,RESETOVRD必须驱动为低电平。
必须通过CPLLPD端口将CPLL下电,直到在fabric中检测到参考时钟边。CPLLPD释放后,需要复位CPLL才能使用。每个GTX收发通道有3个专用端口用于CPLL复位。如图所示,CPLLRESET是复位CPLL的输入。CPLLLOCK是复位过程完成的输出。这个异步CPLLRESET脉冲宽度的准则是参考时钟的一个周期。由内部GTX/GTH收发电路产生的实际CPLL复位比CPLLRESET高脉冲持续时间长得多。CPLL锁定所需的时间受带宽设置和时钟频率等因素的影响。
QPLL复位与CPLL类似,不再过多阐述。
GTX收发器TX使用复位状态机控制复位过程。GTX收发器TX分为两个复位区域,TX PMA和TX PCS。该分区只允许按顺序进行TX初始化和复位操作,如图所示。初始化TX必须在顺序模式下使用GTTXRESET。激活GTTXRESET输入可以自动触发一个完整的异步TX重置。
GTX收发器RX使用复位状态机控制复位过程。由于其复杂性,GTX收发器RX被划分为比GTX收发器TX更多的复位区域,该分区允许RX初始化和复位以顺序模式或单模式进行,如图所示:
要初始化GTX收发器RX,必须在顺序模式下使用GTRXRESET。激活GTRXRESET输入可以自动触发一个完整的异步RX复位。复位状态机执行的复位顺序如图所示,覆盖整个RX PMA和RX PCS。在正常操作期间,顺序模式还允许用户通过激活RXPMARESET、RXDFELPMRESET、EYESCANRESET、RXPCSRESET和RXBUFRESET中的任何复位来启动复位,并继续复位状态机,直到RXRESETDONE从高到低。
当GTX收发器RX处于单模式时,复位序列中的RXPMARESET、RXDFELPMRESET、EYESCANRESET、RXPCSRESET和RXBUFRESET可以单独独立执行,而不会触发其他复位区域的复位。
标签:TX,复位,RX,收发器,高速,GTX,时钟 From: https://blog.csdn.net/qq_69315815/article/details/140874958