7 series FPGA 高速收发器

RX 信号从AFE (模拟前端)进来之后,首先经过RX均衡器,均衡器的主要作用是用于补偿信号在信道传输过程中的高频损失,
因为信道是带宽受限的,所以信号经过它必将造成衰减甚至遭到破坏。

RX接收端的均衡器


首先外部数据进来之后经过均衡器,紧接着均衡器出来的数据就进入时钟恢复电路。GTX使用相位旋转CDR结构,从DFE进来的数据分别被边缘采样器和数据采样器捕获,然后CDR状态机根据两者决定数据流的相位并反馈控制相位内插器,当数据采样器的位置位于眼图中央的时候边缘采样器锁定到数据流的传输域。其中CPLL或者QPLL为相位内插器提供基础时钟,使CDR状态机能很好进行相位控制。

和TX 发送端一样,RX接收端的时钟结构也主要分为串行时钟分频器和并行时钟分频器,D 分频器是串行时钟分频器,用于降低PLL 时钟速率以支持较低的线速率。后面的并时钟分频器主要根据设置的位宽和是否使用8b/10b生成不同的并行数据时钟。

RX Polarity Control : 和TX 发送端一样,RX接收端也拥有极性控制功能,可用于实现数据翻转,在PCB设计时RXP 和RXN接反时使用这个功能。


RX pattern checker : GTX包含一个内嵌的PRBS检查器,有四种不同的伪随机序列生成器可以选择,检查器是自同步的,且工作在边界对齐和解码之前,这个功能可以用来测试信号的完整性。

RX byte and word alignment :串行数据在被并行化之前,比如找到一个合适的特征边界,这个特征边界或者字符边界是由TX发送端发送的一个可识别序列,通常称为标识符(comma)或者K码,接收端在到来的数据中搜索这个标识符,当找到这个标识符之后,后面接收的数据都以这个标识符为边界进行并行化。在串行数据中搜索到COMMA之后,后面的数据都以此为边界对齐数据。

RX 8B/10B decoder :如果发送端发送的数据是8B/10B编码,那么接收端就需要8B/10B解码,否则可以旁路。


RX Elas TIc Buffer :RX 接收端弹性缓冲器是一个重要的功能,和TX缓冲器相比,RX 多出了一个“弹性”属性,意味着和TX发送端相比,RX弹性缓冲器有更多的功能。

RX接收端PCS子层主要有两个时钟域,分别是XCLK和RXUSRCLK时钟域,RX弹性缓冲器功能主要用来匹配两个时钟相位差。


如果旁路掉这个RX 弹性缓冲器,那么为了保证数据的稳定接收,需要满足一定的条件:首先,需要一个相位对齐电路处理SIPO电路时钟和XCLK时钟的相位差;其次XCLK需要配置成RXUSRCLK时钟,保证XCLK和RXUSRCLK同一个时钟域,不存在相位差。

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

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


 

你可能感兴趣的:(高速接口,FPGA)