我从之前就关注一个工程师分享有关于FPGA的资料,陆陆续续也记录收藏了不少,这次分享给大家共同学习和进步吧
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
引言:本节我们介绍FPGA收发器RX以下相关内容:
RX字节和字对齐
RX弹性缓冲器
1.RX字节和字对齐
1.1功能描述
输入到FPGA收发器的串行数据在解串(串并转换)之前必须进行符号边界对齐。为了保证数据对齐,发送器发送一个通常称为comma码(K码)的字符,接收器在输入的数据里查找comma码。当发下comma码后,则将comma移动到字符边界,这样使得接收到的并行数据匹配发送的并行数据。
图1显示了10bit comma对齐过程。RX接收到没有对齐的数据在图中右侧。图中虚线为查找到的comma码,标志查找到字节边界,图中左侧comma之后每10bit自动划分为一个字,自此完成数据字对齐。
图1、10bit comma对齐过程
图2显示左侧显示了TX发送并行数据,右侧显示了RX在comma对齐后识别到了正确的并行数据。
图2、并行数据comma对齐
1.2使能Comma对齐
将RXCOMMADETEN端口设置为高,使能Comma对齐模块,旁路该模块会减少路径延迟。
1.3配置Comma参数
为了设置comma参数,需要配置ALIGN_MCOMMA_VALUE,ALGN_PCOMMA_VALUE和ALIGN_COMMA_ENABLE属性。comma的长度和RX_DATA_WIDTH有关。图3显示了comma匹配掩码模式
图3、comma匹配掩码模式
图4、GTX IP核comma配置
扩展的comma匹配掩码模式与之类似。
1.4 comma状态指示
当MCOMMA或者PCOMMA对齐被激活后,任何匹配的comma模式与最近的边界重新对齐。comma对齐后,RXBYTEISALIGNED信号置为高。此时可以将RXENMCOMMAALIGN和RXENPCOMMAALIGN置为0,关闭comma对齐功能,使comma对齐模块保持当前对齐位置。
当RXBYTEISALIGNED置为高时,表明已经检测到comma与字节边界对齐。若后续到达的comma都可以对齐,则RXBYTEISALIGNED继续为高,否则RXBYTEISALIGNED为低。
1.5 comma对齐边界设定
ALIGN_COMMA_WORD属性用于定义对齐边界。边界空白区域长度由RX_DATA_WIDTH属性决定,边界位置的数量由RX用户接口RXDATA的字节数决定。图5显示了可选择的字节边界。
图5、可选择的字节边界
1.6 comma 手动对齐
通过RXSLIDE信号可以设置手动comma对齐。手动comma对齐时,RXENMCOMMAALIGN和RXENPCOMMAALIGN信号输入为0。RXSLIDE信号每次置高一个RXUSRCLK2时钟周期,并行数据向左移动一位。图6为手动comma码对齐时序图。
图6、手动comma码对齐时序图
图7显示了配置GTX/GTH IP核该接口配置选项。
图7、GTX/GTH IP核手动comma对齐配置接口
2.RX 弹性Buffer
2.1 功能概述
GTX/GTH收发器内部包括两个内部并行时钟域:PMA并行时钟域XCLK和RXUSRCLK时钟域。为了正确接收数据,PMA并行速率必须匹配RXUSRCLK时钟速率,并且解决跨时钟域问题。图8显示了XCLK和RXUSRCLK时钟域。
图8、XCLK和RXUSRCLK时钟域
GTX/GTH收发器提供了RX弹性缓冲器和RX相位对齐电路两种方法解决跨时钟域问题。这两种方法的特性对比如图9所示。
图9、RX弹性缓冲器和RX相位对齐电路比较
2.2 RX Buffer旁路功能
旁路RX弹性缓冲区是7系列GTX/GTH收发器的高级特性。RX相位对齐电路用来调整SIPO并行时钟和XCLK时钟域相位差异,以保证数据从SIPO可靠的传输到PCS组件。它也通过RXUSRCLK来调整RX延迟,以补偿由于温度或者电压变化引起的延迟。RX相位延迟和对齐可以通过GTX/GTH收发器自动调整或者手动调整。图10显示了XCLK和RXUSRCLK时钟域。
图10、使用RX相位对齐
RX弹性缓冲器可以旁路,以减少数据路径延迟。旁路以后时钟校准和通道绑定将不可用。当RX Buffer旁路后,RXSLIDE_MODE设置为AUTO或者PMA,RXOUTCLK必须来自SIPO恢复时钟,RXUSRCLK必须来自RXOUTCLK。
文章评论(0条评论)
登录后参与讨论