在更新这篇短文博客之前,先总结几个概念上的理解:
QUAD
例如,一个QUAD包含了4个GT transceiver channel,其实就是包含了4个transceiver。
这些概念声明,看似多余,其实不然,有助于我们理解纷繁的叫法,避免产生疑惑!疑惑就会影响我们进一步理解其他相关内容。
还有上面我所说的GT Transceiver是指GTX/GTH Transceiver,我只是懒着打太多字了,后面我还会直接叫transceiver,其实都是一个意思。
上文:https://reborn.blog.csdn.net/article/details/120662183
关于GT Transceiver的总体架构介绍中,我们提到了transceiver由两部分构成,一部分是PCS,一部分是PMA,这两者我们暂时不按部就班的详细解释,我们暂时就理解PCS是transceiver的协议部分,较软核的东西,PMA是更偏硬核的东西。
等我们理解的够多了,在正式讲它们。
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。
如下参考时钟示意图:
如果transceiver内部使用QPLL,这时候外部参考时钟就要接入QPLL,如上示意图就是这样接入的。
其结构示意图如下:
总结来说,每个QUAD中的GT Transceiver通道有6个可用的参考时钟输入:
GT Transceiver通道的参考时钟首先来自于上面所说的6个可用时钟来源,之后,这些参考时钟进入QPLL或者CPLL,下面分别介绍:
这是一个多路选择器结构,时钟的来源是刚才说的6个可用的时钟来源,多了一个GTGREFCLK,这个时钟是由内部 fpga 逻辑产生的参考时钟。这个输入只用于内部测试。
QPLLREFCLKSEL是多路选择器的选择信号,选择哪一路输入作为QPLL的输入来源。
同QPLL。
关于二者的端口以及属性,见UG476的37页,这种微观的内容不是本文的重点。
每个QUAD都有两个专用的差分参考时钟输入,可以连接外部时钟源。必须例化IBUFDS_GTE2原语才能使用这些专用的参考时钟引脚对。
用户设计将IBUFDS_GTE2输出(O)连接到GTXE2_COMMON/GTHE2_COMMON(包含QPLL)或者GTXE2_CHANNEL/GTHE2_CHANNEL(包含CPLL)原语的GTREFCLK0或GTREFCLK1,参考时钟选择多路复用器就位于该端口。
根据线速率需求,用户设计可以灵活使用QPLL或者CPLL的不同组合来驱动TX以及RX数据路径。
如下参考时钟使用详情:
示例- END -