XILINX GT简介ultrascale系列FPGA

XilinxGT,全称为Gigabit Transceiver,是一种高速串行收发器,广泛应用于各种高速数据通信接口中。GT收发器集成在XilinxFPGA芯片内部,支持的线路速率可以达到Gbps级别。在不同的Xilinx FPGA系列中,GT有不同的型号,例如7系列中的GTPGTXGTHGTZ,以及UltraScale系列中的GTYGTMFigure1-1即为1quad GT的拓扑结构,其中1quad中含有4GT TX/RX channel。特殊的时钟资源包括CPLLQPLL0/1CPLL为每对TX/RX共有的时钟资源,称为channel PLL;QPLL性能更强,频率更高更稳定,为一个QUAD中所有的channel共有,即QUAD PLLFigure1-2GTYE3/4具体一对TX/RX  channel的细节拓扑。每个GT channel由发射接口Transmitter、接收接口Receiver以及通道PLL组成。FPGA发送端口将数据发送出来后先经过PCS(Physical Coding Sublayer,物理编码子层)—>PMA(Physical Media Attachment,物理媒介适配层),FPGA接收端口的接收顺序则为PMA—>PCS。其中PMA子层包含高速串并转换(Serdes)、预/后加重、接收均衡、时钟发生器及时钟恢复等电路。PCS子层包含8B/10B编解码、缓冲区、通道绑定和时钟修正等电路。下面将对GT资源的TX与RX结构与功能分别做详细描述。

TX

每个GT收发器都包括一个独立的发射器Transceivers,它由PCS(Physical Coding Sublayer,物理编码子层)和PMA(Physical Media Attachment,物理媒介适配层)组成。Figure3-1显示了发射器TX的功能模块。并行数据从FPGA逻辑流入TX接口,经过PCS和PMA,然后通过TX驱动器作为高速串行数据输出。

TXUSRCLK/TXUSRCLK2

发送数据接口是TXDATA,采样时钟是TXUSRCLK,在TXUSRCLK的上升沿对TXDATA进行采样。TXUSRCLK的速率由线速率、TX Interface接口位宽和8B/10B是否使能决定(TXUSRCLK频率= 线速率/  TX_DATA_WIDTH ;比如线速率是10Gb/s,TX_DATA_WHDTH等于80,那么TXUSRCLK的频率是125MHz)。TXDATA的位宽可以配置成16/20/32/40/64/80位宽,通过TX_DATA_WIDTH 、TX_INT_DATAWIDTH、TX8B10BEN三个属性设置可以配置成不同的位宽,GTY的TX Interface分成内部数据位宽和FPGA接口位宽,其中内部数据归属于TXUSRCLK时钟域,FPGA接口数据归属于TXUSRCLK2时钟域,而内部数据位宽支持2byte/4byte,FPGA接口数据位宽支持2byte/4byte/8byte,这决定了TXUSRCLK和TXUSRCLK2有一定的时钟倍数关系,其中TX_INT_DATAWIDTH属性设置为“0”,表示内部数据位宽为2byte,如果设置为“1”,则表示内部数据位宽为4byte。具体属性如Table3-3所示:

TXUSRLK和TXUSRCLK2时钟是相关联的,在时钟这两个时钟时应该遵循下面两个准则:

1.      TXUSRCLK和TXUSRCLK2必须是上升沿对齐的,偏差越小越好,因此应该使用BUFGs或者BUFRs来驱动这两个时钟。

2.      即使TXUSRCLK、TXUSRCLK2和GTY的参考时钟运行在不同的时钟频率,必须保证三者必须使用同源时钟。

Figure3-14是TX时钟域实例。

TX clock Divider

TX时钟结构:为了能够更好的理解GTY的发送端如何工作,理解发送端的时钟结构很有必要,Figure3-30为TX端的时钟分频拓扑,包括串行时钟分频控制以及并行时钟分频和选择器控制:

MGTREFCLK是GTY的差分输入参考时钟,经过一个IBUFDS_GTE3/4原语之后进入GTY,用以驱动CPLL或QPLL。对于TX PMA来说,主要实现的功能是并串转换,其并串转换的时钟可以由CPLL提供,也可以由QPLL提供,由TXSYSCLKSEL选择,TX PMA子层有三个时钟分频器,作用是产生并行数据的驱动时钟,其中D分频器主要用于将PLL的输出分频,以支持更低的线速率。

÷2/÷4这个选项由TX_INT_DATAWIDTH决定,如果TX_INT_DATAWIDTH为“0”,则选择÷2,反之选择÷4。

对于÷4/÷5,则由TX_DATA_WIDTH决定,如果是位宽是16/32/64,则选择÷4,如果位宽是20/40/80,则选择÷5。

对于TXUSRCLK和TXUSRCLK2由谁驱动呢,官方推荐使用TXOUTCLK驱动,这样做能精简设计,稳定高效。

TX 8B/10B Encoder

