文章目录
前言
参考xilinx手册ug476
名词介绍:
GTXE2_CHANNEL/GTH2_CHANNEL是例化了1个GTX/GTH Transceiver 通道的原语名;
GTXE2_COMMON/GTHE2_COMMON是礼花了1个QPLL的原语名;
GT Quad是由4个GT Transceiver通道,1个QPLL,2个差分输入时钟对,1个模拟输入引脚组成的集合。7系列的GTX/GTH transceiver 通道的缩写是GTX/GTH transceiver,因此transceiver channel其实就是指的是transceiver。一个QUAD包含了4个GT transceiver channel,其实就是包含了4个transceiver。
一、QUAD结构
每一个transceiver独有的CPLL,4个transceiver共有的一个QPLL,2个外部参考时钟输入对,和REFCLK Distribution(专用参考时钟布线)。这些都是和时钟有关的部分
在QUAD中,GTXE2_CHANNEL/GTHE2_CHANNEL原语以及GTXE2_COMMON/GTHE2_COMMON原语都必须例化,不管使用还是不使用QPLL,GT_COMMON都是要例化的(这是工具自动操作的)。
外部参考时钟输入对 IBUFDS_GTE2就是Transceiver的参考时钟输入端口,记住,1个Quad有2个参考时钟,我们称之为REFCLK0,REFCLK1,具体用哪一个要看板卡设计时到底给的是哪一路,可以再原理图当中看看。
REFCLK Distribution的上下参考时钟引脚分别为南北时钟输入引脚。用于Quad之间共享参考时钟,所以不一定每一个Quad都需要外部参考时钟,有的QUAD可以和其他Quad共享参考时钟,而共享的来源就是南北时钟输入引脚。QUAD的南北参考时钟称为GTSOUTHREFCLK以及GTNORTHREFCLK。
在上图可以看出,TX端使用CPLL,所以参考时钟通过CPLL接到Transceiver的TX端,RX使用的是QPLL,所以通过QPLL接到RX端。
注: CPLL最高只有6.xG, 而QPLL可以超过10G(具体数值要根据器件的速度等级来查询DataSheet) 所以当速率较高时,只能选择QPLL。
二、GT参考时钟
总结来说,每个QUAD中的GT Transceiver通道有6个可用的参考时钟输入:
两个外部参考时钟输入对,GTREFCLK0和GTREFCLK1
来自于QUAD上部的两个参考时钟引脚对,GTSOUTHREFCLK0和GTSOUTHREFCLK1
来自于QUAD下部的两个参考时钟引脚对,GTNORTHREFCLK0和GTNORTHREFCLK1
GT Transceiver通道的参考时钟首先来自于上面所说的6个可用时钟来源,之后,这些参考时钟进入QPLL或者CPLL,下面分别介绍:
QPLL的参考时钟选择详情:
这是一个多路选择器结构,时钟的来源是刚才说的6个可用的时钟来源,多了一个GTGREFCLK,这个时钟是由内部 fpga 逻辑产生的参考时钟。这个输入只用于内部测试。QPLLREFCLKSEL是多路选择器的选择信号,选择哪一路输入作为QPLL的输入来源。
gtwizard_0_common #
(
.WRAPPER_SIM_GTRESET_SPEEDUP(),
.SIM_QPLLREFCLK_SEL (3'b010)
)
common0_i
(
.QPLLREFCLKSEL_IN (3'b010 ),//参考时钟选择
.GTREFCLK0_IN (0 ),
.GTREFCLK1_IN (w_gtrefclk ),
.QPLLLOCK_OUT (w_qplllock ),
.QPLLLOCKDETCLK_IN (i_sysclk ),
.QPLLOUTCLK_OUT (w_qplloutclk ),
.QPLLOUTREFCLK_OUT (w_qplloutrefclk ),
.QPLLREFCLKLOST_OUT (w_qpllrefclklost ),
.QPLLRESET_IN (w_qpllreset )
);
我们在使用的时候可以根据QPLLREFCLKSEL_IN选择参考时钟。
CPLL和QPLL差不多,暂时我还没有用过,不过反正都是从example当中复制粘贴,用起来差不多。
每个QUAD都有两个专用的差分参考时钟输入,可以连接外部时钟源。必须例化IBUFDS_GTE2原语才能使用这些专用的参考时钟引脚对。用户设计将IBUFDS_GTE2输出(O)连接到GTXE2_COMMON/GTHE2_COMMON(包含QPLL)或者GTXE2_CHANNEL/GTHE2_CHANNEL(包含CPLL)原语的GTREFCLK0或GTREFCLK1,参考时钟选择多路复用器就位于该端口。根据线速率需求,用户设计可以灵活使用QPLL或者CPLL的不同组合来驱动TX以及RX数据路径。