GTX
GTX是FPGA带的高速SerDes资源,下面是基于我自己对GTX的使用整理的笔记,当然在使用GTX的时候最好还是先自己看一看手册ug476。一开始看手册还是很困难的,写这份笔记的目的就是能够更好的看动手册,顺便也记录下一些疑惑。
总的来说整个GTX可以分成三部分:参考时钟、RX和TX组成,其结构可以如下图所示,这个结构可以把它称之为物理层,包含了串并转换、CDR、极性检测、数据缓冲等等功能,下面就对每个部分进行分别介绍。

GTX时钟资源
GTX中串并转换和CDR部分需要一个参考时钟,这个参考时钟就是用时钟资源部分产生的,时钟资源包含了输入buffer、CPLL和QPLL组成。
输入级不用多说,通过专用的buffer进行差分转单端,调用原语IBUFDS_GTE2就可以了,结构也比较简单,如下图所示。

通过差分转单端的转换之后,时钟就可以送到CPLL或者QPLL去使用了,Xilinx在这里留了一个很好的功能,时钟的来源由很多种,如下面两幅图所示,对于相邻的bank来说,他们的时钟资源是共用的,也就是说在脑残了的时候“北面”的bank和“南面”的bank的时钟还可以拿来使用(这里的南北需要去UG472里面找),除此之外内部逻辑的产生的时钟也可以拿给GTX的时钟输入用,这需要修改原语,不过之前做过实验,对于FELIX系统来说,用内部逻辑产生的时钟质量不行,误码极多。

下面就该到两个并行的部分CPLL和QPLL了,他们分别是Channel PLL和Quad PLL,一个GTX有4对收发器,每对收发器有一个CPLL资源,而一个bank只有一个QPLL资源,在性能上来说QPLL的性能更好,可以跑超过5GHz的时钟。 当使用CPLL的时候,每对收发器可以工作在自己的时钟频率上,当使用QPLL的时候,这个bank所有的参考时钟源都是从一个QPLL来的,在最初设计的时候一定要注意这点!
CPLL和QPLL具体的工作方式和配置就不再赘述,反正用的时候都要参考手册,根据不同的数据率来选择工作频率,其实在使用的时候也就是调个IP Core,不仔细看手册也没有太大的问题。
RX
待写
TX
待写