原创 【FPGA】Xilinx 7系列FPGA收发器架构之接收器(RX)(十四)

2023-4-3 16:24 427 5 5 分类: FPGA/CPLD 文集: FPGA

我从之前就关注一个工程师分享有关于FPGA的资料,陆陆续续也记录收藏了不少,这次分享给大家共同学习和进步吧

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

引言:本文介绍GTX/GTH收发器以下内容:

FPGA RX接口

RX时钟校准

RX通道绑定

1.FPGA RX接口

1.1 功能概述

FPGA RX接口是GTX/GTH收发器并行接口,实现收发器并行数据输出到FPGA内部逻辑。FPGA在RXUSRCLK2时钟的上升沿读取RXDATA端口数据,该端口可以配置为2字节、4字节或者8字节。

RXDATA宽度和RX_DATA_WIDTH和RX_INT_DATAWIDTH属性以及RX8B10BEN有关。并行时钟RXUSRCLK2速率由RX线速率、RXDATA宽度以及8B10B编码属性决定。RXUSRCLK时钟提供给PCS内部逻辑使用。

1.2 FPGA RX接口配置

7系列GTX/GTH收发器包含2字节和4字节内部数据路径,通过RX_INT_DATAWIDTH属性配置。RX接口配置如图1所示。

图1、FPGA RX接口配置

当8B/10B解码器旁路时,RXDISPERR和RXCHARISK端口用来扩展RXDATA端口。如图2所示。

图2、8B/10B解码器旁路时RX接收数据格式

1.3 RXUSRCLK和RXUSRCLK2时钟产生

FPGA RX接口包括两个并行时钟:RXUSRCLK和RXUSRCLK2。RXUSRCLK用于收发器PCS内部逻辑资源使用,RXUSRCLK2用于FPGA RX接口所有信号同步时钟。RXUSRCLK时钟产生方程如图3所示。

图3、RXUSRCLK时钟产生

RXUSRCLK和RXUSRCLK2时钟之间关系如图4所示。当线速率(Line Rate)超过6.6Gb/s时,RX内部数据路径必须设置为4字节。

图4、RXUSRCLK和RXUSRCLK2时钟之间关系

RXUSRCLK和RXUSRCLK2时钟使用必须遵循以下规则:

RXUSRCLK和RXUSRCLK2必须是上升沿对齐,尽可能保持较小的时钟偏移。可以使用低偏移资源,如BUFG和BUFRs,驱动RXUSRCLK和RXUSRCLK2。

如果通道发送器和接收器配置为相同的时钟,TXOUTCLK时钟可以按照驱动TXUSRCLK和TXUSRCLK2时钟的方式来驱动RXUSRCLK和RXUSRCLK2。当时钟校准关闭或者RX buffer旁路时,RX相位对齐电路必须用来对齐串行时钟和并行时钟。

如果通道发送器和接收器配置为不同的时钟,并且时钟校准未使用,RXUSRCLK和RXUSRCLK2必须由RXOUTCLK驱动,同时RX相位对齐电路必须使用。

如果时钟校准使用,RXUSRCLK和RXUSRCLK2可以由RXOUTCLK或者TXOUTCLK驱动。

1.4 端口定义

FPGA RX端口如图5所示。

图5、FPGA RX端口定义

2.RX时钟校准

2.1 功能描述

RX弹性缓冲器用来设计桥接RXUSRCLK和XCLK时钟域。理想情况下这两个时钟应该频率和相位相同,实际应用中两者在频率和相位上会存在一定偏移。RX弹性缓冲器可以实现两个时钟域数据稳定传输。RX时钟校准功能通过删除或者复制特定的空闲字符来防止RX弹性缓冲器上溢出或者下溢出。

图6、时钟校准三种应用情况

图6中举例RXUSRCLK和XCLK时钟三种应用场景。正常情况下,读时钟RXUSRCLK和XCLK时钟频率相同,此时RX弹性缓冲器保持半满状态。当读时钟RXUSRCLK快于写时钟XCLK时,为避免出现读空RX弹性缓冲器,需要进行重复读或者空读操作。当读时钟RXUSRCLK慢于写时钟XCLK时,为避免出现RX弹性缓冲器溢出,需要丢弃一些数据。

3.RX 通道绑定

3.1 功能概述

XAUI和PCIe等协议使用多个串行收发器以产生更高的数据速率。由于每个收发器所在的通道延迟可能存在差异,这会导致通道间数据会存在“错位”现象,RX通道绑定功能就解决此问题。

图7、通道绑定概念示意图

通常在收发器TX发送端发送一串特殊字符,称为通道绑定序列。每个收发器接收到特殊字符后,GTX/GTH接收器可以决定每个通道之间的偏移,通过RX弹性缓冲器调整延迟,保证用户接口可以无偏移接收。

文章评论0条评论)

登录后参与讨论
我要评论
0
5
关闭 站长推荐上一条 /2 下一条