Spartan-6的I/O时钟缓冲器
I/O 时钟缓冲器
除了全局时钟缓冲器外,Spartan-6还包含驱动高速I/O时钟区域的时钟缓冲器。
I/O 时钟缓冲器的原语如表2-9所示。
(1) BUFIO2。
BUFIO2接收来自GCLK时钟输入,产生两个时钟输出和一个驱动IOSERDES2的选通脉冲,如图2-9所示。
(2) BUFIO2_2CLK。
BUFIO2_2CLK和BUFIO2功能几乎相同,不同的是BUFIO2_2CLK的输入为两个单端时钟或者一对差分时钟(IBUFDS_DIFF_OUT 的输出),如图2-10所示。
(3) BUFIO_2FB。
BUFIO2FB 是一个单输入单输出的缓冲器,有一个输出属性控制输出延时,如图2-11所示。当属性DIVIDE_BYPASS 设置为TRUE时,BUFIO_2FB等同于BUFIO2旁路延时;
当属性DIVIDE_BYPASS设置为FALSE时,BUFIO_2FB的延时与BUFIO2 的DIVCLK输出类似,保持BUFIO2的输出和BUFIO_2FB相位对齐。
BUFIO_2FB缓冲器为CMT(PLL或DCM)参考输入CLKIN和反馈输入CLKFB的时钟布线延时提供了一个很好的解决方法。当使用CMT的反馈路径时,ISE会自动插入BUFIO_2FB和BUFIO2缓冲器,如图2-12所示。
(4) BUFPLL。
图2-13所示为BUFPLL的原语,主要用来驱动高速I/O,为ISERDES2和OSERDES2提供时钟。
它会将PLL的LOCK输出与GCLK、SERDES选通和PLL时钟对齐。其中的IOCLK仅仅是将输入时钟通过了一级缓冲的版本。LOCK输出信号其实与PLL的LOCKED信号具有相同的功能,它们的区别在于,在PLL 锁定、BUFPLL对齐SERDES选通信号之前,LOCK不会变高。
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种。
这3种资源通过芯片中央的切换模块切换。
每个BUFGMUX输出驱动一个垂直方向的时钟脊线,沿着这个方向,水平跨接行时钟HCLK。
HCLK的输入有两种,通过专用的多路选择器切换。
由于Spartan-6中有32个全局时钟输入引脚和16个全局输入缓冲器,所以有可能两个时钟输入引脚驱动一个全局时钟。当通过全局时钟引脚(IBUFG或IFUFGDS)直接驱动全局时钟缓冲器(BUFG或BUFGMUX)时,BANK0、BANK1和BANK5分享8个全局时钟缓冲器,类似地,BANK2、BANK3和BANK4分享8个全局时钟缓冲器,如图2-14所示。
为了增加布线的灵活性,当使用第二个BUFIO2时,BUFIO2可用作第二个全局时钟缓冲器。由于系统资源按照主BUFIO2路径优化,因此对于不使用主BUFIO2资源的全局时钟,系统性能会受影响。
(2) I/O区域时钟网络。
如图2-15所示,一个I/O时钟网络能通过BUFPLL被PLL驱动,每个PLL有2个相关缓冲器,扩展到整个I/O BANK。
每个BANK有两个分离的I/O时钟区域,每半个I/O Bank都有4个高速I/O时钟,由4个专用BUFIO2缓冲器驱动。
I/O时钟输入引脚可以通过BUFIO2扩展到整个BANK,如图2-16所示。使用两个BUFIO2资源,例如BUFIO2_0和BUFIO2_4,将时钟扩展到整个BANK。
当输入延时使能的时候,一个输入引脚不可以驱动两个BUFIO2缓冲器。BUFIO2除了提供输入引脚到I/O时钟网络上,还提供了到PLL/DCM和BUFG的专用时钟路径。
点击打开链接文章来源: reborn.blog.csdn.net,作者:李锐博恩,版权归原作者所有,如需转载,请联系作者。
原文链接:reborn.blog.csdn.net/article/details/80351440
- 点赞
- 收藏
- 关注作者
评论(0)