Xilinx GTH高速收发器顺藤摸瓜篇(一)

目录

1 内容简介

2 GTH收发器结构

2.1 系统框架

2.2 收发器原语结构

2.3 总结归纳

3 共享特性

3.1 参考时钟

3.1.1 输入/输出模式

3.1.1.1 输入模式

3.1.1.2 输出模式

3.1.1.3 总结归纳

3.1.2 参考时钟选择

3.1.2.1 单个外部参考时钟使用模型

3.1.2.2 多个外部参考时钟使用模型

3.1.2.3 总结归纳 

4 结束语


1 内容简介

        本章节主要介绍Xilinx GTH收发器的基本特性和结构,通过结合Xilinx官方手册UG576及个人理解,力求能够使初学者能够对GTH产生初步的认识,不再对此望而却步,万丈高楼平地起,愿与诸君上下求索,共勉励...

2 GTH收发器结构

2.1 系统框架

        如图所示,UltraScale 架构中的 GTH收发器是低功耗的收发器,支持的线速率为500Mb/s到16.375Gb/s。每个收发器都包含一个独立的发射器,该发射器由 PCS 和 PMA 组成。并行数据从用户逻辑流入 TX 接口,通过 PCS 和 PMA,然后作为高速串行数据流出 TX 驱动器。同时都包含一个独立的接收器,由 PCS 和 PMA 组成。高速串行数据从电路板上的走线流入 GTH 收发器 RX 的 PMA,再流入 PCS,最后流入互连逻辑。

2.2 收发器原语结构

        4个 GTHE3/4_CHANNEL原语与1个GTHE3/4_COMMON原语共同组成一个Quad(Q).

        GTHE3/4_COMMON 原语包含两个 LC谐振的PLL(QPLL0 和 QPLL1)。仅当应用中需要使用该PLL时,才需要实例化 GTHE3/4_COMMON。

        GTHE3/4_CHANNEL 原语由一个环路PLL(CPLL)、一个发射器和一个接收器组成。

2.3 总结归纳

        (1)GT结构新提出了Quad的概念,包括4个GTHE3/4_CHANNEL原语和1个GTHE3/4_CHANNEL原语。

3 共享特性

3.1 参考时钟

3.1.1 输入/输出模式

        GTH 收发器中的参考时钟结构支持两种操作模式:输入模式和输出模式。在输入操作模式下,在专用参考时钟 I/O 引脚上提供时钟,用于驱动Quad或channel PLLs。在输出操作模式下,来自于同一Quad内四个通道中任意一个恢复时钟 (RXRECCLKOUT) 可以路由到专用参考时钟 I/O 引脚。 然后,此输出时钟可用作不同位置的参考时钟输入。运行过程中无法改变操作模式。

3.1.1.1 输入模式

        如图展示了参考时钟输入模式结构。参考时钟通过IBUFDS_GTE3/4 软件原语进行实例化。 IBUFDS_GTE3/4 软件原语的端口和属性用来控制参考时钟输入。

        (1)端口(Ports)

        (2)属性(Attributes)

3.1.1.2 输出模式

         参考时钟输出模式可通过两个软件原语之一实现:OBUFDS_GTE3/4_ADV 和 OBUFDS_GTE3/4。原语的选择取决于具体的应用。当 RXRECCLKOUT 始终来自同一通道时,请使用 OBUFDS_GTE3/4。如果提供 RXRECCLKOUT 的通道在运行时可能会发生变化,请使用 OBUFDS_GTE3/4_ADV。使用 OBUFDS_GTE3/4_ADV 原语时,必须实例 GTHE3/4_COMMON 原语。使用 OBUFDS_GTE3/4 原语时,不需要实例化 GTHE3/4_COMMON。

        1、采用OBUFDS_GTE3/4原语的参考时钟输出模式结构如图所示。

        (1)端口(Ports)

        (2)属性(Attributes)

         2、采用 OBUFDS_GTE3/4_ADV 原语的参考时钟输出模式结构如图所示。

        GTHE4_COMMON 上的端口 RXRECCLK0SEL 和 RXRECCLK1SEL 控制多路复用器,该多路复用器从 Quad 中的四个不同通道中选择 RXRECCLKOUT

        (1)端口(Ports)

        (2)属性(Attributes)

