7 系列 FPGA GTX 时钟架构浅析

主要参考Xilinx 官方提供的ug476

首先看图,明确一下Quad的概念

                                                      7 系列 FPGA GTX 时钟架构浅析_第1张图片 

 Quad(Q):是集成了四个gtx2_channel 和一个gtx2_common  

下图是Q的内部结构

                               7 系列 FPGA GTX 时钟架构浅析_第2张图片

可以看出来一个Q 含有两个IBUFDS_GTE2原语,其中输入可选,可以是MGTREFCLKP/N0,也可以是MGTREFCLKP/N1(此时钟一般为板子上的时钟),原语使用如下:

IBUFDS_GTE2 ibufds_instQ0_CLK1  
    (
        .O               (gtrefclk0),      // gtrefclk1
        .ODIV2           (),
        .CEB             ('b0),
        .I               (MGTREFCLKP0),    //   MGTREFCLKP1                      
        .IB              (MGTREFCLKN0)  //MGTREFCLKN1
    );

这样就能得到参考时钟gtrefclk0分别作为CPLL和QPLL的输入,当然CPLL和QPLL的输入时钟也可以来自其他相邻Q的时钟源。这里通过QPLLREFCLKSEL和CPLLREFCLKSEL进行选取。

              7 系列 FPGA GTX 时钟架构浅析_第3张图片    7 系列 FPGA GTX 时钟架构浅析_第4张图片

           

之后QPLL或者CPLL的时钟输出分别可以供给TX和RX端选用作为输入时钟源,这里涉及到TXOUTCLK和RXOUTCLK,这两个时钟也是可以选择输入源的,可以来自GTXE2_CHANNEL也可以来自GTHE2_COMMON

            7 系列 FPGA GTX 时钟架构浅析_第5张图片7 系列 FPGA GTX 时钟架构浅析_第6张图片

具体的TXOUTCLK的作用如下:

                           7 系列 FPGA GTX 时钟架构浅析_第7张图片

 他是为了产生TXUSRCLK2和TXUSRCLK的,TXUSRCLK用于TX的PSC端,TXUSRCLK2用于FPGA内部数据传输,也就是所谓的USER_CLK.至于具体的时钟关系可以参考ug476.(笔者能力有限,错误的地方望理解)

    

 

 

你可能感兴趣的:(fpga,gtx)