TX 8B/10B Encoder:8B/10B是一种行业标准的编码方案,它为了实现直流平衡和有限的码位距差,以便进行合理的时钟恢复,而牺牲每个字节2bit的开销。GTY收发器拥有一个内置的8B/10B TX路径,可以在不消耗设备资源的情况下对TX数据进行编码。启用8B/10B编码器会增加通过TX路径的延迟。如果不必要,可以禁用或绕过8B/10B编码器以最小化延迟。

TX Buffer

TX Buffer:了解发送的TXBuffer的作用,首先得搞清楚TX发送端的时钟域,TX发送端的时钟域如Figure3-18所示

Phase Adjust FIFO就是TXBuffer,FIFO具有隔离时钟域的功能,从图中可以知道,TX Buffer连接着两个不同的时钟域XCLK和TXUSRCLK,在发送端的PCS子层内部包含两个时钟域,XCLK(PMA并行时钟域)TXUSRCLK时钟域,为了数据发送的稳定,XCLK和TXUSRCLK必须是速率匹配,相位差可以消除的,TX Buffer主要用于匹配两时钟域的速率和消除两时钟域之间的相位差。TX Buffer也可以被旁路,TX发送端提供了一个相位对齐电路,可以解决XCLK和TXUSRCLK时钟域之间的相位差,但是TX_XCLK_SEL需设置为“TXUSR”来保持XCLK时钟域和TXUSRCLK保持同频。

TX Pattern Generator

TX Pattern Generator:GTY拥有伪随机数列产生电路Pseudo-random bit sequences (PRBS),伪随机序列是看似随机,实则有规律的周期性二进制数列,有良好的随机性和接近白噪声的相关函数,伪随机序列可以用来做误码率测量、时延测量、噪声发生器、通信加密和扩频通信等领域,在GTY中可以用来测试高速链路的信号完整性,Figure3-29是GTY的PRBS生成电路。

TX Synchronous/Asynchronous Gearbox

Xilinx GT收发器中的gearbox是一个重要的组件,它主要用于协议支持和数据速率转换。具体来说,gearbox的作用包括:

  1. 支持不同的编码方案,如64B/66B和64B/67B,这些编码方案可以在减少8B/10B编码的开销的同时,保留编码方案的优势 。
  2. Gearbox可以结合header和payload,适应不同的数据传输需求;支持不同宽度的接口定义 。

gearbox组件能够在Xilinx GT收发器中实现高效的数据传输和协议兼容性,满足高速数据通信的多样化需求。

TX Phase Interpolator PPM Controller

TX相位插值器部分每百万分之一(TXPIPPM)控制模块提供了动态控制TX相位插值器(TX PI)的支持。它位于TX PCS中,其输入来自TX接口,输出到TX PMA。有些应用需要对TX PMA中的数据进行微调控制。通过对TX PI的控制,可以实现对PLL输出时钟的控制,而TX PI又可以被TX相位插值器PPM控制器模块控制。互连逻辑可以通过PCS中的TX相位插值器PPM控制器模块控制TX PMA中的TX PI。TX相位插值器PPM控制器模块仅支持高达16.375 Gb/s的线路速率。可以通过简单的状态机设计,就可以实现GT口TX通道间的相位对齐。

实现高速收发器TX通道间相位对齐的方法 (xilinx.com)

RX

GTY RX接收端的结构和TX发送端类似,数据流方向相反,每个GTY收发器都包括一个独立的接收机,由PCS(Physical Coding Sublayer,物理编码子层)和PMA(Physical Media Attachment,物理媒介适配层)组成。Figure 4-1显示了GTY收发器RX的模块。高速串行数据从板上的走线流入GTY收发器RX的PMA,进入PCS,最后流入互连逻辑。Ug578对RX模拟前端AFE有一些细节描述,这里不涉及,此外通道时钟架构的描述,该架构为RX和TX时钟分频器提供时钟,Figure2-11。

 

RX Equalizer (DFE and LPM)

串行链路的误比特率(BER)性能是发射机、传输介质和接收机的函数。传输介质或信道是带宽受限的,通过它的信号会受到衰减和失真。

根据系统级在功率和性能之间的权衡,GTY接收机有两种可用的自适应滤波器。针对功率优化并降低信道损耗,GTY接收机拥有一种名为低功耗模式(LPM)的能效自适应模式。为了均衡损耗更大的信道,可用DFE(决策前向均衡器)模式。

DFE通过比使用线性均衡器时更精细地调整滤波器参数,允许更好地补偿传输信道的损耗。然而,DFE不能移除传输比特的前置波峰;它只补偿后置波峰。线性均衡器允许前置波峰和后置波峰的增益。GTY RX DFE模式是一个离散时间自适应高通滤波器。DFE的TAP值是此滤波器的系数,由自适应算法设置。

RX CDR (clock data recovery)

每个GTYE3/4_CHANNEL收发器中的RX时钟数据恢复(CDR)电路从传入的数据流中提取恢复的时钟和数据。Figure 4-14展示了CDR块的架构。为了清晰起见,时钟路径用虚线表示。GTYE3/4_CHANNEL收发器采用相位旋转器CDR架构。传入的数据首先经过接收均衡阶段。均衡后的数据被边沿和数据采样器捕获。数据采样器捕获的数据被送入CDR状态机和下游收发器模块。