3.1.1.3 总结归纳

        (1)外部的差分参考时钟进来后必须通过IBUFDS_GTE3/4原语转为单端提供给内部使用

        (2)参考时钟有输入输出两种模式,区别在于输入模式参考的时钟源来自于外部的专用参考时钟引脚,输出模式下参考时钟通过从Quad中的channel中恢复出来的RXRECCLKOUT路由而来

3.1.2 参考时钟选择

        UltraScale 器件中的 GTH 收发器提供不同的参考时钟输入选项。 

        从架构上看,Quad(Q)包含四个 GTHE3/4_CHANNEL 原语、一个 GTHE3/4_COMMON 原语、两个专用外部参考时钟引脚对和专用参考时钟路由。每个收发器使用中必须实例化 GTHE3/4_CHANNEL 原语。如果需要高性能 QPLL,还必须实例化 GTHE3/4_COMMON 原语。通常,Quad(Q(n))的参考时钟可以通过 GTNORTHREFCLK 从最多下方两个位置的 Quad(Q(n–1) 或 Q(n-2))获取,或通过 GTSOUTHREFCLK 从最多上方两个的 Quad(Q(n+1) 或 Q(n+2))获取。(即当前Quad的参考时钟可以通过南北不超过2个Quad区域的参考时钟路由而来

        参考时钟特性包括:

        (1)南北方向的时钟路由。
        (2)QPLL 或 CPLL 灵活的时钟输入。
        (3)QPLL 或 CPLL 参考时钟静态或动态的选择

        Quad 架构有四个 GTH 收发器、两个专用参考时钟引脚对以及专用的北或南参考时钟路由。Quad 中的每个 GTH 收发器通道都有六个可用的时钟输入:

        (1)两个本地参考时钟引脚对,GTREFCLK0 或 GTREFCLK1

        (2)上方 Quad 的两个参考时钟引脚对,GTSOUTHREFCLK0 或 GTSOUTHREFCLK1         (3)下方 Quad 的两个参考时钟引脚对,GTNORTHREFCLK0 或 GTNORTHREFCLK1

        单个 GTHE3/4_COMMON 原语内的参考时钟多路复用器结构如图所示:

        单个 GTHE3/4_CHANNEL 原语内的参考时钟多路复用器结构如图所示:

        以上参考时钟的选择通过 CPLLREFCLKSEL[2:0]或者QPLLREFCLKSEL[2:0]选择

3.1.2.1 单个外部参考时钟使用模型

        如图所示为多个收发器连接到多个 Quad情况下的单个外部参考时钟。用户设计将 IBUDFS_GTE3 输出连接到 GTH 收发器的 GTHE3/4_COMMON 和 GTHE3/4_CHANNEL 原语的 GTREFCLK0 端口。在这种情况下,Xilinx 实现工具会对南北布线进行必要的调整,并在需要时进行引脚交换,以将参考时钟从一个 Quad 路由到另一个 Quad。

        如下图可知,某个GT专用Bank上的参考时钟可以给相邻南北区域不超过2个Quad间隔的其他Quad使用

        注意:上图中 IBUFDS_GTE3/4 图是一种简化。输出端口 ODIV2 保持浮动,输入端口 CEB 设置为逻辑 0。

        共享参考时钟时必须遵守以下规则,以确保满足高速设计的抖动裕度:

        (1)源 Quad 上方的 Quad 数量不得超过两个。
        (2)源 Quad 下方的 Quad 数量不得超过两个。
        (3)以外部时钟引脚对 (MGTREFCLKN/MGTREFCLKP) 作为源的 Quad 总数不得超过五个 (或者说作为源的收发器不能超过20个)。

        单个时钟引脚对最多可以驱动 20 个收发器。超过 20 个收发器的设计需要使用多个外部时钟引脚,以确保遵循控制抖动的规则。当使用多个时钟引脚时,可以使用外部缓冲器从同一振荡器驱动它们。

3.1.2.2 多个外部参考时钟使用模型

        参考时钟选择架构的灵活性允许 Quad 中的每个收发器访问上下两个 Quad 的专用参考时钟。如下两图显示了属于一个 Quad 的收发器如何使用 GTNORTHREFCLK 和 GTSOUTHREFCLK 端口访问另一个 Quad 的专用参考时钟的示例。在每个 GTH 收发器 PLL 有多个参考时钟选项的情况下,用户设计需要根据设计要求设置 QPLL0/1REFCLKSEL[2:0] 和 CPLLREFCLKSEL[2:0]。

共享参考时钟时必须遵守以下规则,以确保满足高速设计的抖动裕度:

        (1)源 Quad 上方的 Quad 数量不得超过两个。
        (2)源 Quad 下方的 Quad 数量不得超过两个。
        (3)以外部时钟引脚对 (MGTREFCLKN/MGTREFCLKP) 作为源的 Quad 总数不得超过五个 (或者说作为源的收发器不能超过20个)。

        单个时钟引脚对最多可以驱动 20 个收发器。超过 20 个收发器的设计需要使用多个外部时钟引脚,以确保遵循控制抖动的规则。当使用多个时钟引脚时,可以使用外部缓冲器从同一振荡器驱动它们。

        对于需要动态更改参考时钟源的多速率设计,QPLL0/1REFCLKSEL 和 CPLLREFCLKSEL 端口用于动态选择参考时钟源。选择完成后,用户设计负责通过高电平有效 CPLLPD 和 QPLL0/1RESET 端口重置 CPLL 和 QPLL,并执行重置和初始化(第 60 页)中描述的后续初始化过程。

        收发器的时钟输出TXOUTCLK 和 RXOUTCLK 必须使用 BUFG_GT 缓冲器。将时钟输出连接到架构也需要使用 BUFG_GT。如果 IBUFDS 时钟需要连接到架构,也必须通过 BUFG_GT。

        在设备配置时, MGTREFCLK[0/1]P 和 MGTREFCLK[0/1]N 作为输入的 IBUFDS_GTE3/4 的时钟输出只能在以下条件下使用:

        (1)GTPOWERGOOD 信号已置为高电平。
        (2)GTPOWERGOOD 置为高电平后,至少经过 250 µs 的延迟。
        对于 UltraScale+ FPGA,UltraScale FPGA 收发器向导 1.7 版本或更高版本通过延迟 GTPOWERGOOD 信号的输出来自动处理此要求。

3.1.2.3 总结归纳 

        (1)CPLL和QPLL的参考时钟选择是多样的,可以选择本Quad的参考时钟,或者是南北区域不超过两个Quad区域的其他Quad的参考时钟。一般Quad可以对应于原理图上的Bank,该Bank会有两组差分的参考时钟输入,所以既可以选择本Bank的参考时钟,也可以选择相邻南北区域Bank的参考时钟。

        (2)基于时钟抖动裕度(jitter margins)的考虑,南北区域跨越不应超过2,每组参考时钟驱动的Quad数量不应超过5个(或者说驱动的收发器个数不应超过20个)

        (3)收发器输出的时钟TXOUTCLK 和 RXOUTCLK或者经过IBUFDS的时钟想要连接到GT结构上,必须经过BUFG_GT

4 结束语

        本章初步介绍了GTH收发器的基本框架和结构,并介绍了参考时钟的模式和选择。下一期预计会在下周六更新,主要包含CPLL和QPLL以及GT的复位初始化。

        大家如果发现有问题的地方欢迎批评指证,畅所欲言地交流。如果觉得本期内容对您有用,希望获得您的点赞,收藏和关注,感谢^v^。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值