当前位置:   article > 正文

FPGA-时钟域_fpga 时钟域

fpga 时钟域

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

在时序逻辑中,正是时钟信号将各个存储单元中的数据一级、一级地推动下去,如果时钟信号突然停止,那么整个时序逻辑也将陷入瘫痪,因此时钟就好像时序逻辑的心跳一样,那么重要,却又那么平常的存在着。

一、时钟信号基本特征

1.时钟信号基本特征参数介绍

时钟信号具有什么样的基本特征呢?
对于一个时钟信号来说,最重要的参数就是周期、频率、占空比。
连续两次上升沿或下降沿之间的时间间隔称为时钟信号的周期。
频率一般用小写的英文字符f表示,它和周期互为倒数,f=1/T,例如,如果时钟信号的周期为0.1s,那么其频率为10Hz,表示一秒钟的时间内共包含了时钟信号的10个周期,由此可见,相比于周期参数,频率参数在描述时钟信号变化的快慢程度上更加直观。
占空比等于时钟信号一个周期内逻辑1持续时间与周期时间的比值,对于数字波形来说,波形图上几乎除了逻辑0就是逻辑1,上图中的“高电平”、“低电平”即分别对应了一个时钟周期内逻辑1和逻辑0的持续时间。
除了周期、频率、占空比之外,上升时间与下降时间也是时钟信号中比较重要的特征参数,由于现实中,电容的充、放电都需要一定的时间,因此不同逻辑电平之间的过渡总是需要一个过程的,上升时间就是指时钟信号从逻辑0变化到逻辑1所需要的时间,但是对于理想的时钟,时钟的上升沿就是时钟信号从逻辑0变化到逻辑1需要的瞬间,时钟下降沿就是逻辑1变化到逻辑0需要的时间。

二、时钟信号的分类

按来源分类

按照其来源分,时钟信号可分为外部时钟和内部时钟,而内部时钟又可分为再生时钟、门控时钟、行波时钟,分别介绍如下下。
(1)外部时钟
外部时钟,指时钟信号的来源是在FPGA芯片的外部,通常来说,外部时钟源对FPGA设计是必须的,因为一般FPGA芯片内部没有能够产生供内部逻辑使用的时钟信号的选频和激励电路,所以,我们需要在FPGA芯片的外部使用晶振以及恰当的电阻、电容、电感、三极管等器件,来搭建用于产生时钟信号的电路,并通过FPGA芯片的恰当物理管脚引入到FPGA内部供时序逻辑使用。
(2)内部时钟
1、再生时钟
再生时钟指FPGA内部产生的新时钟,这是以一个输入的时钟信号作为参考,然后在此基础上调整其频率和相位产生的新时钟,目前来说,FPGA芯片内部能够产生时钟信号的模块只有DCM和PLL两个。
2、门控时钟
门控时钟,指的是由组合逻辑产生的时钟,其中,组合逻辑的输入可以全部是数据信号,也可以包含原始时钟信号,由于组合逻辑中的基本单元就是与、或、非门电路,而与门和非门又具有开关性,故该类时钟又称为门控时钟。
3、行波时钟
行波时钟,指的是由于时序逻辑产生的时钟,例如A寄存器的输出如果作为B寄存器的时钟,则A寄存器的输出称为行波时钟。
通常情况下,不建议在FPGA中引入行波时钟,因为这样在FPGA设计中引入新的时钟域。
(2)按波形分
1、连续时钟
连续时钟。从波形图上看,时钟波形是连续的、周期的
2、间歇时钟
间歇时钟,时钟波形存在间断、时有时无
3、不规则时钟
时钟的波形没有固定规律可循,没有固定的周期、频率,也没有固定的占空比,并且还时有时无。

三、时钟域

1.时钟域的概念

时钟域就是时钟信号的“势力范围“,一个时钟域里只能存在一个时钟信号,但是一个时钟信号最多可以对应两个时钟域,当其上升沿和下降沿分别都被一部分资源敏感的时候,而被时钟域所瓜分的资源,就是具有存储功能的各个单元,其中最典型的就是寄存器,要想判断一个寄存器是属于哪一个时钟域的,只要看它的时钟输入端口接的是哪个时钟信号以及敏感哪个边沿即可,时钟信号直接掌控着属于其时钟域内的寄存器们,同时也间接地掌控着一些组合逻辑资源,因为FPGA内部组合逻辑的输入往往是寄存器的输出。因为组合逻辑本身并不直接受时钟信号的控制,因此,要想判断组合逻辑的归属,需要分析它的所有输入,如果一个组合逻辑的所有输入都来自同一个时钟域内的寄存器输出,那么该组合逻辑的输出的变化频率必然跟随该时钟的脉搏跳动,所以该组合逻辑属于该时钟域,否则,该组合逻辑存在异步或跨时钟域问题,因此它不属于任何一个时钟域。

2.时钟树简介

既然是势力范围,那么不同时钟信号的时钟域就有可能不同,时钟的管理方法不同,是时钟树,那么时钟树是如何管理这个时钟域的呢?如果一个时钟域包含了10000个触发器,那么该时钟信号必须要能够同时连接到这10000个触发器的时钟触发输入端,时钟树可以保证时钟信号到达时钟域内不同触发器的时间差最小。
时钟树是保证时钟信号到达时钟域内不同触发器的时间差尽可能小的资源,而不是保证时钟信号到达触发器所消耗时间最短的资源,例如,时钟域内有3个触发器,如果利用时钟树资源,并假设0时刻是时钟信号的初始时刻,那么时钟信号到达这三个触发器的时刻可能为8ns、9ns、8.5ns,而如果不利用时钟书,时钟信号到达这三个触发器的时间可能为2ns、6ns、11ns。

