FPGA资源介绍——时钟资源(二)

概述

Xilinx FPGA时钟包括全局时钟资源、区域时钟资源和I/O时钟资源。
全局时钟
全局时钟是为所有时钟输入设计的专用互连网络,可以覆盖FPGA中的各种资源。通过使用专用时钟缓冲(BUFG)和驱动结构,确保了整个芯片的任意一个触发器的电延时是等长的,并且全局时钟网络可提供低延时和低抖动的时钟,可应用于时钟、快速信号和高扇出信号的布线。
全局时钟资源是一种精心设计的布线资源,路线很长且扇出系数很大,一般使用全铜层工艺实现。全局时钟设计采用了专用时钟缓冲与驱动结构,使得全局时钟到达芯片内部所有资源(包括CLB、I/O单元、Block RAM和DSP核等)的时延和抖动都最小。全局时钟网络到FPGA内部的各种资源的采样时钟同时到达,使得信号的时序计算和分析较容易,不会产生不稳定的情况。
区域时钟
区域时钟是驱动时钟区域内所有资源的时钟网络,对于该时钟区域内部的资源,区域时钟具有更好的时钟性能,尤其是在基于源同步接口设计中使用区域时钟网络更加有效。
I/O时钟
I/O时钟是在Virtex-5系列后的FPGA中定义的时钟资源,其高速性能主要用于局部化的I/O串行器/解串器的电路设计,并且可以应用于时钟网络的源同步设计。
时钟管理IP
Xilinx FPGA提供的时钟管理IP硬核包括DCM、PLL和MMCM,其主要系列的时钟资源如表2-1所示,在Virtex-4和Virtex-5系列中主要以DCM+PLL方式提供高性能时钟,而MMCM可以比PLL提供更精确的时钟分频功能,因此在Virtex-6系列中可使用MMCM+MMCM方式。

DCM和PLL在功能上都可以实现时钟的倍频、分频和占空比调整,但是DCM是基于数字抽样方式实现的,在输入时钟和反馈时钟之间插入延迟,使得输入时钟和反馈时钟的上升沿一致,因此又称为数字锁相环,当输出时钟需要细粒度相移或动态可调相移时,DCM是较好的解决方案;而PLL使用电压控制延迟实现与DLL中类似的延迟功能,称为模拟锁相环,在当需要低抖动可变频时钟时可以选择PLL。

全局时钟资源

全局时钟资源介绍:

IBUFG:即输入全局缓冲,是与专用全局时钟输入管脚相连接的首级全局缓冲。所有从全局时钟管脚输入的信号必须经过IBUF元,否则在布局布线时会报错。IBUFG支持AGP、CTT、GTL、GTLP、HSTL、LVCMOS、LVDCI、LVDS、LVPECL、LVTTL、PCI、 PCIX和SSTL等多种格式的IO标准。
IBUFGDS:是IBUFG的差分形式,当信号从一对差分全局时钟管脚输入时,必须使用IBUFGDS作为全局时钟输入缓冲。IBUFG支持BLVDS、LDT、LVDSEXT、LVDS、LVPECL和ULVDS等多种格式的IO标准。
BUFG:是全局缓冲,它的输入是IBUFG的输出,BUFG的输出到达FPGA内部的IOB、CLB、选择性块RAM的时钟延迟和抖动最小。
BUFGCE:是带有时钟使能端的全局缓冲。它有一个输入I、一个使能端CE和一个输出端O。只有当BUFGCE的使能端CE有效(高电平)时,BUFGCE才有输出。
BUFGMUX:是全局时钟选择缓冲,它有I0和I1两个输入,一个控制端S,一个输出端O。当S为低电平时输出时钟为I0,反之为I1。需要指出的是BUFGMUX的应用十分灵活,I0和I1两个输入时钟甚至可以为异步关系。
BUFGP:相当于IBUFG加上BUFG。
BUFGDLL:是全局缓冲延迟锁相环,相当于BUFG与DLL的结合。BUFGDLL在早期设计中经常使用,用以完成全局时钟的同步和驱动等功能。随着数字时钟管理单元(DCM)的日益完善,目前BUFGDLL的应用已经逐渐被DCM所取代。

全局时钟资源的使用方法:

全局时钟资源的使用方法主要概括为5种,分别是IBUFG+BUFG、IBUFGDS+BUFG、IBUFG+DCM+BUFG、Logic+BUFG和Logic+DCM+BUFG。

IBUFG+BUFG

IBUFG和IBUFGDS作为全局时钟引脚输入使用。FPGA内部结构决定了IBUFG和IBUFGDS的输入端仅与FPGA的专用全局时钟输入引脚有物理连接,与普通I/O和其他内部CLB等没有物理连接。如图所示,IBUFG+BUFG是最基本的全局时钟资源使用方法,通过连接BUFG可以提高全局时钟的驱动能力并保证较高的时钟信号质量。
在这里插入图片描述

IBUFGDS+BUFG

