一.概述
在一中介绍了一些名词的基本概念,然后就是介绍时钟和复位,这篇先结合工程代码介绍一下GT的复位。大家可以参考UG476,GT的复位有两个模式,下面以常用的Sequential mode为例。
二.GT的复位
GTRESETSEL参数表示复位模式,低就是Sequential mode。在FPGA配置后(down bit后),必须超过500ns(coreclk计时)才开始执行txfsm和rxfsm,TX和RX的QPLL/CPLL会进行初始化,待PLL时钟锁定后,在进行GT的收发端复位,最后拉高两个复位done信号。
2.1 TX的复位
下图中GTTXRESET的拉高和拉低是在txfsm中完成的。
txfsm状态机中会产生一个GTTXRESET和TXUSERRDY给到CHANNEL原语的input端口,进行GT的TX复位。(所以对应官方代码中,PLL的初始化是在txfsm中完成的,而GT的初始化是看不到源码的,在CHANNEL完成的)。
1.GTTXRESET的产生
如下图(代码和时序图结合看):txfsm状态机中等待PLL(用的哪一个PLL,具体看CPLL和QPLL的使能)锁定(也就是等待PLLCLK稳定),此时拉高GTTXRESET。还会等待TXOUTCLK稳定(也就是等待TUSERCLK和TUSERCLK2稳定),稳定后拉低GTTXRESET。然后进行GT的TX初始化,GT的TX初始化分为两个部分,TXPMA和TXPCS(在CHANNEL完成的,看不到源码,但是可以看到初始化完成的标志位,TXRESETDONE)。
2. TXUSERRDY的产生
上面讲了GTTXRESET,下面介绍TXUSERRDY的产生。
官方文档:All clocks used by the application including TXUSRCLK/TXUSRCLK2 are shown as stable or locked when the PLL or MMCM is used.即等待TXUSRCLK稳定,拉高TXUSERRDY。对应代码里面也是这么写的。
2.1 RX的复位
RX的复位流程和TX差不多,状态机也是差不多的,只不过GT里面需要复位的东西更多 。完成初始化的标志位是RXRESETDONE。