3.时钟树分类

FPGA内部的时钟树资源共有三种,即:全局时钟树、区域时钟树、IO时钟树。
正确地时钟使用方式
这里为大家介绍一下正确地时钟使用方式。
(1)什么情况下时钟应该“上树”
如果一个时钟信号是为FPGA内部的一些逻辑资源提供脉搏的,那么强烈建议让该时钟上树;如果时钟信号的时钟域是在太小,例如仅仅控制若干个触发器,那么也许不利用时钟树,FPGA设计也可能通过时序分析,但是仍然建议使用时钟树,如果时钟信号的时钟域只包括一个触发器,那么也就不存在所谓的时间差了,此时就完全不需要时钟树,如果一个时钟信号仅仅是为FPGA外围的硬件电路提供电路激励,那么无论外部有多少个存储单元需要使用该时钟,都没有必要使用时钟树,因为FPGA内部的时钟树无法延伸到FPGA芯片外部。
(2)如何选择时钟树
如果需要使用时钟树,那么该为时钟域选择哪一类时钟树呢?
也许你会觉得,时钟域大的,选择全局时钟树,时钟域较小的,选择区域时钟树,时钟域特别小的,选择IO时钟树,但是这是错误的!
首先来看IO时钟树,IO时钟树只分布在FPGA的接口资源中,由于它们离IO管脚最近,所以协助FPGA完成一些较高速率的串行数据接收,在经过简单地串并转换之后,以比较低的速率将并行数据丢进FPGA芯片的内部,供其他资源使用,一般来说,每个IO BANK内部会有若干个IO时钟树的资源,因此,IO时钟树虽然覆盖范围小,但是并不是为小规模的时钟域量身定做的,因此FPGA内部的资源也无法使用该时钟树。
再看全局时钟树,由于全局时钟树可以覆盖整个FPGA芯片,因此全局时钟树的个数十分有限,因此全局时钟树的黄金地段,不能滥用,也不能不用,要充分利用。因此再全局时钟树资源不紧缺的情况下,无论时钟域的大小,统一建议使用全局时钟树,因为这样也能够给编译器提供最大的布局布线自由度,从而让时序约束更容易实现。
最后是区域时钟树,区域时钟树的覆盖范围也是相当大的,最大可能到FPGA芯片的几分之一,正常情况下,如果不是全局时钟树资源不够用,一般不建议使用区域时钟树,使用区域时钟树可以让时钟域中资源的分布在物理上更紧凑一些,并且有些功能必须使用区域时钟树和IO时钟树配合完成的,注意相关功能。
(3)时钟信号怎么上树
1)使用全局时钟树资源
方法一,通过正确的物理连接
如果时钟信号是由FPGA芯片的外部产生的,那么我们可以不通过编程就可以实现时钟树资源的分配,因为在FPGA芯片的外围管脚中,有一些专门为全局时钟设计的管脚,可以通过数据手册确定,在制作电路板的时候,可以直接将外部时钟信号通过这些管脚接入FPGA内部,它将自动占用全局时钟树资源。
方法二 通过恰当的代码描述
简单地介绍一下如何使用原语完成时钟信号的“上树”,如果FPGA内部有一个名为innerCLK的时钟信号,想为它分配一个全局时钟树该怎么办呢?
Verilog 代码
wire globalClk;
BUFG onTree(.0( globalClk),.I(innerClk));
按照上述代码处理后,我们就可以在后续的逻辑功能中放心使用上树后的innerClk-globalClk。
2)使用区域时钟树、IO时钟树资源
与全局时钟管脚类似,FPGA芯片的外围管脚中也有专门为区域时钟树和IO时钟设计的专用管脚,我们需要要在代码中进行显式描述,以Xilinx公司为例,利用原语BUFIO,会为这些专用管脚上的信号分配IO时钟树资源,利用原语BUFR,为这些专用管脚上的信号分配区域时钟树资源。
3)被“拉下树”的时钟信号
时钟树是由若干级缓冲器再加一些近似等长的连线组成的,时钟树只能对时钟信号起到一定的传递作用,除此之外别无他用,因此凡是对时钟树上的时钟信号进行任何逻辑操作,来生成一个新的信号,那么新的信号就不位于时钟树上了,如果希望新的信号仍然作为时钟来驱动一些逻辑,那么重新调用相应原语来让新的时钟信号来获得空闲的时钟树资源。
Verilog 代码
//gClkTreeA is on the clock tree
assign midclk0=~gClk0TreeA; //midClk0 is not the clock tree
assign midclk1=en&gClk0nTreeA; //midClk1 is not on the clock tree;
BUFG re0nTree0(.0(gClk0nTreeB),.I(midClk0));
//gClk0nTreeB is on the clock tree
BUFG re0nTree1(.0(gClk0nTreeC),.I(midClk1));
//gClk0nTreeC is on the clock tree

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/993497
推荐阅读
相关标签
  

闽ICP备14008679号