我从之前就关注一个工程师分享有关于FPGA的资料,陆陆续续也记录收藏了不少,这次分享给大家共同学习和进步吧
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
引言:从本文开始,我们陆续介绍Xilinx 7系列FPGA的时钟资源架构,熟练掌握时钟资源对于FPGA硬件设计工程师及软件设计工程师都非常重要。本章概述7系列FPGA时钟,比较了7系列FPGA时钟和前几代FPGA差异,总结7系列FPGA中的时钟连接。有关7系列FPGA时钟资源使用的详细信息,请关注后续文章。
时钟资源架构概述
7系列FPGA与前一代FPGA时钟资源差异
时钟资源连接概述
1.时钟资源架构概述
1.1 时钟资源概述
7系列FPGA时钟资源通过专用的全局和区域I/O和时钟资源管理符合复杂和简单的时钟要求。时钟管理块(CMT)提供时钟频率合成、减少偏移和抖动过滤等功能。非时钟资源,如本地布线,不推荐用于时钟功能。
全局时钟树允许同步模块时钟跨越整个FPGA器件。
I/O时钟和区域时钟树允许最多为三个垂直相邻的时钟区域提供时钟。
每个CMT包含一个混合模式时钟管理器(MMCM)和一个锁相环(PLL),位于I/O列旁边的CMT列中。
为了提供时钟,每个7系列器件被划分为时钟区域。
时钟区域的数量随器件大小而变化,从最小器件的一个时钟区域到最大器件中的24个时钟区域。
时钟区域包括50个CLB和一个I/O bank(50个I/O)的区域中的所有同步模块(例如:CLB、I/O、串行收发器、DSP、块RAM、CMT),其中心有一个水平时钟行(HROW)。
每个时钟区域从HROW向上和向下跨越25个CLB,并水平跨越器件的每一侧。
1.2 时钟布线资源概述
每个I/O bank包含支持时钟的输入引脚,将用户时钟带到7系列FPGA时钟路由资源上。与专用时钟缓冲器一起,时钟输入管脚将用户时钟引入到:
器件相同上/下半部分的全局时钟线
相同I/O Bank和垂直相邻的I/O Bank的时钟线
相同时钟区域和垂直相邻的时钟区域的区域时钟线
同一时钟区域内的CMT和有限制的情况下的垂直相邻的时钟区域
每个7系列器件有32条全局时钟线,可以对整个器件中的所有时序资源进行时钟控制和提供控制信号。全局时钟缓冲器(BUFGCTRL,在本用户指南中被简化为BUFG)驱动全局时钟线,用于访问全局时钟线。每个时钟区域可以使用时钟区域中的12条水平时钟线来支持多达12条全局时钟线。
全局时钟缓冲器:
可用作时钟使能电路,以使能或禁用跨越多个时钟区域的时钟
可用作glitch-free multiplexer:
在两个时钟源之间选择
从故障时钟源切换通常由CMT驱动,用于:消除时钟分布延迟调整相对于另一个时钟的时钟延迟
水平时钟缓冲器(BUFH/BUFHCE)允许通过水平时钟行访问单个时钟区域中的全局时钟线。它也可以作为时钟使能电路(BUFHCE)独立地使能或禁用跨越单个时钟区域的时钟。使用每个时钟区域中的12条水平时钟线可以支持多达12个时钟。
每个7系列FPGA都有区域时钟树和I/O时钟树,可以为一个时钟区域内对所有时序资源提供时钟。每个器件还具有多时钟区域缓冲器(BUFMR),允许区域和I/O时钟跨越最多三个垂直相邻的时钟区域。
I/O时钟缓冲器(BUFIO)驱动I/O时钟树,提供对同一I/O bank中所有时序I/O资源的访问。
区域时钟缓冲器(BUFR)驱动区域时钟树,该树驱动同一时钟区域中的所有时钟目的地,并可编程输入时钟频率。
紧邻IOB中的可编程串行器/解串器器(请参阅UG471 7系列FPGA SelectIO Resources用户指南中的高级选择逻辑资源一章),BUFIO和BUFR时钟缓冲区允许源同步系统跨时钟域,而无需使用额外的逻辑资源。
当与相关的BUFR或BUFIO一起使用时,可以使用多时钟区域缓冲器(BUFMR)驱动相邻时钟区域和I/O时钟树。在一个时钟区域或I/O bank中最多可支持四个唯一的I/O时钟和四个唯一的区域时钟。高性能时钟路由将CMT的某些输出以非常低的抖动、最小的占空比失真的连接到I/O上。
1.3 CMT 概述
每个7系列FPGA最多有24个CMTs,每个CMT由一个MMCM和一个PLL组成。MMCMs和PLL用作频率合成器,用于非常宽的频率范围,用作外部或内部时钟的抖动滤波器,以及低偏移时钟。PLL包含MMCM功能的一个子集。7系列FPGA时钟输入连接允许多个资源向MMCM和PLL提供参考时钟。7系列FPGA MMCMs具有任意方向的无限精细相移能力,可用于动态相移模式。MMCMs在反馈路径或一个输出路径中也有一个小数计数器,使得频率合成能力能够进一步细化。LogiCORE™ IP时钟向导可用于帮助利用MMCMs和PLL在7系列FPGA设计中创建时钟网络。图形用户界面用于采集时钟网络参数。计时向导选择适当的CMT资源,并以最佳方式配置CMT资源和关联的时钟路由资源。
1.1.3 时钟缓冲、管理和布线
图1是7系列FPGA时钟结构的高级视图。垂直时钟中心线(①时钟主干线)将器件划分为相邻的左右区域,而水平中心线(②)将器件划分为顶部和底部侧面。时钟主干中的资源被镜像到水平相邻区域的两侧,从而将某些时钟资源扩展到水平相邻区域。顶部和底部(③)分隔两组全局时钟缓冲器(BUFGs),并对它们的连接方式施加了一些限制。但是,BUFGs不属于时钟区域,可以到达器件上的任何时钟点。所有水平时钟资源包含在时钟区域水平时钟行(HROW)(④)的中心,而垂直的、非区域的时钟资源包含在时钟主干或CMT主干中。
图1、7系列FPGA高级时钟结构视图
图2是一个时钟区域内可用时钟资源及其基本连接的高层次概述。
图2、时钟区域的基本视图
在图中,我们可以看到:
全局时钟缓冲器(①)可以通过HROW进入每个区域,即使物理空间上不在该区域。
水平时钟缓冲器(②BUFH)通过HROW驱动该区域的每个时钟点。
BUFGs和BUFHs在HROW中共享路由路径(③)。
I/O缓冲器(BUFIO)和区域时钟缓冲器(BUFR)位于I/O bank内部(④)。BUFIO只驱动I/O时钟资源,而BUFR驱动I/O资源和逻辑资源。
BUFMR支持BUFIOs和BUFRs的多区域链接。时钟输入(芯片*CC管脚⑤)将外部时钟连接到器件上的时钟资源。某些资源可以通过CMT主干时钟网络(⑥)连接到顶部和底部的区域。
图3显示了器件右边缘单个时钟区域中时钟的更详细视图。在该图中,我们可以看到外部时钟输入管脚SRCC和MRCC进入I/O Bank后可以驱动的时钟资源以及CMT资源与外部互联情况。
图3、单时钟区域(器件右侧)
图4显示了更详细的全局BUFG和区域BUFH/CMT/CC引脚连接以及一个区域内可用资源的数量(此处显示右侧区域)。
图4、BUFG/BUFH/CMT时钟区域细节
在图4中,我们可以看到:
SRCC和MRCC时钟的输入引脚中的任何一个都可以驱动CMT和BUFH中的PLL/MMCM。
BUFG显示位于该区域中,但可以实际位于时钟主干的其他位置。
BUFG和BUFH在HROW中共享12条路由,可以驱动该区域内的所有时钟点。BUFGs也可以驱动BUFHs(图4中未显示),允许在其他全局时钟分布上单独启用时钟CE)。
一个GTQuad有十个专用的通道来驱动CMT和时钟缓冲器。
位于I/O bank中的BUFRs有四个走线驱动逻辑、CMT和BUFG中的时钟点。CMT可以使用CMT主干网驱动相邻区域中的其他CMT,但有局限性。类似地,时钟输入管脚可以在相同的限制下驱动相邻区域的CMT。
时钟输入管脚在器件的同一顶部/底部的任何地方可以驱动BUFG。
CMT主干网中有四条走线支持垂直区域之间的连接。
逻辑互连驱动BUFG和BUFH的CE引脚。逻辑互连也可以将时钟驱动到相同的缓冲区,但必须小心,因为时间是不可预测的。
图5显示了BUFR/BUFMR/BUFIO时钟区域详细信息。
图5、BUFR/BUFMR/BUFIO时钟区域详细信息
在图5中,我们可以了解到:
每个I/O bank包含四个BUFIO和四个BUFRs。这些时钟缓冲器中的每一个可以由专用的输入时钟管脚对(_CC管脚)驱动,或者可以直接由MMCM的特定输出时钟驱动。
两个支持时钟的输入管脚对,称为MRCCs,支持多区域时钟方案。一个MRCC管脚对可以驱动一个特定的BUFMR,而该BUFMR又可以驱动相同和相邻区域中的BUFIOs和BUFRs,从而促进多区域/bank接口。
GTQuad也可以驱动BUFMRs。
MMCM<3:0>输出有一个专用的高性能差分路径到BUFRs和BUFIO。此功能也称为高性能时钟(HPC)。
图6、7K325T架构布局
尽管所有7系列器件都具有相同的基本架构,但系列和系列内器件之间存在一些架构差异。每7系列FPGA在器件的左边缘至少有一个完整的I/O列。GT可以是7系列FPGA支持的任何一个串行收发器(GTP、GTX,或GTH)。带有GTs的器件要么在器件的右边缘有一个GTs和I/O的混合列(一些Kintex-7器件和一些Artix-7器件),要么在器件的右边缘有一个完整的GT列(一些Kintex-7器件和一些Virtex-7器件)和一个完整的I/O列在器件的右侧。其他Virtex-7器件的左右边缘都有完整的GT列,左右两侧都有完整的I/O列侧面。Artix-7200t器件在时钟列的顶部和底部有GTP收发器。
2. 7系列FPGA时钟与6系列FPGA的区别
7系列FPGA时钟具有与Virtex-6 FPGA类似的结构,并支持许多相同的功能。但是,不同的时钟组件及其功能存在一些架构差异和修改。与Spartan-6 FPGA相比,它在结构和功能上都有一些显著的变化。一些Spartan-6 FPGA时钟原语不再可用,取而代之的是更强大、更简单的结构。
2.1 与Virtex-6 FPGA的不同
7系列FPGA基本BUFIO时钟功能没有改变,唯一的例外是BUFIO现在只跨越一个Bank。相邻Bank的直接时钟被一个新的时钟缓冲器所取代。现在每个Bank有四个BUFIO,另外,BUFR的基本目的没有改变。然而,现在BUFR只直接跨越一个时钟区域。现在每个区域有四个BUFRs和四个区域时钟(轨道)。
7系列FPGA引入了一种新的缓冲类型:BUFMR/BUFMRCE。BUFMR/BUFMRCEs驱动BUFIOs和/或BUFRs在同一垂直相邻位置区域。他们还提供相同的多时钟区域/多组时钟路由,可用于支持相同三个时钟区域/组的Virtex-6 FPGA能力.BUFMRCE具有可选择的同步或异步切换功能。
7系列FPGA不再支持Virtex-6系列中的全局时钟(GC)输入引脚。每列4个时钟输入引脚/对替换GCs,支持时钟的输入引脚的连接性得到了增强,以支持以前的GC功能。
全局时钟多路复用器BUFGMUX添加了一个属性CLK_SEL_TYP,用于允许两个输入时钟的同步或异步时钟切换(以前仅通过忽略端口可用)。
BUFHCE有一个增强的时钟使能,允许输入时钟的同步或异步使能。
CMT现在包含一个MMCM和一个PLL(MMCM的一个子集),而不是两个MMCM,以及保留的专用内存接口逻辑。CMT列位于SelectIO旁边™ CMT中的列/列组,并具有对I/O的专用访问权限以获得高性能。全局时钟缓冲区仍然位于由驱动的I/O列之间的设备的垂直中心CMTs.直接不再支持CMT内的级联。直接级联到相邻的cmt是可能的,但是由于资源有限而受到限制。级联到相邻CMT之外的其他CMT会导致源和目标MMCMs/pll之间的相位偏移,并且需要特殊的属性设置。
分数除法器不再共享输出计数器。这将释放这些计数器用于其他用途。分数计数器增加了静态相移功能。
时钟保持功能不再可用MMCMs支持扩频
2.2 与Spartan-6 FPGA的不同
Spartan-6体系结构独有的一些Spartan-6 FPGA时钟电路拓扑、功能和块不受支持,已被7系列FPGA时钟功能所取代。7系列设备不直接支持DCM_SP,DCM_CLKGEN, BUFIO2, BUFIO2_2CLK, BUFIO2FB, BUFPLL, and BUFPLL_MCB等特性和功能。
PLL是MMCM的一个子集,具有相同的性能(最小CLKIN/PFD和最小/最大VCO频率除外)、一些连接限制和一些降低的功能。与以前的Spartan®FPGA PLL相比,7系列FPGA PLL增加了掉电、输入时钟切换和级联到相邻CMT。PLL与BUFIO或BUFR没有直接连接。
在7系列FPGA中,没有直接替代BUFIO2和BUFIO2 clk原句的方法。使用BUFIO和BUFR代替推荐的连接来驱动ILOGIC和Logic。
Spartan-6 FPGA BUFIO2专用输入路由从GCLK到CMT和全局时钟缓冲器不再受支持。要迁移到7系列FPGA,请使用来自CCIO引脚的专用输入路由。
在7系列FPGA中没有直接等效于Spartan-6 FPGA BUFPLL。要进行迁移,请使用BUFIO和BUFR以及ILOGIC和logic的推荐连接。MMCME2 CLKOUT[0:3]的高性能时钟路由取代了BUFPLL的专用路由。ISERDES和OSERDES电路基于Virtex-6体系结构。
在7系列FPGA中,不再需要BUFIO2FB基元。对于MMCM和PLL反馈连接,CLKFBIN可以直接连接到全局时钟缓冲器、输入引脚或CLKFBOUT,具体取决于所使用的反馈。
Spartan-6 FPGA仅支持BUFH。7系列FPGA BUFHCE原语添加了禁用时钟的功能,以在由该资源驱动的时钟区域中实现潜在的节能。
7系列FPGA新的缓冲区BUFMR/BUFMRCE驱动相同和垂直相邻时钟区域中的BUFIO和/或BUFRs。当与BUFIO或BUFR一起使用时,BUFMR/BUFMRCE允许MRCC输入访问相邻时钟中的BUFIO和BUFR区域。BUFMRCE具有可选择的同步或异步切换功能。
Spartan-6 FPGA设计迁移的一个新原语是BUFR。当与BUFIO一起使用时,BUFRs功能将取代BUFIO2、BUFIO2 clk和BUFPLL功能。在每个时钟区域中有四个BUFR。
Spartan-6 FPGA设计迁移的另一个新原语是BUFIO。当与BUFR一起使用时,BUFIO功能将取代BUFIO2、BUFIO2 clk和BUFPLL功能。
与Spartan-6体系结构中的两个DCM和一个PLL不同,7系列FPGA使用的CMT包含一个MMCM、一个PLL和专用内存接口逻辑,这些逻辑在此时保留给Xilinx使用。这些功能现在支持DCM及其相关功能。CMT位于与SelectIO列相邻的单独列中,具有对I/O的专用访问权限。DCM_SP和DCM_CLKGEN不再可用,它们的功能现在在MMCMs和PLL中受支持。
7系列FPGA不再支持全局时钟(GCLK)输入。现在,每一个支持Spartan-6 FPGA GCLK引脚功能的银行都有四个支持时钟的输入引脚。
对于Spartan-6 FPGA设计人员来说,MMCM是一个新的功能块。MMCM增加了分频、精细相移、动态相移、反向时钟输出、CLKOUT6到CLKOUT4级联以及其他一些功能。使用CLKOUT[0:3],MMCMs到BUFIO/BUFR的HPC连接取代了到BUFPLL的直接路由连接。还提供了更广泛的DRP。
对于通用高速I/O时钟,使用PLL不再是推荐的CMT功能。PLL与BUFIO或BUFR没有直接连接。不再支持CLKOUT0反馈。将MMCM用于高速I/O接口。级联连接使用有限的CMT主干资源。还有一种新的断电模式。完全支持输入时钟切换。Spartan-6 FPGA和7系列FPGA的工作范围不同。
DRP功能仍然可用。DRP功能位置和地址已更改。
Spartan-6 FPGA DCM_SP不再受支持。要迁移到7系列FPGA,请使用MMCM和PLL.
Spartan-6 FPGA DCM_CLKGEN在7系列FPGA中不受直接支持。使用MMCM或PLL低带宽输入抖动滤波。还可以使用MMCM或PLL的DRP参考设计来完成M/D值的动态重新编程。
3.时钟连接概述
表1对7系列FPGA时钟连接进行了总结。
表1、7系列FPGA时钟连接总结
文章评论(0条评论)
登录后参与讨论