当输入时钟信号为差分信号时,需要使用IBUFGDS代替IBUFG,如图所示。
在这里插入图片描述

IBUFG+DCM+BUFG

当时钟网络需要多种频率、相位和高质量时钟进行同步驱动时,将输入的主时钟接入DCM,不仅能对时钟进行同步、移相、分频和倍频等变换,而且可输出多个低抖动和低延迟的全局时钟,如图所示,采用DCM使得对全局时钟的控制更加灵活有效。
在这里插入图片描述

Logic+BUFG

BUFG不仅可以驱动IBUFG的输出,还可以驱动其他FPGA内部普通信号的输出,如图所示。当某个信号(时钟、使能、快速路径)的扇出非常大,并且要求抖动延迟最小时,可以使用BUFG驱动该信号,使该信号到所驱动信号的路径最优。需要注意的是,普通I/O的输入或FPGA片内信号进入全局时钟布线层时会有一个固有延时,即普通I/O和片内信号从输入到BUFG输出都存在固有延时,但是BUFG的输出到片内所有资源(IOB、CLB、Block RAM)的延时可以忽略不计。
在这里插入图片描述

Logic+DCM+BUFG

DCM同样也可以控制并变换普通时钟信号,即DCM的输入也可以是普通片内信号(内部时钟),如图所示。通过DCM可以灵活地产生各种频率、相移信号,并接入BUFG提高信号输出的扇出能力。
在这里插入图片描述

区域时钟

区域时钟资源

区域时钟资源和布线包括如下组件和通路:
Clock-capable I/O——CCIO;
区域时钟网——Regional Clock Net;
I/O时钟缓冲器——BUFIO;
区域时钟缓冲器——BUFR;
水平时钟缓冲器——BUFH;
BUFIO:用于驱动I/O列内部时钟网的时钟缓冲器,只能通过CCIO进行驱动,并且不能直接驱动逻辑资源。
BUFR:用于驱动时钟区域内部资源的时钟缓冲器,同时可以驱动相邻区域的区域时钟网。
BUFH:输入是IBUFG的输出,BUFG的输出到达FPGA内部IOB、CLB、BlockRAM的时钟延迟和抖动最小。

区域时钟的使用

BUFIO的使用

BUFIO驱动I/O列内独立于全局时钟资源的专门时钟网,因此BUFIO非常适用于源同步的数据采集,即CCIO通过BUFIO驱动I/O列中的时钟网络,对同一个区域时钟内的I/O信号进行采样,从而达到以最小的延时采样相关信号的目的。

BUFR的使用

BUFR可以直接驱动同一个或相邻区域的I/O和逻辑资源(如CLK、Block RAM等),同时可以根据时钟输入生成分频时钟输出,这一功能可与可编程I/O中的Serializer/ Deserializer(串行器/解串器)相配合,实现源同步资源系统设计,无须额外的逻辑资源即可跨越时钟域。

DCM的功能和结构

DCM内部结构主要包括四个功能单元:延迟锁相环(Delay Locked Loop,DLL)、数字频率综合器(Digital Frequency Synthesizer,DFS)、数字移相器(Digital Phase Shifter,DPS)和状态逻辑(Status Logic,SL)。
在这里插入图片描述

DCM为基本的时钟管理单元,主要包括时钟去Skew、频率合成、相移、动态重配置和电平转换等功能。DCM的主要优点在于:实现零时钟偏移(Skew),消除了时钟分配延迟;时钟可以映射到PCB上实现与外部芯片之间的时钟同步,从而减少了FPGA与外部芯片通信时的时序要求,且基于DCM实现芯片内外时钟的一体化控制更有利于系统设计。

PLL的结构与功能

PLL内部结构主要包括4个功能单元:相位频率检测器(PFD)、电荷泵(CP)、环路滤波器(LF)和压控振荡器(VCO)。辅助单元包括3种可编程计数器:输入时钟控制计数器(D)、反馈时钟控制计数器(M)和可独立编程的输出时钟控制计数器(O)。另外,PLL还包括锁存检测(Lock Detect)功能,可以检测输入/反馈信号是否锁存并输出锁存状态。
在这里插入图片描述

PLL的主要用途是作为广谱频率的频率合成器,并且与CMT中的DCM配合作为外部或内部时钟的抖动滤波器。PLL功能主要包括时钟网络去歪斜、频率合成和抖动滤波

MMCM的结构和功能

MMCM结构包括输入时钟复用器MUX、分频器(D)、相位频率检测器(PFD)、压控振荡器(VCO)、电荷泵(CP)、环路滤波器(LF)和倍频器(M)。MMCM中的O0~O3接口支持差分时钟输出。
在这里插入图片描述

MMCM包含了DCM和PLL电路,可以提供更加灵活和精确的时钟管理功能,包括时钟去歪斜、数字频率合成、相移和抖动滤波等。

强烈推荐:
《Xilinx FPGA应用进阶——通用IP核详解和设计开发》 黄万伟,董永吉,尹鹏,李玉峰 著

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值