如何正确使用FPGA的xilinx 时钟资源源

10386人阅读
FPGA基础知识(39)
在Xilinx的FPGA中,时钟网络资源分为两大类:全局时钟资源和区域时钟资源。
全局时钟资源是一种专用互连网络,它可以降低时钟歪斜、占空比失真和功耗,提高抖动容限。Xilinx的全局时钟资源设计了专用时钟缓冲与驱动结构,从而使全局时钟到达CLB、IOB和BRAM的延时最小。
区域时钟资源是独立于全局时钟网络的。Xilinx的器件分成若干个时钟区域,以Virtex-6为例,Virtex-6的最小器件有6个区域,最大器件有18个区域。它与全局时钟不同,区域时钟信号X只能驱动限定的时钟区域。
这里面提到区域时钟的概念,需要解释一下。Xilinx的FPGA器件是通过时钟区域来管理时钟网络的,以Virtex-6为例,时钟区域的大小固定为40个CLB 高,半个晶片宽。因此大尺寸的器件有更多的时钟区域。如下图所示,下图中的FPGA器件一共包含6个时钟区域,左侧三个右侧三个,从图可以看出每个区域高度是2*20CLBs,区域宽度是半个FPGA芯片的宽度。中间是CMT时钟管理模块。
每个时钟区域的中间方向有一个时钟行(HROW),以Virtex-6为例,一个时钟行,共包含12个水平时钟线,12个水平时钟线可以全部由全局时钟BUFG驱动。也可以由区域内部的时钟组件缓冲器驱动,例如BUFH和BUFR。这个时候有人会问什么是BUFG、BUFR和BUFH。
先来解释一下BUFG,这个比较简单,就是全局时钟网络时钟驱动器,如果时钟信号要走全局时钟网络,必须通过这个BUFG来驱动,BUFG可以驱动所有的CLB,RAM,IOB。spartan6 有一共有16个BUFG全局时钟线。virtex-6则一共有32个BUFG全局时钟线。参考文献链接见下面。
再看BUFH,BUFH驱动区域中的水平全局时钟树,Xilinx的时钟是通过时钟树来分布的,以spartan6时钟树为例,看下图。FPGA中间竖排是CMT时钟管理模块,就是PLL和DCM。全局时钟缓冲器BUFG是位于FPGA器件的中心位置,时钟的输入可以来自FPGA的上、下、左、右的bank,也可以来自PLL或DCM;16个BUFGMUX通过驱动vertical
spine并经vertical spine 往南北方向传播,vertical spine就相当于时钟树的树干 ,根据这条线路,时钟水平延伸至HCLK时钟列并经HCLK时钟列提供了访问局部逻辑原语的路径,HCLK及所谓的水平时钟线,相当于树枝;每一个HCLK列左右两边各有16个水平时钟缓冲BUFH驱动左右逻辑资源。
以Virtex-6每一个HCLK列左右两边各有12个水平时钟缓冲BUFH驱动左右逻辑资源,即每个时钟区域有<span style="color:#个BUFH时钟线。如下图
最后解释BUFR,BUFR我在SPARTAN6的时钟资源手册UG382里没有看到,应该是没有啊。BUFR是区域时钟缓冲器,要进入区域时钟网络,必须例化BUFR。一个BUFR最多可以驱动三个相邻的时钟区域中的区域时钟。顶部和底部区域中BUFR只能连接相邻的一个时钟区域,也就是说,顶部的BUFR连接它所在的下面一个相邻区域。底部的BUFR只能连接它所在的上边一个相邻区域。因此,底部和顶部BUFR的作用区域为两个时钟区域。如下图,下图是共有8个时钟区域的FPGA,每个时钟区域最多包含6个BUFR时钟线。截止现在可以看到(紫色标注)Vertex器件的每个时钟区域,共有6个BUFR和12个BUFH。SPARTAN6每个时钟区域好像就有16个BUFH。最后声明一下BUFR不仅可以驱动IO,也可以驱动CLB,RAM。下面接收的BUFIO只能驱动IOB模块。BUFR还可以1-2-4-8分频。
最后说一下BUFIO,BUFIO是用来驱动I/O列内的专用时钟网络,这个专用的时钟网络独立于全局时钟资源,适合采集源同步数据。BUFIO只能由位于同一时钟区域的Clock-Capable I/O驱动。一个时钟区域有4个BUFIO,其中的2个可以驱动相邻区域的I/O时钟网络。BUFIO不能驱动逻辑资源(CLB、BRAM等),因为I/O时钟网络只存在于I/O列中。
具体这些个时钟组件BUF怎么用,我还没实践,先对这些BUF概念理解一下,仅供大家参考。小弟初学,肯定有理解不对的地方,大家请指正。
参考文献的链接:
/blog/1957
.cn/s/blog_bffbp.html
/front/article/queryById.htm?id=417885
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:436891次
积分:5288
积分:5288
排名:第5078名
原创:78篇
转载:44篇
评论:111条FPGA(47)
/emb/fpga/77.html
[导读]&赛灵思在其FPGA中提供了丰富的时钟资源,大多数设计人员在他们的FPGA设计中或多或少都会用到。不过对FPGA设计新手来说,什么时候用DCM、PLL、PMCD和MMCM四大类型中的哪一种,让他们颇为困惑。本文为您解惑......
 把握DCM、PLL、PMCD和MMCM知识是稳健可靠的时钟设计策略的基础。赛灵思在其FPGA中提供了丰富的时钟资源,大多数设计人员在他们的FPGA设计中或多或少都会用到。不过对FPGA设计新手来说,什么时候用DCM、PLL、PMCD和MMCM四大类型中的哪一种,让他们颇为困惑。赛灵思现有的FPGA中没有一款同时包含这四种资源(见表1)。
  这四大类中的每一种都针对特定的应用。例如,数字时钟管理器(DCM)适用于实现延迟锁相环(DLL)、数字频率综合器、数字移相器或数字频谱扩展器。 DCM还是镜像、发送或再缓冲时钟信号的理想选择。另一种时钟资源相位匹配时钟分频器(PMCD)可用于实现相位匹配分配时钟或相位匹配延迟时钟。
  锁相环(PLL)和混合模式时钟管理器(MMCM)处理的工作有许多是相同的,比如频率综合、内外部时钟抖动滤波、时钟去歪斜等。这两种资源也可用于镜像、发送或再缓冲时钟信号。
  在深思设计实现细节时,把这些通常用法记在心里,有助于理清时钟选择的思路。对于长期产品发展规划而言,在制定合适的时钟策略时,应考虑各个器件系列之间的兼容性。下面让我们深入了解一下这些时钟资源。
  您可以使用DCM将时钟源的输入时钟信号相乘,生成高频率时钟信号。与此类&#20284;,可以将来自高频率时钟源的输入时钟信号相除,生成低频率时钟信号。
  数字时钟管理器
  顾名思义,数字时钟管理器(DCM)是一种用于管理时钟架构并有助于时钟信号成形和操控的模块。DCM内含一个延迟锁相环(DLL),可根据输入时钟信号,去除DCM输出时钟信号的歪斜,从而避免时钟分配延迟。
  DLL 内含一个延迟元件和控制逻辑链路。延迟元件的输出是输入时钟延迟所得。延迟时间取决于延迟元件在延迟链路中的位置。这种延迟体现为针对原始时钟的相位改变或相移,这就是所谓的“数字相移”。图1所示的即为Virtex-4器件中的典型DCM模块。根据Virtex-4FPGA用户指南(UG070,2.6 版本)的介绍,Virtex-4中有三种不同的DCM原语。
  一般来说,DLL与PLL类&#20284;。但与PLL不同的是DLL不含压控振荡器(VCO)。PLL会一直存储相位和频率信息,而DLL只存储相位信息。因此,DLL略比PLL稳定。DLL和PLL这两种类型都可以使用模拟和数字技术设计,或者混合两种技术设计。但赛灵思器件中的DCM采用全数字化设计。
  由于DCM可以在时钟路径上引入延迟,比如您就可使用DCM可以精确地为DRAM生成行和列访问选通信号的时序。与此类&#20284;,数据总线上的各个数据位可以在不同的时间到达。为了正确对数据位采样,接收端的时钟信号必须适当地与所有数据位的到达保持同步。如果接收器使用发射时钟,可能会要求延迟从发送端到接收端的时钟信号。
  有时设计可能需要一个更高的时钟频率来运行FPGA上的逻辑。但是,只有低频率输出的时钟源可以用。此时可以使用DCM将时钟源的输入时钟信号相乘,生成高频率时钟信号。与此类&#20284;,可以将来自高频率时钟源的输入时钟信号相除,生成低频率时钟信号。这种技术称为“数字频率综合”。
  设计人员使用扩频时钟并通过调制时钟信号来降低时钟信号的峰&#20540;电磁辐射。未经调制的时钟信号的峰&#20540;会产生高电磁辐射。但经调制后,电磁辐射被扩展到一系列时钟频率上,从而降低了所有频点的辐射。一般来说,如果需要满足一定的最大电磁辐射要求和在FPGA上执行高速处理的时候(比如说通信系统中接收器使用的解串器),就需要使用扩频时钟。因此,FPGA中的DCM将乘以输入扩频时钟信号,在内部生成高频时钟信号。 DCM的输出必须准确地跟随扩频时钟,以保持相位和频率对齐并更新去歪斜和相移。DCM相位和频率对齐的恶化会降低接收器的歪斜裕量。
  建立时钟的镜像需要将时钟信号送出FPGA器件,然后又将它接收回来。可以使用这种方法为多种器件的板级时钟信号去歪斜。DCM能够把时钟信号从FPGA发送到另一个器件。这是因为FPGA的输入时钟信号不能直接路由到输出引脚,没有这样的路由路径可用。如果仅需要发送时钟信号,那么使用DCM将时钟信号发送到输出引脚,可以确保信号的保真度。另外也可选择在时钟信号发送之前,将DCM输出连接到ODDR触发器。当然也可以选择不使用DCM,仅使用ODDR 来发送时钟信号。往往时钟驱动器需要将时钟信号驱动到设计的多个组件。这会增大时钟驱动器的负荷,导致出现时钟歪斜及其它问题。在这种情况下,需要采用时钟缓冲来平衡负载。
  时钟可以连接到FPGA上的一系列逻辑块上。为确保时钟信号在远离时钟源的寄存器上有合适的上升和下降时间(从而将输入输出时延控制在允许的范围内),需要在时钟驱动器和负载之间插入时钟缓冲器。DCM可用作时钟输入引脚和逻辑块之间的时钟缓冲器。
  最后,还可以使用DCM将输入时钟信号转换为差分I/O标准信号。例如,DCM可以将输入的LVTTL时钟信号转换为LVDS时钟信号发送出去。
  相位匹配时钟分频器
  设计人员可使用相位匹配时钟分频器(PMCD)来生成相位匹配的分频输入时钟信号。这与分频时钟的DCM频率综合相&#20284;。PMCD还能生成设计中相位匹配但有延迟的时钟信号。在后一种情况下,PCMD能够在输入时钟信号和其它PMCD输入时钟信号之间保持边缘对齐、相位关系和歪斜。与DCM不同的是,在分频器的&#20540;可配置的情况下,赛灵思器件中现有的PMCD生成的时钟信号仅按2、4和8分频。这意味着PMCD生成的时钟信号的频率是输入时钟信号的1/2、1/4和1/8。在如Virtex-4FPGA这样的赛灵思器件中,PMCD紧邻 DCM并与其位于同一列上。每一列有两个PMCD-DCM对。因此DCM的输出可以驱动PMCD的输入。
  由于DCM还负责处理去歪斜,因此只要不需要去歪斜时钟,设计人员就可以使用不带DCM的PMCD。通过专用引脚,还可以把一列中的两个PMCD连接起来。图2是 Virtex-4器件中的PMCD原语。详细内容请参阅Virtex-4FPGA用户指南(UG070,2.6版本)。
