Xilinx可编程逻辑器件设计与开发(基础篇)连载21:Spartan - FP
为了更好的控制时钟,Virtex-6器件分成若干个时钟区域,最小器件有6个区域,最大器件有18个区域。每个时钟区域高40个CLB。在时钟设计中,推荐使用片上专用的时钟资源,不推荐使用本地时钟(如逻辑产生的时钟)。
每个Virtex-6的中间列包含了专门配置引脚(CFG),该列的其余区域为CLB。其右边排列着一个CMT列。每个区域(40个CLB高)对应一个CMT。一个CMT包含2个混合模式时钟管理单元(MMCM),还有32个垂直全局时钟树。每个时钟区域的中间方向有一个时钟行(HROW),包含12个水平时钟线,6个BUFR和最多12个BUFH。Virtex-6的时钟资源图如图5-7所示。
每个Virtex-6 FPGA中间列的左右两边各有一个I/O列,分别标号为IOCL和IOCR,I/O列和中间列之间是CLB。
每个区域/BANK的中间有一个水平时钟行(HROW),HROW包含水平时钟线、BUFG和BUFH。内部I/O列包含8个全局时钟引脚对(GC),所有的I/O列包含4个Clock-Capable引脚对(CC),可以连到BUFIO和BUFR。每个BANK的4个CC中的两个可以连到相邻区域的BUFIO上。另外,中间列的BUFR和CC脚可以直接驱动同一个区域的MMCM,或者间接通过垂直全局时钟线驱动BUFG。
Virtex-6器件的片内时钟资源为片内的同步元件提供时钟,片内时钟资源有3种类型,分别是全局时钟资源、区域时钟资源、I/O时钟资源。
图5-7 Virtex-6的时钟资源图
一、 全局时钟资源
全局时钟是一种专用互连网络,它可以降低时钟歪斜、占空比失真和功耗,提高抖动容限。
Virtex-6的全局时钟资源设计了专用时钟缓冲与驱动结构,从而使全局时钟到达CLB、IOB和BRAM的延时最小。
全局时钟资源由以下通路和组件构成。
二、 全局时钟输入
Virtex-6全局时钟输入包含专用的全局时钟输入管脚和全局输入缓冲器。全局时钟输入管脚可以直接连接外部单端或差分时钟;全局输入缓冲器(IBUFG)是FPGA内部与专用全局时钟输入管脚相连的首级全局缓冲器。
Virtex-6器件里有8个全局时钟输入。8个全局时钟输入可以连接到电路板上的8个时钟输入。
时钟输入管脚可以不用作时钟输入引脚,而用作普通I/O。
外部单端或差分时钟通过专用全局时钟输入引脚进入FPGA,在FPGA内部,信号必须接入全局输入缓冲器(IBUFG),否则在布局布线时会报错。
可以在HDL代码中例化全局输入缓冲器。
(1) 全局时钟缓冲器。
每个Virtex-6器件有32个全局时钟缓冲器,时钟信号只有经过BUFG之后才可以驱动全局时钟网络。一个全局时钟输入能直接从差分全局时钟引脚对的P端连接到全局时钟缓冲器的输入。每个差分全局时钟引脚对可以连接到PCB上的一个差分或单端时钟。如果使用单端时钟,则必须使用引脚对的P端,因为只有这一引脚上存在直接连接。必须将一个单端时钟连接到差分全局时钟引脚的正(P)端。如果单端时钟连接到差分引脚对的P端,则不能用其N端作为另一个单端时钟输入。不过,可以将其用作普通I/O。
全局时钟缓冲器的输入源包括以下几种。
全局时钟输入。
内部I/O列的同一区域Clock-Capable时钟输入。
时钟管理单元(CMT)。
其他全局时钟缓冲器的输出(BUFG)。
通用互连。
区域时钟缓冲器(BUFR)。
千兆收发器。
Virtex-6 FPGA的CC输入间接通过MMCM列中的垂直时钟网络驱动BUFG。32个BUFG分成两组,每组16个,分别位于器件的顶部和底部。顶部的MMCM只能驱动顶部的16个BUFG,底部的MMCM只能驱动底部的BUFG。
全局时钟缓冲器还可配置成多路复用器,可以在2个输入时钟之间切换。这两个时钟可以是同步的,也可以是异步的,多路复用器的输出是无毛刺的时钟。
全局时钟缓冲器的多种原语模型如表5-6所示。
表5-6 全局时钟缓冲器的原语
(2) 全局时钟树和时钟网络(GCLK)。
Virtex-6中的全局时钟树和时钟网络,如果未被使用,它就是断开的,这可以降低功耗。另外,时钟树还具有对负载/扇出的管理功能。所有全局时钟线和缓冲器都以差分形式实现,这有助于改善占空比、提高对共模噪声的抑制能力。在Virtex-6架构中,全局时钟线不仅可以用作时钟,还可以当作其他信号线,例如扇出较大的信号。
(3) 时钟区域。
查看评论 回复