全局时钟资源
目录
全局时钟资源简介
在设计过程中,一般推荐使用同步时序电路。同步时序电路基于时钟触发沿设计,对时钟的周期、占空比、延时、抖动提出了更高的要求。为了满足同步时序设计的要求,一般在FPGA设计中采用全局时钟资源驱动设计的主时钟,以达到最低的时钟抖动和延迟。在Xilinx FPGA中的全局时钟资源一般使用全铜层工艺实现,并设计了专门时钟缓冲和驱动结构,从而使全局时钟到达芯片内部的所有可配置逻辑单元(CLB)、I/O单元(IOB)和选择性块RAM(Block Select ROM)的时延和抖动都为最下。
Xilinx全部时钟资源的使用方法
Xilinx 芯片全局时钟资源的使用方法分为以下5种:
1、IBUFG + BUFG
IBUFG后面连接BUFG的方法是最基本的全局时钟资源的使用方法,由于IBUFG组合BUFG相当于BUFGP,所以这种使用方法也称为BUFGP方法。
在我曾经写过的博文,Buffer三部曲中:【FPGA】Buffer专题介绍(一)
介绍过IBUFG和BUFG这两个原语,官方推荐的使用方法也都是让综合工具自己推断什么时候使用这些原语,这样使用的好处在于代码具有完全的灵活性和可移植性。
2、IBUFGDS + BUFG
这个组合的使用方法和上面的一种方式几乎完全一样,只不过输入时钟信号为差分信号,这时候就必须用IBUFGDS代替IBUFG,也就是说,当输入时钟信号为差分形式时,需要用 IBUFGDS 代替 IBUFG。
上表为IBUFGDS设计输入方法,官方推荐对此原语进行实例化使用,所以设计的时候需要例化一下,使用IBUFGDS把差分信号转换为单端信号,然后经过BUFG。
既然需要例化,那么就直接给出例化模板:
-
// IBUFGDS: Differential Global Clock Input Buffer
-
// 7 Series
-
// Xilinx HDL Libraries Guide, version 14.7
-
IBUFGDS #(
-
.DIFF_TERM("FALSE"), // Differential Termination
-
.IBUF_LOW_PWR("TRUE"), // Low power="TRUE", Highest performance="FALSE"
-
.IOSTANDARD("DEFAULT") // Specify the input I/O standard
-
) IBUFGDS_inst (
-
.O(O), // Clock buffer output
-
.I(I), // Diff_p clock buffer input (connect directly to top-level port)
-
.IB(IB) // Diff_n clock buffer input (connect directly to top-level port)
-
);
-
// End of IBUFGDS_inst instantiation
3、IBUFG + DCM + BUFG
这种方法使用更加灵活,对全局时钟的控制更加有效。通过DCM模块不仅能对时钟进行同步、移相、分频、倍频等变换,而且可以使全局时钟的输出达到无抖动延迟。
4、Logic + BUFG
BUFG 的输入可以是普通信号,当某个信号(时钟、使能、快速路径)的扇出非常大、要求抖动延迟最小时,可以使用 BUFG 来驱动这个信号,使这个信号利用全局时钟资源。
5、Logic + DCM + BUFG
DCM 的输入也可以是普通信号,所以上面的例子中的信号需要倍频、分频等操作时,需要在中间添加 DCM 。
第二全局时钟资源
- 第二全部时钟资源也叫长线资源,它分布在芯片的行、列的栅栏(Bank)上,一般用铜铝工艺,其长度和驱动能力仅次于全局时钟资源。
-
在设计中,一般将高频率、高扇出的时钟使能信号以及高速路径上的关键信号指定为全局第二时钟信号。
-
使用全局时钟资源并不占用逻辑资源,也不影响其他布线资源;第二时钟资源占用的是芯片内部的资源,占用部分逻辑资源,各个部分的布线会相互影响,所以建议在设计中逻辑占用资源不超过70%时使用。
文章来源: reborn.blog.csdn.net,作者:李锐博恩,版权归原作者所有,如需转载,请联系作者。
原文链接:reborn.blog.csdn.net/article/details/81637121
- 点赞
- 收藏
- 关注作者
评论(0)