我从之前就关注一个工程师分享有关于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条评论)
登录后参与讨论