混合模式时钟管理器
  另一种类型的时钟资源——混合模式时钟管理器(MMCM),用于在与给定输入时钟有设定的相位和频率关系的情况下,生成不同的时钟信号。不过与DCM不同是,MMCM使用PLL来完成这一工作。Virtex-6FPGA中的时钟管理模块(CMT)有两个MMCM,而Virtex-7中的CMT有一个 MMCM和一个PLL。Virtex-6器件中的MMCM没有扩频功能,因此输入时钟信号上的扩频不会被滤波,将直接被传送给MMCM输出时钟。但 Virtex-7FPGA的MMCM却有扩频功能。
  Virtex-6FPGA中的MMCM要求插入一个校准电路,以便在用户复位或用户断电后确保MMCM正确运行。赛灵思ISE设计套件11.5版本及更高版本能够在设计的MAP阶段自动插入必要的校准电路。若使用赛灵思ISE 的更早版本,则需要使用赛灵思技术支持部提供的设计文件手动插入校准电路。最后需要注意的是,在本移植该设计,以便用ISE11.5版本或更高版本实现时,必须手动移除校准电路,或通过适当设置每个MMCM上的综合属性,禁用自动插入功能。详细介绍请参阅赛灵思答复记录AR#33849。
  对7系列器件中的MMCM就不存在这样的问题,因为这些FPGA只得到ISE13.1版本和更高版本以及新型Vivado设计套件的支持。Virtex-6系列中提供的MMCM间专用走线可便于用户将全局时钟资源用于设计的其余部分。
  图 3显示了Virtex-6FPGA中的MMCM原语。各个端口的详细介绍请参阅Virtex-6FPGA时钟资源用户指南(UG362,2.1版本)。图 4显示了赛灵思7系列FPGA中的MMCM原语,有关详细介绍请参阅7系列FPGA时钟资源用户指南(UG472,1.5版本)。
  锁相环
  设计人员使用锁相环(PLL)主要用于频率综合。使用一个PLL可以从一个输入时钟信号生成多个时钟信号。结合DCM使用,还可以用作抖动滤波器。Spartan-6、Virtex-5和7系列FPGA中都提供有PLL。Spartan-6和 Virtex-5中均有专门的“DCM到PLL”和“PLL到DCM”走线。Spartan-6和Virtex-5中的PLL输出是非扩频的。对这两种器件而言,如果设计使用多个不同时钟,都可以用PLL替代DCM。PLL时钟输出具有宽范的配置范围,而DCM的输出是预定的,不可配置。PLL和DCM的选择还是取决于设计的要求。不过如果相移是必需的,就应该明确地选择DCM。
  同时,7系列器件中的PLL所实现的功能没有 MMCM所实现的多。因此虽然MMCM是建立在PLL架构之上,但7系列器件中也有独立的PLL。图5显示了Virtex-5FPGA中的PLL原语。各个端口的详细介绍请参阅Virtex-5用户指南(UG190,5.4版本)。
  设计移植
  掌握四种主要的时钟资源之间的差异及其在不同器件系列中的可用性非常重要。同时,在不同的系列中,相&#20284;的资源(比如DCM)可能在功能上并不完全相同。例如,Spartan-6FPGA中的DCM支持扩频时钟,但Virtex-5和Virtex-5器件中的DCM就不支持。
  在规划未来设计向更高端系列移植时,除了确保功能,为给定设计选择正确的时钟资源也很重要。如表1所示,Virtex-6和7系列中的MMCM能够与之前系列中的DCM向后兼容。但需要判断在多大程度上支持向后兼容性,因为所有这些时钟资源都具有多功能性,提供与时钟相关的多种不同功能。在制定产品长期发展规划时,必须对兼容性了如指掌。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:40492次
