马上注册,结交更多好友,享用更多功能,让你轻松玩转社区
您需要 登录 才可以下载或查看,没有账号?立即注册
×
1、参考时钟 GTX的时钟架构如下:
对于QPLL来说,它的时钟来源有3个:
GTXE2_COMMON原语实际上就是对QPLL的再封装,所以它的时钟方案和QPLL是一样的,如下所示:
其中的QPLLREFCLKSEL是对输入时钟进行选取的信号,因为我们的输入时钟一般是固定的,所以这个值一般也不会改变。注意GTGREFCLK端口是指来自FPGA内部逻辑的时钟信号,这个端口只能用作仿真,不能在实际中使用。
CPLL和GTXE2_CHANNEL的时钟结构与QPLL基本一致,只不过CPLL位于高速收发器通道内部,其示意图如下:
在QUAD中,GTXE2_CHANNEL/GTHE2_CHANNEL原语以及GTXE2_COMMON/GTHE2_COMMON原语都必须例化,不管使用还是不使用QPLL,GT_COMMON都是要例化的(这是工具自动操作的)。
2、时钟方案 上文说了,每个Quad都有两个专用的外部差分输入时钟,但这两个时钟不是必须使用的,因为参考时钟还可以是来自北边或者南边的外部输入时钟。根据线速率的要求,每个通道的TX端和RX端的参考时钟都可以是不同的,这无疑提供了最大的灵活性。
2.1、单个外部参考时钟驱动单个QUAD中的多个transceiver 差分输入时钟的一般使用方式如下所示,即采用一个时钟驱动同一Quad内部的4个高速收发器通道以及GTXE2_COMMON,这是最常见的方式了。
2.2、单个外部参考时钟驱动多个QUAD中的多个transceiver 单个外部参考时钟也可以驱动多个QUAD中的多个Transceiver,例如:
这样使用有一定的限制:
2.3、同一个Quad中,多个GTX Transceiver使用多个参考时钟 每个Quad有两个专用的差分时钟输入引脚(MGTREFCLK0[P/N]或 MGTREFCLK1[P/N]) ,可以连接到外部时钟源。在多个外部参考时钟使用模型中, 每个专用的参考时钟引脚对必须例化它们对应IBUFDS_GTE2,以使用这些专用的参考时钟资源。在同一个Quad中,多个GTX Transceiver使用多个参考时钟。如下图所示:
2.4、不同Quad中,多个GTX Transceiver 使用多个参考时钟 上面的Quad位于下面bank的北面,那么下面的bank可以将北面bank的差分时钟通过GTSOUTHREFCLK0、GTSOUTHREFCLK1端口作为自己的QPLL的时钟输入。
同样的道理下面的bank位于上面bank的南面,上面bank可以通过GTNORTHREFCLK0、GTNORTHREFCLK1把下面bank的差分时钟作为自己的QPLL的输入时钟。
注意这里的NORTH和SOUTH不是表示时钟来自NORTH还是SOUTH,而是表示自己Quad所在的位置。举个例子,Quad0、Quad1和Quad2从北到南依次排布,Quad1位于正中,那么从Quad0也就是北边来的时钟就要接到GTSOUTHREFCLK0和GTSOUTHREFCLK1这两个端口,因为Quad1相对于Quad0它处于南边;同样的从Quad2也就是南边来的时钟就要接到GTNORTHREFCLK0和GTNORTHREFCLK1这两个端口,因为Quad1相对于Quad2它处于北边。
3、QPLL和CPLL的工作原理 本质上QPLL和CPLL都是PLL即锁相环,尽管二者有细微差异,但它们的结构是一致的。
每个GTX收发器通道包含一个CPLL,内部通道时钟架构如下图所示。TX和RX时钟分频器可以分别选择来自QPLL或CPLL的时钟,从而允许TX和RX数据路径使用不同的参考时钟输入以异步频率工作。
TX和RX时钟分频器模块控制PMA和PCS模块使用的串行和并行时钟的产生。如果TX和RX数据路径以相同VCO频率的整数倍线路速率工作,则它们可以共享CPLL。
下图是CPLL的内部原理框图,M、N这些参数都可以在原语中设置,进而改变倍频/分频系数,但很多时候都是直接在GT IP中对其他数据、协议参数配置后,自动生成CPLL的时钟,不需要人为配置系数,可以暂时不关心。GTX收发器中的CPLL的额定工作范围在1.6 GHz至 3.3 GHz。
对于分频和倍频系数的计算,主要就是抓住锁相环的负反馈结构,即输出信号频率及phase Frequency Detector的关系,当其两个输入信号的频率相等时,整个回路锁定。
①处的频率为f PLLClkin,③处的频率为f PLLClkout,②处的频率则为f PLLClkout/(N1*N2)。当输入和输出相等时,锁相环通过负反馈处于一个稳定的状态,即有等式:
从上式可知,CPLL的输出频率由输入频率和三个因子共同决定。线速率(line rate (Gb/s))则由以下等式决定,其中的D是个分频因子,2则表示在上升沿和下降沿均有采样到DDR技术。
以Aurora 8B/10B协议为例,它的CPLL设置与输入频率及线速率之间的关系如下:
假设你要求的线速率是3.125Gb/s,那么一个比较参考的输入时钟频率则是156.25MHz,此时N1可以设置为5,N2可以设置为4,M可以设置为1,D可以设置为2(这些都是IP会自动设置的,不需要自己设置),那么CPLL的频率则为:156.25×5×4/1 = 3.125GHz ,线速率则是 3.125G × 2 / 2 = 3.125Gb/s,和预期设置一致。
QPLL的内部结构和CPLL基本一致,有一些细微的差别。GTX收发器中的QPLL的额定工作范围在 5.93 GHz至 12.5 GHz。
依然是用负反馈那一套来分析,有如下等式:
线速率则依然这样计算:
|