Xilinx-7系列 时钟资源与结构


参考文档:
Xilinx ug472《7Series FPGAs Clocking Resources User Guide》

一、Xilinx-7系列时钟构架

在这里插入图片描述 时钟主干线(Clock Backbone)和水平中心线(Horizontal Center),把整个片上划分成各个时钟域,7系列产品有1-24个时钟域不等,时钟主干线(Clock Backbone)垂直分布,将时钟资源左右镜像分配,水平时钟线(Horizontal Clock Row,HROW)将时钟域内资源垂直分配。每个时钟域内,包含12个BUFH,每列(Column)包括50个CLB、10个36K的BRAM、20个DSP slice,部分时钟域还包括一个时钟管理器(CMT,包括PLL和MMCM)、50个bank IO等。在这里插入图片描述
在这里插入图片描述
以下BUF可称为“驱动器或缓冲器”
全局时钟缓冲器(BUFG)可通过Clock Backbone和HROW驱动时钟至各个时钟域
水平时钟缓冲器(BUFH)可通过HROW驱动时钟至各个时钟域,能看出BUFG和BUFH共享了HROW。
输入输出缓冲器(BUFIO)位于IO Bank内,只驱动IO 时钟。
区域时钟缓冲器(BUFIO)位于IO Bank内,驱动IO 时钟和逻辑资源。
多区域时钟缓冲器(BUFMR)负责BUFIO和BUFR的驱动与互联分配,顾名思义也可驱动时钟连接至相邻不同的时钟域,
由figure1-3可以看出,每个时钟域包含SRCC和MRCC专用时钟引脚各两组,BUFMR时钟源必须是MRCC,而BUFIO和BUFR时钟源可以是MRCC和SRCC。
在这里插入图片描述
Figure1-4描述的BUFG、BUFH、CMT的互联细节,MRCC和SRCC引脚(统称为CC)不再区分,说明两者均可驱动BUFG、BUFH和CMT资源。
红色时钟总线:时钟输入经四个CC引脚连接到BUFG和BUFH的输入端,也可直接连接至本时钟域的CMT(PLL和MMCM),驱动邻近时钟域CMT时需经过CMT Backbone。
黑色时钟总线:在HROW内由BUFG和BUFH输出共享,可作为至PLL和MMCM的输入并驱动所有域内逻辑资源(包括高速收发器域,GT Quad),CMT输出也可以驱动BUFG和BUFH,本域CMT输出驱动邻近域CMT时需要经过CMT Backbone。(注意:从GT Quad输出的时钟不可直接连接到MMCM,需要经过BUFH或BUFG)
黄色时钟总线:由GT Quad输出可驱动BUFG、BUFH和CMT。
绿色时钟总线:表示BUFR输出时钟总线,BUFR位于IO Bank内,可驱动BUFG、BUFH、CMT和域内逻辑资源。
另外,BUFG和BUFH包含CE选择使能功能,由逻辑部分控制,逻辑资源也可以驱动一些缓冲器作为时钟信号,但时序分析就会不可靠,慎用。
在这里插入图片描述
Figure1-5描述的是BUFR、BUFMR、BUFIO的互联细节,
每个IO Bank包含4个BUFR和4个BUFIO,两者时钟输入来源包括MMCM输出(CLKOUT0-3)、SRCC与MRCC、BUFMR(本域和上下邻域)输出,
BUFMR输入时钟源可来自GT Quad或MRCC(注意不可SRCC),BUFMR输出连接至CMT Backbone提供至邻近时钟域或供至本IO Bank
的BUFR、BUFIO资源,这也是SRCC与MRCC路径的最大区别。
在这里插入图片描述
在这里插入图片描述

二、时钟布线资源

时钟输入引脚(CC Pins,Clock-Capable Pins)。
时钟输入引脚,俗称FPGA的专用时钟引脚,片外时钟输入必须由CC引脚输入,而不能用通用IO引脚(保证时序分析准确性与驱动质量的角度考虑的)。每个IO Bank内包含50个IO引脚,Bank内共有4组CC引脚(包括两组SRCC和两组MRCC),可连接差分(P,N)或单端时钟,当输入单端时钟时,必须从P引脚输入,该CC组引脚的N脚不能再作为另一个单端时钟输入,而是只能作为普通IO。如果不使用作时钟输入引脚,也可直接作为普通用户IO使用,用法与其他IO相同。

CC时钟引脚输入布线原则(ug472,Table2-1)
在这里插入图片描述

