CN105653748B - 一种时钟树资源的分配方法和时钟树架构 - Google Patents
一种时钟树资源的分配方法和时钟树架构 Download PDFInfo
- Publication number
- CN105653748B CN105653748B CN201410647328.2A CN201410647328A CN105653748B CN 105653748 B CN105653748 B CN 105653748B CN 201410647328 A CN201410647328 A CN 201410647328A CN 105653748 B CN105653748 B CN 105653748B
- Authority
- CN
- China
- Prior art keywords
- clock
- tree
- domain
- cross
- clock tree
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明涉及一种时钟树资源的分配方法和时钟树架构,所述分配方法包括:基于用户设计,根据FPGA中各个时钟线网分布的时钟域数量和/或驱动的寄存器数量,确定所述各个时钟线网的复杂度;将N棵时钟树的资源分别分配给复杂度最高的前N个的时钟线网使用;其中,N为自然数;每棵所述时钟树与全部时钟域相连;确定所述每棵时钟树剩余的未被使用的资源;利用跨时钟域的多路选择器整合所述未被使用的资源,分配给所述各个时钟线网中除所述复杂度最高的前N个的时钟线网之外的其它时钟线网使用。
Description
技术领域
本发明涉及集成电路技术领域,尤其涉及一种时钟树资源的分配方法和时钟树架构。
背景技术
数字电路中,时钟是整个电路最重要、最特殊的信号。第一,系统内大部分器件的动作都是在时钟的跳变沿上进行,这就要求时钟信号时延差要非常小,否则就可能造成时序逻辑状态出错。第二,时钟信号通常是系统中频率最高的信号。第三,时钟信号通常是负载最重的信号,所以要合理分配负载。出于这样的考虑在现场可编程门阵列(Field-Programmable Gate Array,FPGA)这类可编程器件内部一般都设有数量不等的专门用于系统时钟驱动的全局时钟网络。
对于FPGA来说,要尽可能避免异步设计,尽可能采用同步设计。而同步设计的第一个关键,就是时钟树。时钟树,是个由许多缓冲单元(buffer cell)平衡搭建的网状结构,它有一个源点,一般是时钟输入端(clock input port),也有可能是设计内部某一个单元输出脚(cell output pin),然后就是由一级一级的缓冲单元搭建而成,目的是使所用终点的时钟偏移(clock skew)等满足设计要求。
clock skew实际上指的是时钟驱动不同的寄存器时,由于寄存器之间可能会隔得比较远,所以时钟到达不同的寄存器的时间可能会不一样,这个时间差称为clock skew。这种clock skew可以通过时钟树来解决,也就是使时钟布线形成一种树状结构,使得时钟到每一个寄存器的距离是一样的。通常FPGA芯片都布有这样的时钟树结构。
因为FPGA是由许多的逻辑单元构成的,逻辑单元包括门、查找表、和触发器,在出厂之前,FPGA内部元件之间的连线已经完全固定,也就是说时钟树结构已经被预先布好了。所以采用何种方法建立时钟树架构,以及所建立的时钟树的结构,对FPGA的性能有着很大影响。
发明内容
本发明实施例提供了一种时钟树资源的分配方法和时钟树架构,所述分配方法能够对时钟布线进行优化,节约时钟布线资源,提高时钟树的布通率,并有效控制保持时间违例(hold time violation)。
第一方面,本发明实施例提供了一种时钟树资源的分配方法,包括:
根据FPGA中各个时钟线网分布的时钟域数量和/或驱动的寄存器数量,确定所述各个时钟线网的复杂度;
基于用户设计,将N棵时钟树的资源分别分配给复杂度最高的前N个的时钟线网使用;其中,N为自然数;每棵所述时钟树与全部时钟域相连;
确定所述每棵时钟树剩余的未被使用的资源;
利用跨时钟域的多路选择器整合所述未被使用的资源,分配给所述各个时钟线网中除所述复杂度最高的前N个的时钟线网之外的其它时钟线网使用。
优选的,所述整合包括:将一棵时钟树连接的未被使用的时钟域通过至少一级跨时钟域的多路选择器接入所述其他时钟线网。
进一步优选的,所述整合还包括:
基于用户设计,将通用输入/输出I/O管脚输入的多个时钟信号通过至少一级跨时钟域的多路选择器接入所述其他时钟线网。
进一步优选的,当将通用I/O管脚输入的两个或以上的时钟信号接入所述其他时钟线网时,使用至少两级跨时钟域的多路选择器实现。
第二方面,本发明实施例提供了一种时钟树架构,用于实现上述第一方面所述的分配方法;所述时钟树架构包括:相互独立的N棵时钟树和至少一级跨时钟域的多路选择器。
优选的,每一级所述跨时钟域的多路选择器包括一个或多个跨时钟域的多路选择器。
进一步优选的,第一级跨时钟域的多路选择器的输入端连接一颗时钟树,输出端连接全部时钟域。
进一步优选的,当只有一级所述跨时钟域的多路选择器时,所述第一级所述跨时钟域的多路选择器的输入端还连接通用输入/输出I/O管脚输入的多个时钟信号。
进一步优选的,当有多级所述跨时钟域的多路选择器时,所述第一级所述跨时钟域的多路选择器的输入端还与除所述第一级之外的其它级跨时钟域的多路选择器提供的时钟信号相连接。
本发明实施例提供的一种时钟树资源的分配方法,基于时钟线网的复杂度对时钟树的资源进行分配,将时钟树资源优先分配给复杂度高的时钟线网,之后再将时钟树剩余的未被使用的资源,通过跨时钟域的多路选择器进行整合,分配给其他复杂度相对简单的时钟线网。从而更加有效的利用时钟布线资源,优化时钟布线,提高时钟树的布通率,并有效控制保持时间违例。
附图说明
图1为本发明实施例提供的时钟树资源的分配方法示意图;
图2为本发明实施例提供的时钟树架构图;
图3为本发明实施例提供的时钟树资源的分配示意图之一;
图4为本发明实施例提供的时钟树资源的分配示意图之二;
图5为本发明实施例提供的一种时钟树架构。
具体实施方式
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
首先,本发明实施例提供了一种时钟树资源的分配方法,如图1所示,包括如下步骤:
步骤110,基于用户设计,根据FPGA中各个时钟线网分布的时钟域数量和/或驱动的寄存器数量,确定所述各个时钟线网的复杂度;
具体的,基于用户的设计,将FPGA分成很多模块,每个模块有各自的任务,也都需要由时钟来进行驱动。一般来说,FPGA设计都是同步时序电路,所以这些模块采用都是同步时钟信号,这样才能保证时序比较稳定。稳定的时序对于高速的数据处理是很重要的。
FPGA的全局时钟是从晶振分出来的,最原始的频率。其他需要的各种频率都是在这个基础上利用锁相环(phase-locked loop,PLL)或者其他分频手段得到的。因为全局时钟需要驱动很多模块,所以全局时钟引脚需要有很大的驱动能力,FPGA一般都有一些专门的引脚用于作为全局时钟用。
根据用户设计,上述模块与时钟线网相连接,由时钟线网来驱动模块的时序逻辑。模块可以由多个寄存器组成,不同的模块往往工作在不同的频率下,因此可以将由相同频率的一个时钟信号负责的寄存器集合为一个时钟域。优选的,同一时钟域内寄存器的物理分布相接近。其中,每个时钟域可以连接到多个时钟线网。
每个时钟线网可以分布的时钟域多少不一,每个时钟域的寄存器数量多少不一,都是依据用户设计而定。因此,可以根据FPGA用户设计的各个时钟线网分布的时钟域数量和/或驱动的寄存器数量,来确定各个时钟线网的复杂度。
步骤120,将N棵时钟树的资源分别分配给复杂度最高的前N个的时钟线网使用;
具体的,在FPGA中,时钟树结构已经被预先布好了,每棵所述时钟树与全部时钟域相连。具体可以如图2所示。FPGA时钟树架构包括4棵相互独立的时钟树,分别为Clock Treetag 1、Clock Tree tag 2、Clock Tree tag 3和Clock Tree tag 4,它们分别连接到FPGA的全部时钟域Clock Region A、Clock Region B和Clock Region C。
在进行时钟树的资源分配时,首先,根据前步得到的各个时钟线网的复杂度,对时钟树的资源进行分配。
如图3所示,将4棵相互独立的时钟树的资源分别分配给4个复杂度最高的时钟线网(图中标示为时钟线网1、时钟线网2、时钟线网3和时钟线网4)。图3中虚线所示为每个时钟线网占用的时钟树的资源。
步骤130,确定每棵时钟树剩余的未被使用的资源;
具体的,再如图3所示,可以看到在资源分配后,还剩余有Clock Tree tag 1的连到Clock Region C的资源未被占用,Clock Tree tag 3的连到Clock Region A的资源未被占用,Clock Tree tag 4的连到Clock Region A和Clock Region B的资源未被占用。
步骤140,利用跨时钟域的多路选择器整合所述未被使用的资源,分配给所述各个时钟线网中除所述复杂度最高的前N个的时钟线网之外的其它时钟线网使用。
具体的,每棵时钟树上未被使用的时钟域可以分配给其他复杂度较低的时钟线网使用。在本发明中利用跨时钟域的多路选择器(Cross Clock Tree Mux)来整合上述这些未被使用的资源,将这些资源分配给用户设计中复杂度较低的时钟线网。
例如图4所示,将Clock Tree tag 1连接的Clock Region C分配给时钟线网5;将Clock Tree tag 4连接的Clock Region A和Clock Region B分配给时钟线网6;具体的时钟信号接入控制由Cross Clock Tree Mux来完成。
下面以一个单独的例子说明利用Cross Clock Tree Mux整合剩余时钟资源的具体实现方式。图5示出了一种时钟树架构,包括相互独立的8棵时钟树(tag0-tag7)和一级跨时钟域的多路选择器(图中未示出)。
跨时钟域的多路选择器(图中未示出)的输入端连接由FPGA通用输入/输出(I/O)管脚输入的多个时钟信号,为时钟域提供时钟源的信号输入。也就是说,图中Src00-Src72为从FPGA通过普通I/O管脚引入的经过跨时钟域的多路选择器接入时钟域的时钟信号源。而tag0-tag7是由FPGA专用管脚引入的时钟树的时钟信号源。当用户设计需要的时钟种类不超过8种时,可以仅使用tag0-tag7来满足用户设计中对时钟信号的要求。但是如果用户设计需要的时钟种类超过8种时,就需要从Src00-Src72中选择相应的时钟来满足设计需要了。
时钟域在时钟线网的资源分配可以根据用户设计进行。Clock Region 0-ClockRegion 7中每个时钟域都与tag0-tag7以及Src00-Src72相连接。具体可以根据用户设计,通过8个连接在时钟源和时钟域之间的4选1选通器(4-1Mux)来实现。
在本例中,对每个时钟域的时钟信号分配可以如下表1所示。
表1
表1中1-46的数字表示46个跨时钟域的多路选择器。比如占用Clock Region 0资源的时钟线网的时钟源可以是tag1、tag3以及标号为21的跨时钟域的多路选择器输出的时钟源,也可以是tag2以及标号为24和34的跨时钟域的多路选择器输出的时钟源。(以上所用时钟源标号仅为举例说明)
优选的,当用到两个以上非专用时钟信号管脚输入的时钟源时,可以采用两级跨时钟域的多路选择器,以减小不同时钟源之间的时钟偏移。
需要说明的是,在仅采用一级跨时钟域的多路选择器时,该级跨时钟域的多路选择器可以是虚拟的,也就是说,时钟信号可以是由专用时钟信号输入管脚和普通I/O管脚直接输入,或者从FPGA内普通的传输线上连接到4选1选通器的选通信号输入端。
另外,在本例中,采用8个4选1选通器和46个跨时钟域的多路选择器的架构是可以改变的,在其他例子中可以在本例的基础上进行变化,如采用2选1选通器替代本例中的4选1选通器,选通器的个数和多路选择器的个数也可以根据需要进行配置,只要采用了本发明的构想,都应包含在本发明的保护范围之内。
因此,本发明实施例提供的一种时钟树资源的分配方法,基于时钟线网的复杂度对时钟树的资源进行分配,将时钟树资源优先分配给复杂度高的时钟线网,之后再将时钟树剩余的未被使用的资源,通过跨时钟域的多路选择器进行整合,分配给其他复杂度相对简单的时钟线网,从而对现有的时钟布线进行优化,从而更加有效的利用时钟布线资源,提高时钟树的布通率,并有效控制保持时间违例。
相应的,本发明实施例还提供了一种时钟树架构,用以实现上述时钟树资源的分配方法,包括相互独立的N棵时钟树和至少一级跨时钟域的多路选择器。
时钟树架构的具体实现方式可如图5所示,上述已经进行了说明,此处不再赘述。当然,还可以根据需要在此架构基础上进行变化,此处不再一一例举。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种时钟树资源的分配方法,其特征在于,所述分配方法包括:
基于用户设计,根据FPGA中各个时钟线网分布的时钟域数量和/或驱动的寄存器数量,确定所述各个时钟线网的复杂度;
将N棵时钟树的资源分别分配给复杂度最高的前N个的时钟线网使用;其中,N为自然数;每棵所述时钟树与全部时钟域相连;
确定所述每棵时钟树剩余的未被使用的资源;
利用跨时钟域的多路选择器整合所述未被使用的资源,分配给所述各个时钟线网中除所述复杂度最高的前N个的时钟线网之外的其它时钟线网使用;
其中,所述整合包括:将一棵时钟树连接的未被使用的时钟域通过至少一级跨时钟域的多路选择器接入所述其它时钟线网。
2.根据权利要求1所述的方法,其特征在于,所述整合还包括:
基于用户设计,将通用输入/输出I/O管脚输入的多个时钟信号通过至少一级跨时钟域的多路选择器接入所述其它 时钟线网。
3.根据权利要求2所述的方法,其特征在于,当将通用I/O管脚输入的两个或以上的时钟信号接入所述其它 时钟线网时,使用至少两级跨时钟域的多路选择器实现。
4.一种时钟树架构,其特征在于,所述时钟树架构用于实现上述权利要求1所述的分配方法;所述时钟树架构包括:相互独立的N棵时钟树和至少一级跨时钟域的多路选择器。
5.根据权利要求4所述的时钟树架构,其特征在于,每一级所述跨时钟域的多路选择器包括一个或多个跨时钟域的多路选择器。
6.根据权利要求5所述的时钟树架构,其特征在于,第一级跨时钟域的多路选择器的输入端连接一颗时钟树,输出端连接全部时钟域。
7.根据权利要求6所述的时钟树架构,其特征在于,当只有一级所述跨时钟域的多路选择器时,所述第一级所述跨时钟域的多路选择器的输入端还连接通用输入/输出I/O管脚输入的多个时钟信号。
8.根据权利要求6所述的时钟树架构,其特征在于,当有多级所述跨时钟域的多路选择器时,所述第一级所述跨时钟域的多路选择器的输入端还与除所述第一级之外的其它级跨时钟域的多路选择器提供的时钟信号相连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410647328.2A CN105653748B (zh) | 2014-11-14 | 2014-11-14 | 一种时钟树资源的分配方法和时钟树架构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410647328.2A CN105653748B (zh) | 2014-11-14 | 2014-11-14 | 一种时钟树资源的分配方法和时钟树架构 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105653748A CN105653748A (zh) | 2016-06-08 |
CN105653748B true CN105653748B (zh) | 2019-03-08 |
Family
ID=56479869
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410647328.2A Active CN105653748B (zh) | 2014-11-14 | 2014-11-14 | 一种时钟树资源的分配方法和时钟树架构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105653748B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107734375B (zh) * | 2017-09-22 | 2019-11-08 | 北京嗨动视觉科技有限公司 | 视频源同步时钟产生方法及装置 |
CN114265701B (zh) * | 2022-03-01 | 2022-06-28 | 深圳思谋信息科技有限公司 | 资源处理方法、装置、计算机设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006132639A1 (en) * | 2005-06-07 | 2006-12-14 | The Regents Of The University Of California | Circuit splitting in analysis of circuits at transistor level |
CN101533420A (zh) * | 2008-03-11 | 2009-09-16 | 矽统科技股份有限公司 | 时钟树状结构中路径时间延迟量的平衡方法 |
CN102169515A (zh) * | 2010-02-26 | 2011-08-31 | 国际商业机器公司 | 一种专用集成电路中时钟树延迟时间的估计方法和系统 |
CN102799698A (zh) * | 2011-05-26 | 2012-11-28 | 国际商业机器公司 | 一种用于专用集成电路的时钟树规划的方法和系统 |
CN104052488A (zh) * | 2013-03-15 | 2014-09-17 | 美国亚德诺半导体公司 | 数据转换器的有效时钟树 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7096442B2 (en) * | 2003-07-10 | 2006-08-22 | Lsi Logic Corporation | Optimizing IC clock structures by minimizing clock uncertainty |
US7296251B2 (en) * | 2004-05-25 | 2007-11-13 | International Business Machines Corporation | Method of physical planning voltage islands for ASICs and system-on-chip designs |
-
2014
- 2014-11-14 CN CN201410647328.2A patent/CN105653748B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006132639A1 (en) * | 2005-06-07 | 2006-12-14 | The Regents Of The University Of California | Circuit splitting in analysis of circuits at transistor level |
CN101533420A (zh) * | 2008-03-11 | 2009-09-16 | 矽统科技股份有限公司 | 时钟树状结构中路径时间延迟量的平衡方法 |
CN102169515A (zh) * | 2010-02-26 | 2011-08-31 | 国际商业机器公司 | 一种专用集成电路中时钟树延迟时间的估计方法和系统 |
CN102799698A (zh) * | 2011-05-26 | 2012-11-28 | 国际商业机器公司 | 一种用于专用集成电路的时钟树规划的方法和系统 |
CN104052488A (zh) * | 2013-03-15 | 2014-09-17 | 美国亚德诺半导体公司 | 数据转换器的有效时钟树 |
Non-Patent Citations (1)
Title |
---|
《ASIC后端设计中的时序偏差以及时钟综合》;唐振宇;《电子设计应用》;20031030;第18-19页,图3 |
Also Published As
Publication number | Publication date |
---|---|
CN105653748A (zh) | 2016-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106992770B (zh) | 时钟电路及其传输时钟信号的方法 | |
CN103105889B (zh) | 一种fpga原型验证板堆叠的时钟同步装置及系统 | |
US7505548B2 (en) | Circuits and methods for programmable integer clock division with 50% duty cycle | |
US9768783B1 (en) | Methods for operating configurable storage and processing blocks at double and single data rates | |
US7245168B2 (en) | Clock selection circuit and digital processing system for reducing glitches | |
US7668022B2 (en) | Integrated circuit for clock generation for memory devices | |
US7586337B2 (en) | Circuit for switching between two clock signals independently of the frequency of the clock signals | |
US6266780B1 (en) | Glitchless clock switch | |
US20070260778A1 (en) | Memory controller with bi-directional buffer for achieving high speed capability and related method thereof | |
US9875330B2 (en) | Folding duplicate instances of modules in a circuit design | |
CN106209075B (zh) | 数字延迟单元与信号延迟电路 | |
US8578074B2 (en) | First in first out device and method thereof | |
US10284185B1 (en) | Selectively providing clock signals using a programmable control circuit | |
CN105653748B (zh) | 一种时钟树资源的分配方法和时钟树架构 | |
CN104795091B (zh) | 在fpga中实现zbt读写的时序稳定度的系统及方法 | |
US9478272B1 (en) | Configurable storage blocks with embedded first-in first-out and last-in first-out circuitry | |
CN115714597A (zh) | 一种通用的pll时钟控制电路和soc芯片 | |
US8812893B1 (en) | Apparatus and methods for low-skew channel bonding | |
CN104268352B (zh) | 一种fpga实现中时钟歪斜的快速修复方法 | |
CN117435016A (zh) | 一种复位电路的设计方法 | |
US8970267B2 (en) | Asynchronous clock dividers to reduce on-chip variations of clock timing | |
WO2022262570A1 (zh) | 时钟管理电路、芯片及电子设备 | |
US10921848B2 (en) | Clock signal distribution and signal value storage | |
US7206369B2 (en) | Programmable feedback delay phase-locked loop for high-speed input/output timing budget management and method of operation thereof | |
US11139904B2 (en) | Clock domain crossing buffer |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |