Spartan-6的I/O时钟缓冲器

I/O 时钟缓冲器

除了全局时钟缓冲器外,Spartan-6还包含驱动高速I/O时钟区域的时钟缓冲器。
I/O 时钟缓冲器的原语如表2-9所示。

Spartan-6的I/O时钟缓冲器

表2-9 I/O时钟缓冲器的原语

(1) BUFIO2。

BUFIO2接收来自GCLK时钟输入,产生两个时钟输出和一个驱动IOSERDES2的选通脉冲,如图2-9所示。

(2) BUFIO2_2CLK。

BUFIO2_2CLK和BUFIO2功能几乎相同,不同的是BUFIO2_2CLK的输入为两个单端时钟或者一对差分时钟(IBUFDS_DIFF_OUT 的输出),如图2-10所示。

Spartan-6的I/O时钟缓冲器

图2-9 BUFIO2的原语

Spartan-6的I/O时钟缓冲器

图2-10 BUFIO2_2CLK的原语

(3) BUFIO_2FB。

BUFIO2FB 是一个单输入单输出的缓冲器,有一个输出属性控制输出延时,如图2-11所示。当属性DIVIDE_BYPASS 设置为TRUE时,BUFIO_2FB等同于BUFIO2旁路延时;
当属性DIVIDE_BYPASS设置为FALSE时,BUFIO_2FB的延时与BUFIO2 的DIVCLK输出类似,保持BUFIO2的输出和BUFIO_2FB相位对齐。

Spartan-6的I/O时钟缓冲器

图2-11 BUFIO_2FB的原语

BUFIO_2FB缓冲器为CMT(PLL或DCM)参考输入CLKIN和反馈输入CLKFB的时钟布线延时提供了一个很好的解决方法。当使用CMT的反馈路径时,ISE会自动插入BUFIO_2FB和BUFIO2缓冲器,如图2-12所示。

Spartan-6的I/O时钟缓冲器

图2-12 BUFIO_2FB 缓冲器与时钟布线延时匹配

(4) BUFPLL。

图2-13所示为BUFPLL的原语,主要用来驱动高速I/O,为ISERDES2和OSERDES2提供时钟。
它会将PLL的LOCK输出与GCLK、SERDES选通和PLL时钟对齐。其中的IOCLK仅仅是将输入时钟通过了一级缓冲的版本。LOCK输出信号其实与PLL的LOCKED信号具有相同的功能,它们的区别在于,在PLL 锁定、BUFPLL对齐SERDES选通信号之前,LOCK不会变高。

Spartan-6的I/O时钟缓冲器

图2-13 BUFPLL的原语

Spartan-6器件每个BANK有两个BUFPLL,专用于PLL,不建议将其用作逻辑时钟。

(5) BUFPLL_MCB。

BUFPLL_MCB专用于Spartan-6内集成的存储器控制器。

时钟网络

Spartan-6的时钟布线网络包括由BUFGMUX驱动的全局时钟网络和由I/O时钟缓冲器(BUFIO2)、PLL时钟缓冲器(BUFPLL)驱动的I/O区域时钟网络。

(1) 全局时钟网络。

Spartan-6的全局时钟网络由16个位于芯片*的BUFGMUX驱动。BUFGMUX的输入信号有以下3种。

顶部和底部BANK的时钟输入。左边和右边BANK的时钟输入。FPGA内部互联和/或PLL/DCM。

这3种资源通过芯片*的切换模块切换。

每个BUFGMUX输出驱动一个垂直方向的时钟脊线,沿着这个方向,水平跨接行时钟HCLK。

HCLK的输入有两种,通过专用的多路选择器切换。

BUFGMUX的输出。PLL或者DCM的输出,每个HCLK对应一个PLL或者两个DCM。

由于Spartan-6中有32个全局时钟输入引脚和16个全局输入缓冲器,所以有可能两个时钟输入引脚驱动一个全局时钟。当通过全局时钟引脚(IBUFG或IFUFGDS)直接驱动全局时钟缓冲器(BUFG或BUFGMUX)时,BANK0、BANK1和BANK5分享8个全局时钟缓冲器,类似地,BANK2、BANK3和BANK4分享8个全局时钟缓冲器,如图2-14所示。

Spartan-6的I/O时钟缓冲器

图2-14 Spartan-6 FPGA全局时钟结构图

为了增加布线的灵活性,当使用第二个BUFIO2时,BUFIO2可用作第二个全局时钟缓冲器。由于系统资源按照主BUFIO2路径优化,因此对于不使用主BUFIO2资源的全局时钟,系统性能会受影响。

(2) I/O区域时钟网络。

如图2-15所示,一个I/O时钟网络能通过BUFPLL被PLL驱动,每个PLL有2个相关缓冲器,扩展到整个I/O BANK。

Spartan-6的I/O时钟缓冲器

图2-15 Spartan-6 FPGA I/O BANK内的I/O时钟结构

每个BANK有两个分离的I/O时钟区域,每半个I/O Bank都有4个高速I/O时钟,由4个专用BUFIO2缓冲器驱动。

I/O时钟输入引脚可以通过BUFIO2扩展到整个BANK,如图2-16所示。使用两个BUFIO2资源,例如BUFIO2_0和BUFIO2_4,将时钟扩展到整个BANK。

Spartan-6的I/O时钟缓冲器

图2-16 I/O BANK内的I/O时钟

当输入延时使能的时候,一个输入引脚不可以驱动两个BUFIO2缓冲器。BUFIO2除了提供输入引脚到I/O时钟网络上,还提供了到PLL/DCM和BUFG的专用时钟路径。

点击打开链接