在这里插入图片描述

三、全局时钟资源:

全局时钟缓冲器相关原语(BUFGCTRL 、BUFG 、BUFGCE 、BUFGCE_1 、BUFGMUX 、BUFGMUX_1 、BUFGMUX_CTRL)
以上所有都是由BUFGCTRL通过预置电平实现的,即BUFGCTRL作为基本模型。

1.BUFGCTRL(Global Clock Control Buffer)

在这里插入图片描述
在这里插入图片描述
BUFGCTRL本质作用是实现两路输入时钟I0、I1的无缝切换,其余6个引脚均为控制引脚,由Table2-3真值表可知,当CEx和Sx均为高电平时,选择该路时钟输出,两路的CEx和Sx当同时为高电平时,保持原来的有效输入时钟,注意:默认控制信号切换后,原时钟由高至低跳变后,输出保持为低电平,直到新切换的时钟由高变低,此时切换过程完毕,输出与新切换时钟相同,以此过程避免了时钟切换时的毛刺冲突。如果只控制Cex, Sx预置,时钟切换后则不需等待原时钟的由高至低跳变。当IGNOREx置位时,切换时将忽略该路的Ix下降沿跳变过程。(时序图中的建立保持时间和延时时间在DS182:Kintex‐7 FPGAs Data Sheet: DC and AC Switching Characteristics 手册中有说明)
在这里插入图片描述

如下是原语例化模板,在Vivado工程界面Language Template中可找到(搜索BUFGCTRL即可)
在这里插入图片描述

2.BUFG(Global Clock Simple Buffer)

在这里插入图片描述
通过与BUFGCTRL预置模型对比,可以看到其在BUFGCTRL选择了其中一路作为输出,并忽略另一路的下降沿跳变。
在这里插入图片描述
输入时钟与输出相等,延时为TBCCKO_O,在K7速度等级-2产品中为0.1ns。
在这里插入图片描述

3.BUFGCE(Global Clock Buffer with Clock Enable)

在这里插入图片描述
BUFGCE对于功能上,相当于BUFG增加了使能端,对比BUFGCE与BUFGCTRL可以看到,其将BUFGCTRL的1路相关控制引脚直接置为无效电平,0路由CE0决定,起到使能作用(高电平有效)。
在这里插入图片描述
由Fignure2-8时序图,当CE在输入I时钟上升沿前变为低电平时(且满足建立时间TBCCCK_CE),则O输出将保持低电平,即关断输出时钟信号,另外,在输入时钟I为高电平期间,CE的跳变会无效。
对于BUFGCE_1(Global Clock Buffer with Clock Enable and Output State 1),特性与上述的BUFGCE很相似,不同之处在于控制极性:当CE在输入I时钟下降沿前变为低电平时(且满足建立时间TBCCCK_CE),O输出将保持高电平,在输入时钟I为低电平期间,CE的跳变会无效。
在这里插入图片描述
例化模板如下:
在这里插入图片描述
在这里插入图片描述

4.BUFGMUX(Global Clock Mux Buffer)

在这里插入图片描述
功能上看,作为一个带选择器(复用)的时钟缓冲器,实现二选一切换功能,通过增加非门逻辑控制BUFGCTRL的CE端实现,同一时间,两路输入的片选信号只有一个能使能。同样因控制引脚是CE脚,应满足setup时间。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.BUFGMUX_CTRL(2-to-1 Global Clock MUX Buffer)

在这里插入图片描述
从BUFGMUX_CTRL与BUFGCTRL对比关系上看,与BUFGMUX很相似,区别在于控制的为S端,而非CE端。
S切换时,无论是否满足对I0当前选择时钟的下降沿的setup时间,都不会产生glitch(这是由BUFGCTRL的S和CE的控制性质决定的,若由CE端控制则必须满足setup时间),S控制端不满足setup时间时只是会多等待一个时钟脉冲。
例化模板如下:
在这里插入图片描述

6. 其它应用

(1)异步时钟快速切换

基于BUFGCTRL (BUFGMUX_CTRL)模型,适用于当其中一路时钟消失时需要立即切换至另一路时钟的场景,将IGNOREx引脚置高,即忽略目标切换时钟的下降沿跳变,即消除了对该路时钟的依赖,但代价就是可能存在glitch。
在这里插入图片描述

(2)带时钟使能控制的BUFGMUX_CTRL