CDR状态机使用来自边沿和数据采样器的数据来确定传入数据流的相位,并控制相位插值器(phase interpolators ,PIs)。边沿采样器的相位被锁定在数据流的转换区域,而数据采样器的相位则定位在数据眼图的中间位置。其中CPLL或者QPLL为相位内插器提供基础时钟,使CDR状态机能很好进行相位控制。

RX Fabric Clock Output Control

RX接收端的时钟结构和TX发送端的很类似,Figure 4-16红色方框的CDR部分是和TX端最大的区别。 和TX发送端一样,RX接收端的时钟结构也主要分为串行时钟分频器和并行时钟分频器,D分频器是串行时钟分频器,用于降低PLL时钟速率以支持较低的线速率,后面的并时钟分频器主要根据设置的位宽和是否使用8b/10b生成不同的并行数据时钟。

RX Pattern Checker

GTY包含一个内嵌的PRBS检查器,如Figure 4-21所示,有四种不同的伪随机序列生成器可以选择,检查器是自同步的,且工作在边界对齐和解码之前,这个功能可以用来测试通道信号的完整性。

RX Byte and Word Alignment

串行数据在使用前必须与符号边界对齐,以便作为并行数据使用。为了使对齐成为可能,发射机发送一个可识别的序列,通常称为“comma”。接收机在传入数据中搜索comma。当它找到一个comma时,它会将comma移动到字节边界,以便接收到的并行words与传输的并行words相匹配,此处的words可以理解为一帧数据,comma的作用是将一帧帧的数据进行对齐。

Figure 4-22显示了对10位comma的对齐。右侧是接收到的未对齐的位。中间突出显示的是带有comma的串行数据。左侧是字节对齐的RX并行数据。

RX 8B/10B Decoder

如果发送端发送的数据是8B/10B编码的,那么在接收端就需要8B/10B解码,否则的话可以旁路,TX/RX 编码方式匹配。

RX Elastic Buffer

GTY收发器的RX数据路径在PCS中有两个内部并行时钟域:PMA并行时钟域(XCLK)和RXUSRCLK域。为了接收数据,PMA并行速率必须足够接近RXUSRCLK速率,并且必须解决两个域之间的所有相位差。RX Elastic Buffer是一个重要的功能,和TX接收端缓冲相比,RX多出了一个“弹性”属性,意味着和TX发送端相比,RX弹性缓冲器有更多的功能(RX时钟纠正和RX通道绑定)。

    从Figure 4-40可以知道,RX接收端PCS子层主要有两个时钟域,分别是XCLK和RXUSRCLK时钟域,RX弹性缓冲器功能主要用来匹配两个时钟相位差。如果旁路掉这个RX弹性缓冲器,那么为了保证数据的稳定接收,需要满足一定的条件,首先需要一个相位对齐电路处理SIPO电路时钟和XCLK时钟的相位差,其次XCLK需要配置成RXUSRCLK时钟,保证XCLK和RXUSRCLK同一个时钟域,不存在相位差。

RX Clock Correction

RX弹性缓冲器的“弹性”反映在可以通过时钟纠正来调整XCLK和RXUSRCLK的频率差。对于RX接收端来说,即便XCLK和RXUSRCLK运行在同一个时钟频率,但往往存在一定的相位差异,这种差异很容易导致RX弹性缓冲器写满或者读空,时钟纠正功能应运而生。

    通俗的讲,在TX发送端的时候,我们会定期的发送K码用于保证接收端边界对齐,在RX弹性缓冲器里面数据不足的时候,接收到的K码数据将被复制写入RX弹性缓冲器,以保持RX弹性缓冲器处于半满。当RX弹性缓冲器数据过多的时候,接收到的K码数据将被舍弃不写入RX弹性缓冲器,以保持RX弹性缓冲器处于半满。

RX Channel Bonding

通道绑定功能同样体现RX弹性缓冲器的“弹性”之处,对于像PCIE和SRIO等协议,可以支持多lane传输来提高传输总带宽。因为传输信道的原因,TX发送端同一时刻发送的数据在RX接收端不能被所有的lane同一时刻接收,每一个lane接收存在时间差,那么在恢复数据的时候就要重新对齐,因此需要在RX接收端执行通道绑定功能。

       为了实现这个功能,TX发送端在发送的数据流中加入一个同样的通道绑定序列,子啊RX接收端根据每一个lane检测到的通道绑定序列在各自的RX弹性缓冲器做相应的调整和延迟,最终使得各个lane的数据不存在偏移,在FPGA RX Interface的输出能和TX发送端发送的数据一样。

FPGA RX Interface

用户通过FPGA RX Interface接收数据,和TX发送端相似,在RXUSRCLK2的上升沿接收数据(TX发送端是在TXUSRCLK2上升沿发送数据),该用户端口可以设置成16/20/32/40/64/80bit位宽,RXUSRCLK2的速率由RX线速率、RXDATA位宽和8B/10B是否使能决定,具体端口定义和TX相似。

如有错误之处,敬请批评指正,欢迎一起讨论,共同进步。

  • 34
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值