Xilinx-7Series-FPGA高速收发器使用学习—RX接收端介绍

    上一篇博文介绍了GTX的发送端,这一篇将介绍GTXRX接收端,GTX RX接收端的结构和TX发送端类似,数据流方向相反,不过和发送端也有一些区别,GTXRX接收端结构图如图1所示:

1.jpg

1

    下面将根据数据流方向介绍一下RX接收端各个电路部分的功能。

 

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

       RX接收端的均衡器有两种,分别是LPMDFE,两者功耗和性能有所不同,其中LPM功耗较低,DFE能提供更精确的滤波器参数,从而可以更好的补偿传输信道损失,因此性能更好。


RX CDRRX的时钟数据恢复电路是图1的绿色圆圈部分,因为GTX传输不带随路时钟,因此在接收端必须自己做时钟恢复和数据恢复,时钟数据恢复电路如图2所示:

2.jpg

2

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

 

RX Fabric Clock Output ControlRX接收端的时钟结构和TX发送端的很类似,如图3所示,图中红色方框的CDR部分是和TX端最大的区别。

 

3.jpg

3

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

 

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

 

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

4.jpg

4

 

RX Byte and Word Alignment串行数据在被并行化之前,比如找到一个合适的特征边界,这个特征边界或者字符边界是由TX发送端发送的一个可识别序列,通常称为标识符(comma)或者K码,接收端在到来的数据中搜索这个标识符,当找到这个标识符之后,后面接收的数据都已这个标识符为边界进行并行化,其工作原理如图5所示。

5.jpg

5

    如图5所示,当在串行数据中搜索到comma之后(红色方框),后面的数据都已此为边界对齐数据。

 

RX 8B/10B Decoder如果发送端发送的数据是8B/10B编码的,那么在接收端就需要8B/10B解码,否则的话可以旁路,这一功能在TX发送端介绍时有说明,这里就不再做介绍。

 

RX Elastic BufferRX接收端弹性缓冲器是一个重要的功能,和TX接收端缓冲相比,RX多出了一个“弹性”属性,意味着和TX发送端相比,RX弹性缓冲器有更多的功能(RX时钟纠正和RX通道绑定)。RX弹性缓冲器在RX接收端的位置如图6绿色方框所示。

6.jpg

6

    从图6可以知道,RX接收端PCS子层主要有两个时钟域,分别是XCLKRXUSRCLK时钟域,RX弹性缓冲器功能主要用来匹配两个时钟相位差。

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

 

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

7.jpg

7

 

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

 

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

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

8.jpg

8

 

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

表1.jpg

1

 

    到这里,RX接收端就介绍完毕,下一篇博客将介绍7-Series Transceivers IP如何使用。


    

下一篇:Xilinx-7Series-FPGA高速收发器使用学习—Transceivers IP使用

作者QQ:799536339

欢迎互相交流学习。 


### 7 Series FPGAs Transceivers 的四通道配置与使用方法 #### 四通道配置概述 在 Xilinx7 Series FPGA 中,Transceiver 是一种高性能串行通信模块,支持多种协议速率。对于四通道配置,通常是指将四个独立的 Transceiver 实例组合在一起工作,形成一个多通道数据传输系统[^1]。 这种多通道设计可以显著提高系统的吞吐量,并允许灵活分配带宽资源。具体实现方式可以通过 Vivado 工具中的 `7 Series FPGAs Transceivers Wizard` 来完成,该工具提供了一个图形化界面来简化复杂的设计流程[^2]。 --- #### 使用方法详解 ##### 1. **硬件资源配置** 为了启用四通道配置,需确保目标 FPGA 器件具有足够的 GT 或 GTH 收发器资源。每组收发器通常位于特定区域(称为 Quad),因此建议在同一 Quad 内选择相邻的四个收发器实例以减少布线延迟并优化性能[^3]。 ##### 2. **IP 核生成** 通过 `7 Series FPGAs Transceivers Wizard` 创建一个新的 IP 设计文件: - 打开 Vivado 并导航到 “Create and Package New IP”。 - 设置参数时指定所需的通道数量为 4。 - 调整其他选项,例如波特率、编码方案以及是否启用 LPM/DFE 自适应功能。 完成后会自动生成相应的 RTL 文件及其配套约束脚本。 ##### 3. **时钟管理单元 (Clocking Resources)** 由于每个通道都需要单独的参考时钟输入信号,在实际应用中可能涉及 PLL/MMCM 的设置。推荐做法是利用单一时钟源驱动所有四个通道并通过内部倍频技术满足不同子模块的需求。 以下是典型代码片段用于初始化 MMCM: ```verilog // Verilog 示例:MMCM 初始化部分 module mmcm_init ( input wire clk_in, // 输入时钟 output reg [0:3] clk_out // 输出至各通道 ); always @(posedge clk_in) begin // 这里省略具体逻辑实现细节... end endmodule ``` ##### 4. **数据路径规划** 针对 RX 接收端而言,其主要任务是从物理层提取有效载荷信息并将之传递给后续处理阶段。在此过程中可能会涉及到去偏斜操作(de-skew),CRC 校验等功能块的支持。 另外值得注意的是,当采用多个并发连接形式时还需要考虑帧同步机制以免发生错位现象。 --- #### 参考资料补充说明 上述描述综合了来自官方文档 ug476 pg168 的相关内容,同时也借鉴了一些社区实践经验分享^。如果希望进一步深入理解某些关键技术点,则可查阅更详细的白皮书或者联系技术支持团队获取帮助。 ---
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值