在这里插入图片描述
基于BUFGMUX_CTRL模型增加对CE控制,即实现二选一的同时可控制时钟的使能与否,CE端高电平有效。
在这里插入图片描述

四、区域时钟资源

1.BUFIO (I/O Clock Buffer)

BUFIO可由本域SRCC和MRCC、邻域MRCC经BUFMR、本域的MMCM 0-3 CLKOUTS 经HPC驱动,BUFIO只能驱动本域的IO时钟网络,不能驱动其它逻辑资源。
在这里插入图片描述
在这里插入图片描述

2. BUFR (Regional Clock Buffer)

BUFR可由本域SRCC和MRCC、邻域MRCC经BUFMR、MMCM CLKOUT0-3经过或不经过本域HPC、本地时钟互联资源驱动,BUFR即可驱动IO资源也可内部逻辑资源,还可以直接驱动MMCM和BUFG。注:BUFR具备分频功能,分频范围1-8整数分频。
在这里插入图片描述
BUFR除了输入输出端口,还包括CE异步使能端和CLR异步清零端,CE与CLR在BYPASS状态下无效(默认BYPASS状态)
当BUFR_DIVIDE=1时候,输入输出相等,但输入输出时延略微大于BYPASS状态(所有非BYPASS状态延时相等)。
在这里插入图片描述
注:当BUFR时钟源停止后再次恢复时钟,应在BUFR的CLR引脚进行一次高电平脉冲作为复位操作,以保证相位对齐。
在这里插入图片描述
上图可以看到BUFIO与BUFR的区别,BUFR不仅能驱动IO,还可驱动内部逻辑,对于源同步应用,可通过BUFR驱动时钟,通常本时钟域IO数据采样,具有较小的时钟偏斜,而不必经过BUFG全局时钟网络。
在这里插入图片描述

3.BUFMR/BUFMRCE(Multi-Region Clock Buffer)

每个bank内包含两个BUFMR,输入时钟源包括同bank的MRCC和本域的GT clock,可驱动本时钟域和上下邻域的BUFR和BUFIO。(注意:SRCC不可直接连接至BUFMR,而MRCC可以,这也是MRCC和SRCC最大的区别之一。)
BUFMRCE增加了一个CE使能端口,高电平使能。
在这里插入图片描述
BUFMR应用举例:
在这里插入图片描述
在这里插入图片描述
使用BUFMR和BUFR配合使用可具备更小的时钟偏斜,适合用作源同步和相邻跨时钟域同步,当用作如图A-6所示的多路分频BUFR功能时候,为了保证各个BUFR的时钟相位对齐,推荐下面复位或上电配置步骤:
控制BUFMRCE的CE使能引脚,保持关断输出(为了保证BUFR复位期间无时钟输入,必须采用带使能控制的BUFMRCE),之后控制BUFR的CLR引脚以复位输出时钟,CLR有效后重新使能BUFMRCE的CE引脚,最后在同一时钟周期内释放各路BUFR的CLR。
在这里插入图片描述
在这里插入图片描述

4.BUFH、BUFHCE(Horizontal Clock Buffer)

每个时钟域包含12个BUFH,BUFH时钟源包括:本域CMT输出、BUFG输出、本域或水平邻近域GT时钟输出、本域时钟互联资源、水平邻域的CC引脚输入。
在这里插入图片描述
在这里插入图片描述
BUFH应用如上图,必须是水平相邻时钟域,相比于BUFG直接驱动两个邻域,使用BUFH功耗和jitter抖动更优化。

五、时钟管理模块(CMT,Clock Manage)

1.MMCM结构分析

7系列FPGA包括多个CMT,每个CMT由一个MMCM(混合时钟管理器)和一个PLL(锁相环)组成。MMCM除了包含PLL的频率合成功能外,MMCM还支持精密动态相移。
CMT概括功能:时钟频率产生分配,时钟相位锁定与调整,去抖动及偏斜。
在这里插入图片描述
在这里插入图片描述
MMCM的输入时钟源可来自:
1.IBUFG :由CC引脚输入(MMCM会补偿该路径延时)
2.BUFGCTRL 或 BUFG :内部的全局时钟缓冲器(MMCM不会补偿该路径延时)
3. IBUF :可以但不推荐,因为IBUF输入并不视为时钟信号,因此时序路径分析上不如使用专用时钟资源,因此需要将IBUF后接BUFG,作用相当于IBUFG(MMCM不会补偿该路径延时)
4.BUFR:区域时钟输入缓冲器(MMCM不会补偿该路径延时)
5.GT : 高速收发器时钟可直接连接至MMCM。