排名:千里之外
原创:63篇
转载:251篇
(35)(31)(22)(3)(59)(162)(3)实践理解应用RTOS各组件
用三极管搭建深度电路系统
物联网安全从小白到大师
开关电源的芯片设计之秘
实战让你秒懂mbed OS
&08-08&20:00
&08-15&20:00
&08-11&20:00
&08-25&10:00
移入鼠标可放大二维码
FPGA设计小Tips:如何正确使用FPGA的时钟资源
来源:南洋理工大学
作者:Sharad Sinha日 09:25
[导读] 赛灵思在其FPGA中提供了丰富的时钟资源,大多数设计人员在他们的FPGA设计中或多或少都会用到。不过对FPGA设计新手来说,什么时候用DCM、PLL、PMCD和MMCM四大类型中的哪一种,让他们颇为困惑。本文为您解惑......
  把握DCM、PLL、PMCD和MMCM知识是稳健可靠的时钟设计策略的基础。赛灵思在其FPGA中提供了丰富的时钟资源,大多数设计人员在他们的FPGA设计中或多或少都会用到。不过对FPGA设计新手来说,什么时候用DCM、PLL、PMCD和MMCM四大类型中的哪一种,让他们颇为困惑。赛灵思现有的FPGA中没有一款同时包含这四种资源(见表1)。
  这四大类中的每一种都针对特定的应用。例如,数字时钟管理器(DCM)适用于实现延迟锁相环(DLL)、数字频率综合器、数字移相器或数字频谱扩展器。 DCM还是镜像、发送或再缓冲时钟信号的理想选择。另一种时钟资源相位匹配时钟分频器(PMCD)可用于实现相位匹配分配时钟或相位匹配延迟时钟。
  锁相环(PLL)和混合模式时钟管理器(MMCM)处理的工作有许多是相同的,比如频率综合、内外部时钟抖动滤波、时钟去歪斜等。这两种资源也可用于镜像、发送或再缓冲时钟信号。
  在深思设计实现细节时,把这些通常用法记在心里,有助于理清时钟选择的思路。对于长期产品发展规划而言,在制定合适的时钟策略时,应考虑各个器件系列之间的兼容性。下面让我们深入了解一下这些时钟资源。
  您可以使用DCM将时钟源的输入时钟信号相乘,生成高频率时钟信号。与此类似,可以将来自高频率时钟源的输入时钟信号相除,生成低频率时钟信号。
  数字时钟管理器
  顾名思义,数字时钟管理器(DCM)是一种用于管理时钟架构并有助于时钟信号成形和操控的模块。DCM内含一个延迟锁相环(DLL),可根据输入时钟信号,去除DCM输出时钟信号的歪斜,从而避免时钟分配延迟。
  DLL 内含一个延迟元件和控制逻辑链路。延迟元件的输出是输入时钟延迟所得。延迟时间取决于延迟元件在延迟链路中的位置。这种延迟体现为针对原始时钟的相位改变或相移,这就是所谓的&数字相移&。图1所示的即为Virtex-4器件中的典型DCM模块。根据Virtex-4FPGA用户指南(UG070,2.6 版本)的介绍,Virtex-4中有三种不同的DCM原语。
  一般来说,DLL与PLL类似。但与PLL不同的是DLL不含压控振荡器(VCO)。PLL会一直存储相位和频率信息,而DLL只存储相位信息。因此,DLL略比PLL稳定。DLL和PLL这两种类型都可以使用模拟和数字技术设计,或者混合两种技术设计。但赛灵思器件中的DCM采用全数字化设计。
  由于DCM可以在时钟路径上引入延迟,比如您就可使用DCM可以精确地为DRAM生成行和列访问选通信号的时序。与此类似,数据总线上的各个数据位可以在不同的时间到达。为了正确对数据位采样,接收端的时钟信号必须适当地与所有数据位的到达保持同步。如果接收器使用发射时钟,可能会要求延迟从发送端到接收端的时钟信号。
  有时设计可能需要一个更高的时钟频率来运行FPGA上的逻辑。但是,只有低频率输出的时钟源可以用。此时可以使用DCM将时钟源的输入时钟信号相乘,生成高频率时钟信号。与此类似,可以将来自高频率时钟源的输入时钟信号相除,生成低频率时钟信号。这种技术称为&数字频率综合&。
  设计人员使用扩频时钟并通过调制时钟信号来降低时钟信号的峰值电磁辐射。未经调制的时钟信号的峰值会产生高电磁辐射。但经调制后,电磁辐射被扩展到一系列时钟频率上,从而降低了所有频点的辐射。一般来说,如果需要满足一定的最大电磁辐射要求和在FPGA上执行高速处理的时候(比如说通信系统中接收器使用的解串器),就需要使用扩频时钟。因此,FPGA中的DCM将乘以输入扩频时钟信号,在内部生成高频时钟信号。 DCM的输出必须准确地跟随扩频时钟,以保持相位和频率对齐并更新去歪斜和相移。DCM相位和频率对齐的恶化会降低接收器的歪斜裕量。
  建立时钟的镜像需要将时钟信号送出FPGA器件,然后又将它接收回来。可以使用这种方法为多种器件的板级时钟信号去歪斜。DCM能够把时钟信号从FPGA发送到另一个器件。这是因为FPGA的输入时钟信号不能直接路由到输出引脚,没有这样的路由路径可用。如果仅需要发送时钟信号,那么使用DCM将时钟信号发送到输出引脚,可以确保信号的保真度。另外也可选择在时钟信号发送之前,将DCM输出连接到ODDR触发器。当然也可以选择不使用DCM,仅使用ODDR 来发送时钟信号。往往时钟驱动器需要将时钟信号驱动到设计的多个组件。这会增大时钟驱动器的负荷,导致出现时钟歪斜及其它问题。在这种情况下,需要采用时钟缓冲来平衡负载。
  时钟可以连接到FPGA上的一系列逻辑块上。为确保时钟信号在远离时钟源的寄存器上有合适的上升和下降时间(从而将输入输出时延控制在允许的范围内),需要在时钟驱动器和负载之间插入时钟缓冲器。DCM可用作时钟输入引脚和逻辑块之间的时钟缓冲器。
  最后,还可以使用DCM将输入时钟信号转换为差分I/O标准信号。例如,DCM可以将输入的LVTTL时钟信号转换为LVDS时钟信号发送出去。
  相位匹配时钟分频器
  设计人员可使用相位匹配时钟分频器(PMCD)来生成相位匹配的分频输入时钟信号。这与分频时钟的DCM频率综合相似。PMCD还能生成设计中相位匹配但有延迟的时钟信号。在后一种情况下,PCMD能够在输入时钟信号和其它PMCD输入时钟信号之间保持边缘对齐、相位关系和歪斜。与DCM不同的是,在分频器的值可配置的情况下,赛灵思器件中现有的PMCD生成的时钟信号仅按2、4和8分频。这意味着PMCD生成的时钟信号的频率是输入时钟信号的1/2、1/4和1/8。在如Virtex-4FPGA这样的赛灵思器件中,PMCD紧邻 DCM并与其位于同一列上。每一列有两个PMCD-DCM对。因此DCM的输出可以驱动PMCD的输入。
  由于DCM还负责处理去歪斜,因此只要不需要去歪斜时钟,设计人员就可以使用不带DCM的PMCD。通过专用引脚,还可以把一列中的两个PMCD连接起来。图2是 Virtex-4器件中的PMCD原语。详细内容请参阅Virtex-4FPGA用户指南(UG070,2.6版本)。
PMCD相关文章
PMCD相关下载
DCM相关文章
DCM相关下载
PLL相关文章
PLL相关下载
赛灵思相关文章
赛灵思相关下载
FPGA相关文章
FPGA相关下载
技术交流、积极发言! 发表评请遵守相关规定。
现在的中国厂商已经不仅仅满足于做白牌厂商,特别是在物联网、创客风潮来袭之时,都期望以之前积累的制造技术与经验抢占风口好位置,正纷纷建立起...
据悉,风力发电机根据运行特征和运行技术一般分为恒速风力发电机和变速风力发电机。恒速风力发电系统具有结构简单、成本低、过载能力强以及运行可...
创新实用技术专题
版权所有 & 深圳华强聚丰电子科技有限公司
电信与信息服务业务经营许可证:粤B2-君,已阅读到文档的结尾了呢~~
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
[电子电路]FPGA全局时钟资源相关原语及使用
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口}

我要回帖

更多关于 xilinx 时钟资源 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信