对比MMCM和PLL结构:
1.组成框图上基本一致,MMCM支持反相输出且输出路数较PLL多一个。
2.MMCM支持小数模式分频,而PLL只能整数分频。
3.在VCO输出后MMCM相比PLL增加了一个可变相位抽头,也正是此处差异使MMCM支持动态相移,PLL则无法做到。
4.支持CLKOUT4_CASCADE模式,以获得更大的输出频率范围(fmin更低)。
4.在时钟资源互联上存在差别,MMCM CLKOUT[3:0]可直接通过HPC驱动BUFR和BUFIO。
5.其他对于输入时钟、输出时钟频率范围等参数存在差异,细节见《DS182:Kintex‐7 FPGAs Data Sheet: DC and AC Switching Characteristics》,整体功能上看,PLL是MMCM的阉割版,MMCM核心也是锁相环,但其输出时钟抖动性能和功耗上,相比MMCM更优化。

频率合成过程计算分析:
以MMCM为例,直观地看其结构框图,输出频率与三个因子有关,D输入分频系数因子,Ox(x=0~6)输出分频系数因子,M环路反馈系数因子(倍频),其在xilinx原语例化中分别为:
DIVCLK_DIVIDE(D):1~106
CLKOUTx_DIVIDE (O): 1~128
CLKFBOUT_MULT_F(M): 2.000 ~ 64.000
在这里插入图片描述
M位于环路反馈内,因此其起到倍频作用,D与O都是分频。输出频率Fout与输入关系如上等式3-2,等式3-2说明了VCO频率Fvco与Fclkin、M、D的关系,也可看做输出Fout是对Fvco进行O分频得到的,其中M与O均支持小数(精度0.125)。
在这里插入图片描述
在一些系数取值上,D系数受输入频率Fin与鉴相器频率Fpfd的关系限制,受VCO频率、输入频率和D系数限制,其中鉴相器频率Fpfd和VCO频率Fvco都是由器件工艺决定的,在DS182手册中可找到。
在这里插入图片描述
一般来说对于锁相环,尽量希望其反馈系数M较小些,因为电荷泵CP的噪声会以20logM的倍数关系折合到输出,同时VCO和鉴相器的频率应较高,以提升锁相环的相噪性能,因此对于D应尽量小一些,如上述等式3-10,取Dmin与Fvcomax来确定较优的M值。(在IP核方式配置MMCM或PLL时,会自动计算最匹配的各个系数)
MMCM与PLL例化框图如下:
BASE代表基本功能版本,ADV涉及高级功能(包括DRP动态配置和MMCM的动态相移),从功能引脚上能看出PLL是MMCM的一部分,不具备动态相移功能。
在这里插入图片描述
在这里插入图片描述

2.MMCM参数特性

其中蓝色圈处,MMCM常规模式下的最小输出频率4.69MHz,这是由VCO最小频率(600)与O系数CLKOUTx_DIVIDE的最大值(128)相比决定的,当MMCM工作在CLKOUT4_CASCADE模式时,输出频率最小可以达到0.036MHz,结构上通过级联CLKOUT4和CLKOUT6的分频计数器来实现,即4.69MHz继续除以128得到级联模式下的最小输出频率0.036MHz,将原语中CLKOUT4_CASCADE(“FALSE”)改为"TURE"即可。(见DS182 P47)
在这里插入图片描述
在这里插入图片描述
参考输入时钟切换
MMCM和PLL的输入时钟可动态切换,通过控制CLKINSEL异步切换,推荐切换后进行一次复位,防止锁定指示信号LOCKED不准确。
在这里插入图片描述

3.常用MMCM和PLL的拓扑模型

1)基本结构(MMCM with Internal Feedback)
反馈环路为CLKFBOUT与CLKFBIN直连,用于频率合成和抖动滤除,但输入时钟的噪声不能去除。
在这里插入图片描述
2)时钟去偏斜结构(Clock Network Deskew)
在这里插入图片描述
3)零延时结构(Zero Delay Buffer)
在这里插入图片描述
4)级联结构(CMT to CMT Connection)
通过级联,以扩展频率输出范围和时钟数量,但MMCM或PLL间的互联需要通过CMT Backbone,存在一定延时。
在这里插入图片描述

  • 10
    点赞
  • 77
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hongney

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值