CN112257368B - 时钟布局方法、装置、eda工具及计算机可读存储介质 - Google Patents

时钟布局方法、装置、eda工具及计算机可读存储介质 Download PDF

Info

Publication number
CN112257368B
CN112257368B CN201910590166.6A CN201910590166A CN112257368B CN 112257368 B CN112257368 B CN 112257368B CN 201910590166 A CN201910590166 A CN 201910590166A CN 112257368 B CN112257368 B CN 112257368B
Authority
CN
China
Prior art keywords
clock
global
available
domain
clocks
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
Application number
CN201910590166.6A
Other languages
English (en)
Other versions
CN112257368A (zh
Inventor
王似飞
杨琼华
陈富强
徐烈伟
吴昌
李小南
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Fudan Microelectronics Group Co Ltd
Original Assignee
Shanghai Fudan Microelectronics Group Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Fudan Microelectronics Group Co Ltd filed Critical Shanghai Fudan Microelectronics Group Co Ltd
Priority to CN201910590166.6A priority Critical patent/CN112257368B/zh
Publication of CN112257368A publication Critical patent/CN112257368A/zh
Application granted granted Critical
Publication of CN112257368B publication Critical patent/CN112257368B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

一种时钟布局方法、装置、EDA工具及计算机可读存储介质,所述方法包括:在时钟源布局结束后,且FPGA器件上提供的时钟资源小于或等于所需时钟资源时,初始化所述FPGA器件上所有全局时钟的可用时钟域集及代价;基于初始化的结果,判断所述FPGA器件上是否存在时钟资源溢出的时钟域;当存在时钟资源溢出的时钟域时,对所述存在时钟资源溢出的时钟域内的全局时钟进行时钟约束,直至所述FPGA器件上各个时钟域内均没有时钟资源溢出。采用上述方案,可以缩短时钟布局所需的时间,并且可以提高布局整体质量。

Description

时钟布局方法、装置、EDA工具及计算机可读存储介质
技术领域
本发明涉及FPGA设计技术领域,具体涉及一种时钟布局方法、装置、EDA工具及计算机可读存储介质。
背景技术
随着现场可编程门阵列(Field-Programmable Gate Array,FPGA)器件规模的扩大,FPGA器件的结构变得更复杂,设计流程中愈发依赖对电子设计自动化(Electronicdesign automation,EDA)工具的使用。
其中,使用EDA工具设计FPGA器件时,布局是最重要且最耗时的一项工作。布局的目的在于:给电路中的每一个逻辑单元在芯片上提供合法化的物理位置,并且最优化线长、时延等指数。合法化的物理位置,需要满足特定的约束条件,例如逻辑资源不溢出、输入输出(IO)单元与时钟单元之间的逻辑连接约束及时钟约束等。而如何满足时钟约束条件,即如何进行时钟布局,是最需要解决的一个问题。
时钟布局所要解决的核心问题是:如何把用户给定电路中的时钟单元,放到FPGA器件上兼容的时钟资源上。
目前,对FPGA器件进行时钟布局时,通常基于对FPGA器件全局布局后的结果,对存在时钟资源溢出的时钟域内的全局时钟做进一步的时钟域约束,并指导下一次迭代过程中全局时钟的可摆放时钟域。
然而,采用上述方法进行时钟布局时,所需时间较长。
发明内容
本发明要解决的问题是:如何缩短时钟布局所需的时间。
为解决上述问题,本发明实施例提供了一种时钟布局方法,所述方法包括:在时钟源布局结束后,且FPGA器件上提供的时钟资源小于或等于所需时钟资源时,初始化所述FPGA器件上所有全局时钟的可用时钟域集及代价;基于初始化的结果,判断所述FPGA器件上是否存在时钟资源溢出的时钟域;当存在时钟资源溢出的时钟域时,对所述存在时钟资源溢出的时钟域内的全局时钟进行时钟约束,直至所述FPGA器件上各个时钟域内均没有时钟资源溢出。
可选地,对每个所述存在时钟资源溢出的时钟域内的全局时钟进行时钟约束,包括:从所述存在时钟资源溢出的时钟域内选取两条全局时钟;对所选取的两条全局时钟进行可用时钟域约束,并判断所述可用时钟域约束是否可行;若所述可用时钟域约束可行,则更新所选取的两条全局时钟的可用时钟域集及代价,并重复判断所述存在时钟资源溢出的时钟域是否仍存在时钟资源溢出,否则从所述存在时钟资源溢出的时钟域内重新选取两条全局时钟,并进行可用时钟域约束,直至对所选取的两条全局时钟进行的可用时钟域约束可行。
可选地,所选取的两条全局时钟满足以下条件:所选取的两条全局时钟中至少一条未被选取过;所选取的两条全局时钟的可用时钟域集的交集不为空;所选取的两条全局时钟的可用时钟域集的并集为所述FPGA器件上的所有时钟域的集合。
可选地,所选取的两条全局时钟还满足以下条件:所选取的两条全局时钟,为所在的时钟域内可选取的全局时钟中,代价之和最小的两条全局时钟。
可选地,所述对所选取的两条全局时钟进行可用时钟域约束,并判断所述可用时钟域约束是否可行,包括:按照包含的逻辑资源数量,对所选取的两条全局时钟的可用时钟域集的交集进行划分,使得所述FPGA器件上所有时钟域均不存在时钟溢出;按照划分后可用时钟域集,判断所述FPGA器件上是否存在逻辑资源溢出;若所述FPGA器件上不存在逻辑资源溢出,则所述可用时钟域约束可行,否则,所述可用时钟域约束不可行。
可选地,所述按照包含的逻辑资源数量,对所选取的两条全局时钟的可用时钟域集的交集进行划分,使得所述FPGA器件上所有时钟域均不存在时钟溢出,包括:将所述FPGA器件上所有时钟域集合的任意连续子集内对应的第一逻辑资源的数量,和第一权重乘积的结果,与所述连续子集完全包含的全局时钟所拥有的第一逻辑资源的数量进行比较,判断所述FPGA器件上是否存在逻辑资源溢出;其中,所述第一权重,与所述连续子集对应的第一逻辑资源的数量相对应,且取值范围为(0,1);所述第一逻辑资源为所述连续子集内任意一种逻辑资源。
可选地,所述按照包含的逻辑资源数量,对所选取的两条全局时钟的可用时钟域集的交集进行划分,使得所述FPGA器件上所有时钟域均不存在时钟溢出,包括:按照包含的逻辑资源数量,对所选取的两条全局时钟的可用时钟域集的交集进行多次划分,使得每次划分后所述FPGA器件上所有时钟域可放置全局时钟的数量均减1,直至所述FPGA器件上所有时钟域均不存在时钟溢出。
可选地,所述按照包含的逻辑资源数量,对所选取的两条全局时钟的可用时钟域集的交集进行多次划分,包括:选择布局代价最小的划分方式,对所选取的两条全局时钟的可用时钟域集的交集进行划分。
可选地,所述全局时钟的代价,与所述全局时钟当前的可用时钟域的数量、所述全局时钟包含的逻辑资源的数量、所述全局时钟在时钟源布局结束后对应的边界框的面积,以及与所述全局时钟存在逻辑连接的全局时钟的数量相关。
可选地,采用以下公式计算所述FPGA器件上全局时钟Ni的代价Hi
其中,Pi表示全局时钟Ni的当前可用时钟域的数量,Ke表示全局时钟Ni包含的逻辑资源e的个数,we为逻辑资源e的权重,Bi表示全局时钟Ni在时钟源布局结束后对应的边界框面积,Li表示与全局时钟Ni存在逻辑连接的全局时钟数量;E为全局时钟Ni包含的逻辑资源的种类的数量;wB为边界框面积Bi的权重;wL为全局时钟数量Li的权重。
可选地,初始化所述FPGA器件上所有全局时钟的可用时钟域集,包括:
初始化所述FPGA器件上所有全局时钟的可用时钟域集均为所述FPGA器件上所有时钟域的集合。
本发明实施例还提供了一种时钟布局装置,所述时钟布局装置包括:初始化单元,适于在时钟源布局结束后,且FPGA器件上提供的时钟资源小于或等于所需时钟资源,初始化所述FPGA器件上所有全局时钟的可用时钟域集及代价;判断单元,适于基于初始化的结果,判断所述FPGA器件上是否存在时钟资源溢出的时钟域;时钟约束单元,适于当存在时钟资源溢出的时钟域时,对所述存在时钟资源溢出的时钟域内的全局时钟进行时钟约束,直至所述FPGA器件上各个时钟域内均没有时钟资源溢出。
可选地,所述时钟约束单元包括:选取子单元,适于从所述存在时钟资源溢出的时钟域内选取两条全局时钟;时钟约束子单元,适于对所选取的两条全局时钟进行可用时钟域约束,并判断所述可用时钟域约束是否可行;更新子单元,适于在所述可用时钟域约束可行时,更新所选取的两条全局时钟的可用时钟域集及代价,使得所述判断单元重新判断所述存在时钟资源溢出的时钟域是否仍存在时钟资源溢出;所述选取子单元,还适于在所述可用时钟域约束不可行时,重新选取两条全局时钟,使得所述时钟约束子单元对重新选取的全局时钟进行可用时钟域约束,直至对所选取的两条全局时钟进行的可用时钟域约束可行。
可选地,所选取的两条全局时钟满足以下条件:所选取的两条全局时钟中至少一条未被选取过;所选取的两条全局时钟的可用时钟域集的交集不为空;所选取的两条全局时钟的可用时钟域集的并集为所述FPGA器件上的所有时钟域的集合。
可选地,所选取的两条全局时钟还满足以下条件:所选取的两条全局时钟,为所在的时钟域内可选取的全局时钟中,代价之和最小的两条全局时钟。
可选地,所述时钟约束子单元,包括:时钟域划分模块,适于按照包含的逻辑资源数量,对所选取的两条全局时钟的可用时钟域集的交集进行划分,使得所述FPGA器件上所有时钟域均不存在时钟溢出;判断模块,适于按照划分后可用时钟域集,判断所述FPGA器件上是否存在逻辑资源溢出;若所述FPGA器件上不存在逻辑资源溢出,则所述可用时钟域约束可行,否则,所述可用时钟域约束不可行。
可选地,所述判断模块,适于将所述FPGA器件上所有时钟域集合的任意连续子集内对应的第一逻辑资源的数量,和第一权重乘积的结果,与所述连续子集完全包含的全局时钟所拥有的第一逻辑资源的数量进行比较,判断所述FPGA器件上是否存在逻辑资源溢出;
其中,所述第一权重,与所述连续子集对应的第一逻辑资源的数量相对应,且取值范围为(0,1);所述第一逻辑资源为所述连续子集内任意一种逻辑资源。
可选地,所述时钟域划分模块,适于按照包含的逻辑资源数量,对所选取的两条全局时钟的可用时钟域集的交集进行多次划分,使得每次划分后所述FPGA器件上所有时钟域可放置全局时钟的数量均减1,直至所述FPGA器件上所有时钟域均不存在时钟溢出。
可选地,所述时钟域划分模块,适于选择布局代价最小的划分方式,对所选取的两条全局时钟的可用时钟域集的交集进行划分。
可选地,所述全局时钟的代价,与所述全局时钟当前的可用时钟域的数量、所述全局时钟包含的逻辑资源的数量、所述全局时钟在时钟源布局结束后对应的边界框的面积,以及与所述全局时钟存在逻辑连接的全局时钟的数量相关。
可选地,所述初始化单元,适于初始化所述FPGA器件上所有全局时钟的可用时钟域集均为所述FPGA器件上所有时钟域的集合。
本发明实施例还提供了一种EDA工具,所述EDA工具包括上述任一种所述的时钟布局装置。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机指令,其特征在于,所述计算机指令运行时执行上述任一种所述方法的步骤。
与现有技术相比,本发明实施例的技术方案具有以下优点:
应用本发明的方案,在时钟源布局结束后,只要FPGA器件上提供的时钟资源小于或等于所需时钟资源,即可进行时钟布局,无需等到全局布局结束后才能进行时钟布局,由此不仅可以避免无法寻找到把全局时钟限制在某个时钟域集合内而不产生逻辑资源溢出的约束,而且可以避免将溢出的全局时钟被约束到其它同样溢出的时钟域内的情况,最终实现快速地为所有全局时钟进行时钟约束并且不产生任何时钟资源溢出。并且,采用本发明的方案,不仅可以避免破坏全局布局的结果,而且可以最大化利用时钟源布局的结果,即最大化保持时钟源布局所产生的逻辑单元的位置,并且留给后续的全局布局足够大的优化空间,提高布局整体质量。
进一步,采用本发明的方案,从时钟域内可选取的全局时钟中,优选选取代价之和最小的两条全局时钟进行可用时钟域约束,后续在基于该可用时钟域约束结果进行布局时所需代价也就最小,鲁棒性也就更高。
进一步,通过将第一全局时钟可用时钟域集内对应所述FPGA器件上第一逻辑资源的数量,和对应权重乘积的的结果,与所述第一全局时钟可用时钟域集完全包含的全局时钟所拥有的第一逻辑资源的数量进行比较,来判断所选取的两条全局时钟所在的时钟域是否存在逻辑资源溢出,可以为每个时钟域保留足量的空白区域来减少布线阻塞,提高布通率。
进一步,由于每次划分后所述FPGA器件上所有时钟域可放置全局时钟的数量均减1,并且,初始化时所有时钟域内可放置全局时钟的数量相等,故后续布局过程中,所有时钟域的可放置全局时钟数将一直保持相等,并且,在消除时钟资源溢出后,所有时钟域内提供的时钟资源均等于所需时钟资源,由此可以最大化每个时钟域内时钟资源的潜在利用率,最大化全局时钟的可用时钟域范围,从而给后续的整体布局更大的优化范围。
进一步,基于与所述全局时钟当前的可用时钟域的数量、所述全局时钟包含的逻辑资源的数量、所述全局时钟在时钟源布局结束后对应的边界框的面积,以及与所述全局时钟存在逻辑连接的全局时钟的数量,来计算全局时钟的代价,可以使得全局时钟代价的计算准确性更高,进而基于全局时钟的代价,对所选取的两条全局时钟的可用时钟域集的交集进行划分时,效率也就更高,最终可以进一步缩短时钟布局所需时间。
附图说明
图1是FPGA器件上一种时钟域阵列及IO列的分布示意图;
图2是时钟域阵列上一种时钟布线阵列及时钟分布阵列的分布示意图;
图3是本发明实施例中时钟布局方法的流程图;
图4是本发明实施例中一种对存在时钟资源溢出的时钟域内的全局时钟进行时钟约束的方法的流程图;
图5是本发明实施例中一种FPGA器件上时钟域的划分示意图;
图6是本发明实施例中一种对存在时钟资源溢出的时钟域内的全局时钟进行时钟约束的示意图;
图7是本发明实施例中一种时钟布局装置的结构示意图。
具体实施方式
在实际应用中,FPGA器件上设置有多个IO单元及多个时钟域(clock region)。如图1所示,若干IO单元组成一列,即IO列11。若干时钟域组成一列,即时钟域阵列12。
其中,所述IO列11中包含IO端口及全局时钟(clock source),时钟域阵列12中图2中所示的时钟布线阵列(clock routing track)121、时钟分布阵列(clock distributiontrack)122及时钟负载(clock loads)(未示出)。IO列11中的全局时钟先经过时钟布线阵列121,再经过时钟分布阵列122,到达时钟负载的时钟端口,进而驱动时钟负载。所述时钟负载可以包括:D类型触发器、数字信号处理器(Digital Signal Processing,DSP)及随机存取存储器(Random Access Memory,RAM)、基本可编程逻辑单元(SLICE)等。
其中,按照逻辑相对位置和逻辑功能,用户给定电路中的时钟单元包括:全局时钟及时钟负载。具体地,全局时钟产生时钟信号,并且使用时钟树(clock tree)的结构生成定向的时钟网络(clock net)。时钟负载是一种时序逻辑单元,它接收全局时钟发出的时钟信号并捕捉输入信号。全局时钟是时钟树的根节点,时钟树的所有叶子节点都是时钟负载。
在实际应用中,FPGA的布局过程主要包括如下步骤:1)IO布局;2)时钟源布局;3)全局布局;4)合法化布局;5)细节布局。
其中,在IO布局中,根据IO之间的兼容信息,为所有的IO找到合法的位置,并满足IO之间的约束,如IO标准的兼容性及功能的兼容性等。在时钟源布局中,
由于全局时钟的规模往往介于IO规模和时钟负载规模之间,故所谓时钟源布局,即将全局时钟被分配到器件上有限的时钟资源上。由于IO与时钟源之间往往要满足特定的、复杂的规则,IO布局与时钟布局往往同时进行。
所谓全局布局,即把布局问题建模为二次规划问题或迭代形式的线性规划问题,并使用求解器获得时钟负载单元以及非时序逻辑单元的坐标,这些坐标往往是以浮点数的形式存在,在FPGA器件上是非合法化的位置。
合法化全局布局产生的非合法化坐标,即为所有时钟负载和所有非时序单元在器件上找到合法化的物理位置。在满足合法化的前提下,对某些逻辑单元做位置交换,进一步优化线长、时序等指数,即所谓细节布局。
由于IO端口直接驱动全局时钟,并且IO端口与全局时钟的连接往往需要依赖于器件的逻辑连接约束,所以全局时钟的布局往往与IO布局一并在布局的早期阶段完成,而一旦IO和全局时钟的位置确定,布局的后续阶段无法对这些单元的位置进行变动。时钟负载的布局往往与非时序逻辑单元的布局一同融入到整体的布局流程中。
时钟布局的结果需要满足以下条件:
1)每个时钟域内的全局时钟的数量不超过对应时钟域内的时钟资源所支持的全局时钟的数量;
2)每个时钟域内有足够的逻辑资源容纳分配到此时钟域内的所有时钟负载;
3)尽量使得每个全局时钟包含的所有时钟负载单元分配到物理上连续的时钟域集内。
现有时钟布局的方法,是在全局布局后计算每个时钟域内的全局时钟的数量。如果存在全局时钟资源溢出,则通过把溢出的全局时钟约束到其它时钟域中,迭代进行此过程,每次迭代时都会遵守之前迭代过程中所添加的约束条件,直到所有的时钟域都不存在全局时钟资源溢出。
上述方法有以下几种缺点:1、由于全局布局结果是针对线长、时延等指标做最优化的结果,而把溢出的全局时钟及其所包含的所有时钟负载暴力地约束到其它时钟域集合内,破坏了全局布局的结果,会使得线长、时延结果变差;2、在高资源利用率的电路中,由于FPGA器件上的资源已经被充分利用,对于包含大量时钟负载的全局时钟,可能无法寻找到把其限制在某个时钟域集合内而不产生逻辑资源溢出的约束。3、溢出的全局时钟可能被约束到其他同样溢出的时钟域内,从而出现乒乓效应,但却没有额外的约束来处理这种情况。
针对该问题,本发明提供了一种时钟布局方法,在时钟源布局结束后,只要FPGA器件上提供的时钟资源小于或等于所需时钟资源,即可进行时钟布局,无需等到全局布局结束后才能进行时钟布局,由此不仅可以避免无法寻找到把全局时钟限制在某个时钟域集合内而不产生逻辑资源溢出的约束,而且可以避免将溢出的全局时钟被约束到其它同样溢出的时钟域内的情况,最终实现快速地为所有全局时钟进行时钟约束并且不产生任何时钟资源溢出。并且,采用本发明的方案,不仅可以避免破坏全局布局的结果,而且可以最大化利用时钟源布局的结果,即最大化保持时钟源布局所产生的逻辑单元的位置,并且留给后续的全局布局足够大的优化空间。
为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例作详细地说明。
参照图3,本发明实施例提供了一种时钟布局方法,所述方法可以包括以下步骤:
步骤31,在时钟源布局结束后,且FPGA器件上提供的时钟资源小于或等于所需时钟资源时,初始化所述FPGA器件上所有全局时钟的可用时钟域集及代价。
在具体实施中,为了在FPGA器件上实现用户给定电路的功能,可以先对FPGA器件进行IO布局,再进行时钟源布局。时钟源布局后,一旦FPGA器件上提供的时钟资源小于或等于所需时钟资源,即可利用本发明的时钟布局方法进行时钟布局。可以理解的是,FPGA器件上提供的时钟资源小于或等于所需时钟资源的情况,可能发生在全局布局前,也可能发生在全局布局过程中,或者全局布局后,具体不作限制。
在具体实施中,FPGA器件上提供的时钟资源小于或等于所需时钟资源,即FPGA器件上存在时钟资源溢出。比如,FPGA器件上提供的时钟资源支持24个全局时钟,但用户给定电路需要支持25个全局时钟的时钟资源,此时,FPGA器件上提供的时钟资源小于所需时钟资源,存在时钟资源溢出。若FPGA器件上提供的时钟资源大于所需时钟资源,则可直接进行后续布局,无需进行本发明实施例中的时钟布局。
若FPGA器件上提供的时钟资源小于或等于所需时钟资源,可以先初始化所述FPGA器件上所有全局时钟的可用时钟域集及代价。
其中,初始化全局时钟的可用时钟域集的方法存在多种,比如部分或全部全局时钟的可用时钟域集为FPGA器件上所有时钟域集合的子集。
为了便于时钟布局,降低时钟布局复杂度,在本发明的一实施例中,初始化所述FPGA器件上所有全局时钟的可用时钟域集均为所述FPGA器件上所有时钟域的集合。
步骤32,基于初始化的结果,判断所述FPGA器件上是否存在时钟资源溢出的时钟域。
在具体实施中,初始化所述FPGA器件上所有全局时钟的可用时钟域集及代价后,判断所述FPGA器件上是否存在时钟资源溢出的时钟域,也就是判断FPGA器件上任意时钟域内全局时钟的数量,是否存在超过该时钟域内的时钟资源所支持的全局时钟的数量。其中,所述时钟资源包括FPGA器件上的走线等。
假设所述FPGA器件上共划分R个时钟域,全局时钟的数量为N个。初始化FPGA器件上所有全局时钟的可用时钟域集为所有时钟域的集合,即每个全局时钟的可用时钟域集的大小均包括R个时钟域。此时,对于任一时钟域Rj,由于所有全局时钟的可用时钟域集内均包含时钟域Rj,则时钟域Rj内可放置的全局时钟的数量Qj=N。
若时钟域Rj内的时钟资源所支持的全局时钟的数量为C,则判断时钟域Rj内是否存在时钟资源溢出,即判断此时钟域Rj的可放置全局时钟的数量Qj的大小是否超过此时钟域内的时钟资源所指出的全局时钟的数量C。
当|Qj|>C时,时钟域Rj内存在时钟资源溢出,且时钟资源溢出数=|Qj-C|;当|Qj|<=C时,时钟域Rj内不存在时钟资源溢出,即时钟资源溢出数=0。例如,当|N|=16,C=12时,则初始化后,对任意时钟域Rj,|Qj|==16,每个时钟域的时钟资源溢出数为4。
值得注意的是,此处对于某个时钟域存在时钟资源溢出的定义,仅仅表示基于此时钟域约束的物理实现后产生时钟资源溢出的可能性。如果初始化后所有全局时钟的可用时钟域集均包括R个时钟域,则每个时钟域都存在时钟资源溢出的可能性。但如果基于此时的约束做整体布局,则在最终的物理实现阶段,可能每个全局时钟分别被放置在了单个不同的时钟域内,那么此时每个时钟域都不存在实际意义上的时钟资源溢出。
本发明实施例中对时钟域内时钟资源溢出的定义,要处理的各种情况,也就是说,在时钟布局阶段添加到全局时钟上的时钟域约束只要被布局的后续阶段严格遵守,在任何情况下都不应产生物理实现后的时钟溢出。
当所述FPGA器件上存在时钟资源溢出的时钟域时,执行步骤33,否则执行步骤34。
步骤33,对所述存在时钟资源溢出的时钟域内的全局时钟进行时钟约束,直至所述FPGA器件上各个时钟域内均没有时钟资源溢出。
在具体实施中,可以采用多种方法对存在时钟资源溢出的时钟域内的全局时钟进行时钟约束,具体不作限制,只要能够使得FPGA器件上各个时钟域内均没有时钟资源溢出即可
步骤34,继续后续布局。
在具体实施中,初始化所述FPGA器件上所有全局时钟的可用时钟域集及代价后,若时钟资源没有溢出,则继续后续布局即可。可以理解的是,所谓后续布局,可能仅包含整体布局及细节布局,还可能同时包含全局布局。
图4为本发明实施例提供的一种对存在时钟资源溢出的时钟域内的全局时钟进行时钟约束的方法。参照图4,所述方法可以包括如下步骤:
步骤41,从所述存在时钟资源溢出的时钟域内选取两条全局时钟。
在具体实施中,可以将FPGA器件上所有全局时钟两两组合放进备选池,每一全局时钟组合内的两条全局时钟不分前后顺序。依次对备选池内的各个全局时钟组合进行遍历,直到组合内的两条全局时钟Ni及Nj满足以下条件:
1)Ni及Nj所在的全局时钟组合没有选取过,即Ni及Nj中的至少一条全局时钟未被选取过;
2)全局时钟Ni的可用时钟域集Pi,与全局时钟Nj的可用时钟域集Pj的交集不为空,即Pi∩Pj≠Φ;
3)全局时钟Ni的可用时钟域集Pi,与全局时钟Nj的可用时钟域集Pj的并集所述FPGA器件上的所有时钟域的集合,假设为R,所述FPGA器件上共划分R个时钟域,则Pi∪Pj=R。
其中,条件1)可以避免被选取的两条全局时钟为可用时钟域约束不可行的两条全局时钟。条件2)及3)可以便于后续对全局时钟Ni及Nj的可用时钟域集进行划分。
在本发明的一实施例中,为了减小可用时钟域约束后进行后续布局所需的代价,并提高布局的鲁棒性,可以对备选池内的所有全局时钟组合,按照组合内两条全局时钟的代价之和由小到大的顺序排序。在从备选池内选取全局时钟时,可以优先选取代价和更小的组合。全局时钟的代价越小,对其进行约束后,后续布局所需的代价也就越小,即对后续布局的扰动也就越小。
本发明的发明人发现,所述全局时钟的代价,与所述全局时钟当前的可用时钟域的数量、所述全局时钟包含的逻辑资源的数量、所述全局时钟在时钟源布局结束后对应的边界框的面积,以及与所述全局时钟存在逻辑连接的全局时钟的数量相关。本领域技术人员可以参考上述因素,确定所述全局时钟的代价,包括初始化所述全局时钟的代价,以及后续更新所述全局时钟的代价。
下面分别对上述影响全局时钟的代价的各个因素进行详细描述:
1)关于逻辑资源的数量
由于选取后并成功进行可用时钟域约束的全局时钟,其可用时钟域集一定是缩小的,全局时钟所包含的逻辑资源的数量越少越容易满足这种缩小。而对于那些逻辑资源的数量特别多的全局时钟,则不宜对其可用时钟域集进行约束。
在具体实施中,FPGA器件上各种逻辑资源的数目差别很大,SLICE的数量往往是DSP或RAM的几倍到几百倍。例如,对于两条拥有同等数量逻辑资源的全局时钟,其中一条全局时钟包含10个DSP,而另一个包含10个SLICE,则优先选取的应该是包含SLICE的而不是包含DSP的全局时钟。
在衡量全局时钟的代价时,不同逻辑资源类型的所占的权重不同。直观讲,FPGA器件中数量较少的逻辑资源相对于数量较多的逻辑资源,优化时其可利用空间更小,为了缓和这种劣势,应该使得数量较少的逻辑资源可用时钟域集尽可能大,进而赋予对应在FPGA器件上数量更小逻辑资源更大的权重,从而增加对应全局时钟的代价,减小其优先级,进而使得此全局时钟更不容易被选取用来进行可用时钟域集的约束。
其中,在计算每种逻辑资源的权重时,可以先找出数量最多的逻辑资源的数量MAX,每一种资源的权重=MAX/对应资源在器件上的数量。数量最多的逻辑资源的权重为1,而其它逻辑资源的权重都大于1。
2)关于当前可用时钟域集的数量
显然,对于可用时钟域集的数量本来就比较小的全局时钟,被选取的优先级应该更小。
如果不考虑当前可用时钟域的数量,仅仅根据逻辑资源数来确定全局时钟的优先级,初始化可用时钟域集后所有的全局时钟的优先级就被确定下来,后续的迭代过程将会不断的选取优先级最大的(即加入权重的逻辑资源数最小)的全局时钟,这样做将导致此全局时钟在迭代过程中不断的被选取,从而使得此全局时钟的可用时钟域集不断收缩至一个很小的范围,导致后续针对此全局时钟的优化变得异常困难。
如果考虑全局时钟的当前可用时钟域集,全局时钟的代价与当前可用时钟域集的大小应为反比例,即可用时钟域的数量越小,全局时钟的代价越大,选取对应全局时钟的优先级越小。
由于全局时钟的代价依赖其可用时钟域集,当可用时钟域集更新时,需要立即更新其代价,以用来指导下一次迭代过程中选取全局时钟。
3)关于时钟源布局结束后对应的边界框面积:
现有的时钟布局介于时钟源布局和整体布局之间。时钟源布局的优化目标是线长,并且没有考虑逻辑单元之间的相互重叠,从而所有的逻辑单元在器件上的分布密度极高,往往集中在器件中央的某个区域内。即便如此,时钟源布局仍然为后续的布局提供了良好的初始解。
对于每一个全局时钟,定义其边界框(bounding box)为全局时钟包含的所有时钟负载的物理位置均落在其中的最小的矩形边框。全局时钟的代价与其在时钟源布局后的边界框的面积成正比,边界框越大,其代价越大,挑选此全局时钟的优先级越低。
4)关于逻辑连接
如果一个全局时钟与其它n个全局时钟之间都有逻辑连接存在,那么此全局时钟大概率最终分布在与它相连的所有全局时钟所分布的每个时钟域内。基于以上假设,全局时钟的代价与其相连的其他全局时钟的个数成正比。
基于以上分析,全局时钟的代价与其所包含的逻辑资源的数量成正比,与其可用时钟域的数量成反比,与时钟源布局结果中其边界框的面积成正比,与其逻辑相连接的其它全局时钟的数量成正比。故在本发明的一实施例中,发明人发现,可以采用以下公式(1)计算所述FPGA器件上全局时钟Ni的代价Hi
其中,Pi表示全局时钟Ni的当前可用时钟域的数量,Ke表示全局时钟Ni包含的逻辑资源e的个数,we为逻辑资源e的权重,Bi表示全局时钟Ni在时钟源布局结束后对应的边界框面积,Li表示与全局时钟Ni存在逻辑连接的全局时钟数量;E为全局时钟Ni包含的逻辑资源的种类的数量;wB为边界框面积Bi的权重;wL为全局时钟数量Li的权重。
步骤42,对所选取的两条全局时钟进行可用时钟域约束。
在具体实施中,从所述存在时钟资源溢出的时钟域内选取两条全局时钟后,对所选取的两条全局时钟进行可用时钟域约束时,可以按照包含的逻辑资源数量,对所选取的两条全局时钟的可用时钟域集的交集进行划分,使得所述FPGA器件上所有时钟域均不存在时钟溢出。其中,所述全局时钟包含的逻辑资源的数量,也就是所述全局时钟能够支持的时钟负载的数量。
在本发明的一实施例中,可以按照包含的逻辑资源数量,对所选取的两条全局时钟的可用时钟域集的交集进行多次划分,使得每次划分后所述FPGA器件上所有时钟域可放置全局时钟的数量均减1,直至所述FPGA器件上所有时钟域均不存在时钟溢出。
在本发明的一实施例中,可以选择布局代价最小的划分方式,也就是重新分配可用时钟域集后对后续布局扰动最小的方式,对所选取的两条全局时钟的可用时钟域集的交集进行划分。
步骤43,判断所述可用时钟域约束是否可行。
在具体实施中,按照划分后可用时钟域集,按照划分后可用时钟域集,判断所述FPGA器件上是否存在逻辑资源溢出;若所述FPGA器件上不存在逻辑资源溢出,则所述可用时钟域约束可行,否则,所述可用时钟域约束不可行。
假设Mi是FPGA所划分的所有时钟域集合的一个子集,并且Mi中所有的时钟域在空间上是连续的,那么Mi是R的一个连续子集。对于全局时钟Nj,如果其可用时钟域集Pi包含于Mi中,那么定义Mi完全包含Nj。Mi完全包含的全局时钟的数量为Ti
若Ti个全局时钟所拥有的第一逻辑资源e的数量为D(Ti,e)。Mi内对应的第一逻辑资源的数量为A(Mi,e),通常情况下,当D(Ti,e)>A(Mi,e)时,则所述FPGA器件上存在逻辑资源溢出。
在本发明的实施例中,考虑到对于一个时钟域,即便不存在逻辑资源溢出,如果过多的单元过于密集地被分配在一个时钟域内,由于布线资源的有限性,可能会导致布线阻塞(routing congestion)。
故为了处理布线阻塞,在选取全局时钟并判断逻辑资源是否溢出时,对于某个全局时钟的连续子集,判断其是否有逻辑资源溢出的公式中添加一个权重系数wc(0<wc<1),使得此时钟域内留有一定的空白资源,也就是将所述FPGA器件上所有时钟域集合的任意连续子集内对应的第一逻辑资源的数量A(Mi,e),和第一权重wc乘积的结果,与所述连续子集完全包含的全局时钟所拥有的第一逻辑资源的数量D(Ti,e)进行比较,判断所选取的两条全局时钟所在的时钟域是否存在逻辑资源溢出。
若D(Ti,e)>wc·A(Mi,e),表明述FPGA器件上存在逻辑资源溢出,否则不存在逻辑资源溢出。若FPGA器件上存在逻辑资源溢出,则当前可用时钟域约束不可行,否则可用时钟域约束可行。
在当前可用时钟域约束可行时,执行步骤44,否则重复执行步骤42及43,即从所述存在时钟资源溢出的时钟域内重新选取两条全局时钟,并进行可用时钟域约束,直至对所选取的两条全局时钟进行的可用时钟域约束可行。
步骤44,更新所选取的两条全局时钟的可用时钟域集及代价。
在具体实施中,更新所选取的全局时钟的可用时钟域集,即将当前可用时钟约束后重新分配的可用时钟域集,作为同一全局时钟的可用时钟域集。
在具体实施中,所述全局时钟的代价可以参照上述关于公式(1)进行计算,并按照计算结果进行更新,此处不再赘述。
步骤45,判断所述存在时钟资源溢出的时钟域是否仍存在时钟资源溢出。
也就是说,在重新分配所选取的全局时钟的可用时钟域集后,按照重新分配后的可用时钟域集,确定该时钟域是否仍存在时钟资源溢出。若仍存在时钟资源溢出,则重新执行步骤42至45,直至该时钟域内部存在时钟资源溢出。
图5为一种FPGA器件上划分的时钟域的示意图。参照图5,所述FPGA器件上共包括9个时钟域,分别为R1,R2,R3,...,R9。假设所述FPGA器件上设定的全局时钟为N1,N2及N3,每个时钟域内的时钟资源所支持的全局时钟的数量C=1。
参照图6,对所述FPGA器件上的全局时钟进行可用时钟域约束,使得每个时钟域内的可放置全局时钟的数量为1,则具体过程如下:
初始化后,如图6(a)所示,全局时钟N1至N3的可用时钟域集P1至P3,均包括9个时钟域。此时,每个时钟域内可放置的全局时钟数量Q为3个。
由于全局时钟N1和N2的可用时钟域集P1和P2的交集包括9个时钟域,并集也包括9个时钟域,故可以选取全局时钟N1和N2进行可用时钟域约束。若全局时钟N1所包含的逻辑资源的数量为6,全局时钟N2所包含的逻辑资源的数量为3,则可对可用时钟域集P1和P2的交集按逻辑资源数量的比例进行划分,并选择布局代价最小的划分方式,得到全局时钟N1重新分配后的可用时钟域集P1’={R1,R2,R3,R4,R5,R6},以及全局时钟N2重新分配后的可用时钟域集P2’={R7,R8,R9},如图6(b)所示。此时,任一时钟域的可放置全局时钟的数量Q为2,仍然存在时钟溢出。
再次选取全局时钟N1和N3进行可用时钟域约束。可用时钟域集P1和P3的交集为{R1,R2,R3,R4,R5,R6},选择布局代价最小的划分方式,得到全局时钟N1重新分配后的可用时钟域集P1”={R1,R4},全局时钟N3重新分配后的可用时钟域P3”={R2,R3,R5,R6},如图6(c)所示。此时所有的时钟域的可放置全局时钟的数量为1,任一时钟域均不存在时钟溢出,可用时钟域约束结束。
由于所选取全局时钟Ni和Nj满足的三个条件:Ni和Nj没有被挑选过,Pi与Pj的交集不为空,Pi与Pj的并集为R。由此可以保证同时对全局时钟Ni和Nj的可用时钟域集Pi和Pj进行约束后,所有的时钟域的可放置全局时钟数均减1。由于初始化时所有时钟域的可放置全局时钟数量相等,故在后续的每一步中,所有时钟域的可放置全局时钟数量将一直保持相等,并且,在时钟布局结束消除时钟资源溢出后,所有时钟域内可放置时钟数均为C,从而能够最大化每个时钟域内时钟资源的潜在利用率,最大化全局时钟的可用时钟域范围,从而给后续的整体布局更大的优化范围。
采用本发明实施例中的时钟布局方法,在时钟源布局结束后,只要FPGA器件上提供的时钟资源小于或等于所需时钟资源时,即对所述存在时钟资源溢出的时钟域内的全局时钟进行时钟约束,直至所述FPGA器件上各个时钟域内均没有时钟资源溢出,无需等到全局布局结束后才能进行时钟布局,由此可以快速地为所有全局时钟进行时钟约束并且不产生任何时钟资源溢出。并且本发明实施例中的时钟布局方法,可以应用于时钟源布局后的任何布局阶段,使用更加灵活,布局早期考虑时钟布局的约束,对布局质量的提高有很大的帮助。
为了使本领域技术人员更好地理解和实现本发明,以下对上述方法对应的装置、EDA工具及计算机可读存储介质进行详细描述。
参照图7,本发明实施例提供了一种时钟布局装置70,所述时钟布局装置70可以包括:初始化单元71、判断单元72及时钟约束单元73。其中:
所述初始化单元71,适于在时钟源布局结束后,且FPGA器件上提供的时钟资源小于或等于所需时钟资源,初始化所述FPGA器件上所有全局时钟的可用时钟域集及代价;
所述判断单元72,适于基于初始化的结果,判断所述FPGA器件上是否存在时钟资源溢出的时钟域;
所述时钟约束单元73,适于当存在时钟资源溢出的时钟域时,对所述存在时钟资源溢出的时钟域内的全局时钟进行时钟约束,直至所述FPGA器件上各个时钟域内均没有时钟资源溢出。
在本发明的一实施例中,所述时钟约束单元73可以包括:选取子单元731,时钟约束子单元732及更新子单元733。其中:
所述选取子单元731,适于从所述存在时钟资源溢出的时钟域内选取两条全局时钟;
所述时钟约束子单元732,适于对所选取的两条全局时钟进行可用时钟域约束,并判断所述可用时钟域约束是否可行;
所述更新子单元733,适于在所述可用时钟域约束可行时,更新所选取的两条全局时钟的可用时钟域集及代价,使得所述判断单元重新判断所述存在时钟资源溢出的时钟域是否仍存在时钟资源溢出。
所述选取子单元731,还适于在所述可用时钟域约束不可行时,重新选取两条全局时钟,使得所述时钟约束子单元对重新选取的全局时钟进行可用时钟域约束,直至对所选取的两条全局时钟进行的可用时钟域约束可行。
在本发明的一实施例中,所述选取子单元731所选取的两条全局时钟满足以下条件:
所选取的两条全局时钟中至少一条未被选取过;
所选取的两条全局时钟的可用时钟域集的交集不为空;
所选取的两条全局时钟的可用时钟域集的并集为所述FPGA器件上的所有时钟域的集合。
在本发明的另一实施例中,所述选取子单元731所选取的两条全局时钟还满足以下条件:
所选取的两条全局时钟,为所在的时钟域内可选取的全局时钟中,代价之和最小的两条全局时钟。
在本发明的一实施例中,所述时钟约束子单元732可以包括:时钟域划分模块(未示出)及判断模块(未示出)。其中:
所述时钟域划分模块,适于按照包含的逻辑资源数量,对所选取的两条全局时钟的可用时钟域集的交集进行划分,使得所述FPGA器件上所有时钟域均不存在时钟溢出;
所述判断模块,适于按照划分后可用时钟域集,判断所述FPGA器件上是否存在逻辑资源溢出;若所述FPGA器件上不存在逻辑资源溢出,则所述可用时钟域约束可行,否则,所述可用时钟域约束不可行。
在本发明的一实施例中,所述判断模块,适于将所述FPGA器件上所有时钟域集合的任意连续子集内对应的第一逻辑资源的数量,和第一权重乘积的结果,与所述连续子集完全包含的全局时钟所拥有的第一逻辑资源的数量进行比较,判断所述FPGA器件上是否存在逻辑资源溢出;
其中,所述第一权重,与所述连续子集对应的第一逻辑资源的数量相对应,且取值范围为(0,1);所述第一逻辑资源为所述连续子集内任意一种逻辑资源。
在本发明的一实施例中,所述时钟域划分模块,适于按照包含的逻辑资源数量,对所选取的两条全局时钟的可用时钟域集的交集进行多次划分,使得每次划分后所述FPGA器件上所有时钟域可放置全局时钟的数量均减1,直至所述FPGA器件上所有时钟域均不存在时钟溢出。
在本发明的一实施例中,所述时钟域划分模块,适于选择布局代价最小的划分方式,对所选取的两条全局时钟的可用时钟域集的交集进行划分。
在本发明的一实施例中,所述全局时钟的代价,与所述全局时钟当前的可用时钟域的数量、所述全局时钟包含的逻辑资源的数量、所述全局时钟在时钟源布局结束后对应的边界框的面积,以及与所述全局时钟存在逻辑连接的全局时钟的数量相关。
在本发明的一实施例中,所述初始化单元71,适于初始化所述FPGA器件上所有全局时钟的可用时钟域集均为所述FPGA器件上所有时钟域的集合。
本发明实施例还提供了一种EDA工具,所述EDA工具可以包括上述任一种所述的时钟布局装置70。
本发明实施例还提供了另一种计算机可读存储介质,其上存储有计算机指令,所述计算机指令运行时执行上述实施例中任一种所述时钟布局方法步骤,不再赘述。
在具体实施中,所述计算机可读存储介质可以包括:ROM、RAM、磁盘或光盘等。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。

Claims (21)

1.一种时钟布局方法,其特征在于,包括:
在时钟源布局结束后,且FPGA器件上提供的时钟资源小于或等于所需时钟资源时,初始化所述FPGA器件上所有全局时钟的可用时钟域集及代价;
基于初始化的结果,判断所述FPGA器件上是否存在时钟资源溢出的时钟域;
当存在时钟资源溢出的时钟域时,对所述存在时钟资源溢出的时钟域内的全局时钟进行时钟约束,直至所述FPGA器件上各个时钟域内均没有时钟资源溢出;
所述全局时钟的代价,与所述全局时钟当前的可用时钟域的数量、所述全局时钟包含的逻辑资源的数量、所述全局时钟在时钟源布局结束后对应的边界框的面积,以及与所述全局时钟存在逻辑连接的全局时钟的数量相关。
2.如权利要求1所述的时钟布局方法,其特征在于,对每个所述存在时钟资源溢出的时钟域内的全局时钟进行时钟约束,包括:
从所述存在时钟资源溢出的时钟域内选取两条全局时钟;
对所选取的两条全局时钟进行可用时钟域约束,并判断所述可用时钟域约束是否可行;
若所述可用时钟域约束可行,则更新所选取的两条全局时钟的可用时钟域集及代价,并重复判断所述存在时钟资源溢出的时钟域是否仍存在时钟资源溢出,否则从所述存在时钟资源溢出的时钟域内重新选取两条全局时钟,并进行可用时钟域约束,直至对所选取的两条全局时钟进行的可用时钟域约束可行。
3.如权利要求2所述的时钟布局方法,其特征在于,所选取的两条全局时钟满足以下条件:
所选取的两条全局时钟中至少一条未被选取过;
所选取的两条全局时钟的可用时钟域集的交集不为空;
所选取的两条全局时钟的可用时钟域集的并集为所述FPGA器件上的所有时钟域的集合。
4.如权利要求3所述的时钟布局方法,其特征在于,所选取的两条全局时钟还满足以下条件:
所选取的两条全局时钟,为所在的时钟域内可选取的全局时钟中,代价之和最小的两条全局时钟。
5.如权利要求2所述的时钟布局方法,其特征在于,所述对所选取的两条全局时钟进行可用时钟域约束,并判断所述可用时钟域约束是否可行,包括:
按照包含的逻辑资源数量,对所选取的两条全局时钟的可用时钟域集的交集进行划分,使得所述FPGA器件上所有时钟域均不存在时钟溢出;
按照划分后可用时钟域集,判断所述FPGA器件上是否存在逻辑资源溢出;若所述FPGA器件上不存在逻辑资源溢出,则所述可用时钟域约束可行,否则,所述可用时钟域约束不可行。
6.如权利要求5所述的时钟布局方法,其特征在于,所述按照划分后可用时钟域集,判断所选取的两条全局时钟所在的时钟域是否存在逻辑资源溢出,包括:
将所述FPGA器件上所有时钟域集合的任意连续子集内对应的第一逻辑资源的数量,和第一权重乘积的结果,与所述连续子集完全包含的全局时钟所拥有的第一逻辑资源的数量进行比较,判断所述FPGA器件上是否存在逻辑资源溢出;
其中,所述第一权重,与所述连续子集对应的第一逻辑资源的数量相对应,且取值范围为(0,1);所述第一逻辑资源为所述连续子集内任意一种逻辑资源。
7.如权利要求5所述的时钟布局方法,其特征在于,所述按照包含的逻辑资源数量,对所选取的两条全局时钟的可用时钟域集的交集进行划分,使得所述FPGA器件上所有时钟域均不存在时钟溢出,包括:
按照包含的逻辑资源数量,对所选取的两条全局时钟的可用时钟域集的交集进行多次划分,使得每次划分后所述FPGA器件上的所有时钟域可放置全局时钟的数量均减1,直至所述FPGA器件上所有时钟域均不存在时钟溢出。
8.如权利要求7所述的时钟布局方法,其特征在于,所述按照包含的逻辑资源数量,对所选取的两条全局时钟的可用时钟域集的交集进行多次划分,包括:
选择布局代价最小的划分方式,对所选取的两条全局时钟的可用时钟域集的交集进行划分。
9.如权利要求1所述的时钟布局方法,其特征在于,采用以下公式计算所述FPGA器件上全局时钟Ni的代价Hi
其中,Pi表示全局时钟Ni的当前可用时钟域的数量,Ke表示全局时钟Ni包含的逻辑资源e的个数,we为逻辑资源e的权重,Bi表示全局时钟Ni在时钟源布局结束后对应的边界框面积,Li表示与全局时钟Ni存在逻辑连接的全局时钟数量;E为全局时钟Ni包含的逻辑资源的种类的数量;wB为边界框面积Bi的权重;wL为全局时钟数量Li的权重。
10.如权利要求1所述的时钟布局方法,其特征在于,初始化所述FPGA器件上所有全局时钟的可用时钟域集,包括:
初始化所述FPGA器件上所有全局时钟的可用时钟域集均为所述FPGA器件上所有时钟域的集合。
11.一种时钟布局装置,其特征在于,包括:
初始化单元,适于在时钟源布局结束后,且FPGA器件上提供的时钟资源小于或等于所需时钟资源,初始化所述FPGA器件上所有全局时钟的可用时钟域集及代价;
判断单元,适于基于初始化的结果,判断所述FPGA器件上是否存在时钟资源溢出的时钟域;
时钟约束单元,适于当存在时钟资源溢出的时钟域时,对所述存在时钟资源溢出的时钟域内的全局时钟进行时钟约束,直至所述FPGA器件上各个时钟域内均没有时钟资源溢出;
所述全局时钟的代价,与所述全局时钟当前的可用时钟域的数量、所述全局时钟包含的逻辑资源的数量、所述全局时钟在时钟源布局结束后对应的边界框的面积,以及与所述全局时钟存在逻辑连接的全局时钟的数量相关。
12.如权利要求11所述的时钟布局装置,其特征在于,所述时钟约束单元包括:
选取子单元,适于从所述存在时钟资源溢出的时钟域内选取两条全局时钟;
时钟约束子单元,适于对所选取的两条全局时钟进行可用时钟域约束,并判断所述可用时钟域约束是否可行;
更新子单元,适于在所述可用时钟域约束可行时,更新所选取的两条全局时钟的可用时钟域集及代价,使得所述判断单元重新判断所述存在时钟资源溢出的时钟域是否仍存在时钟资源溢出;
所述选取子单元,还适于在所述可用时钟域约束不可行时,重新选取两条全局时钟,使得所述时钟约束子单元对重新选取的全局时钟进行可用时钟域约束,直至对所选取的两条全局时钟进行的可用时钟域约束可行。
13.如权利要求12所述的时钟布局装置,其特征在于,所选取的两条全局时钟满足以下条件:
所选取的两条全局时钟中至少一条未被选取过;
所选取的两条全局时钟的可用时钟域集的交集不为空;
所选取的两条全局时钟的可用时钟域集的并集为所述FPGA器件上的所有时钟域的集合。
14.如权利要求13所述的时钟布局装置,其特征在于,所选取的两条全局时钟还满足以下条件:
所选取的两条全局时钟,为所在的时钟域内可选取的全局时钟中,代价之和最小的两条全局时钟。
15.如权利要求12所述的时钟布局装置,其特征在于,所述时钟约束子单元,包括:
时钟域划分模块,适于按照包含的逻辑资源数量,对所选取的两条全局时钟的可用时钟域集的交集进行划分,使得所述FPGA器件上所有时钟域均不存在时钟溢出;
判断模块,适于按照划分后可用时钟域集,判断所述FPGA器件上是否存在逻辑资源溢出;若所述FPGA器件上不存在逻辑资源溢出,则所述可用时钟域约束可行,否则,所述可用时钟域约束不可行。
16.如权利要求15所述的时钟布局装置,其特征在于,所述判断模块,适于将所述FPGA器件上所有时钟域集合的任意连续子集内对应的第一逻辑资源的数量,和第一权重乘积的结果,与所述连续子集完全包含的全局时钟所拥有的第一逻辑资源的数量进行比较,判断所述FPGA器件上是否存在逻辑资源溢出;
其中,所述第一权重,与所述连续子集对应的第一逻辑资源的数量相对应,且取值范围为(0,1);所述第一逻辑资源为所述连续子集内任意一种逻辑资源。
17.如权利要求15所述的时钟布局装置,其特征在于,所述时钟域划分模块,适于按照包含的逻辑资源数量,对所选取的两条全局时钟的可用时钟域集的交集进行多次划分,使得每次划分后所述FPGA器件上所有时钟域可放置全局时钟的数量均减1,直至所述FPGA器件上所有时钟域均不存在时钟溢出。
18.如权利要求17所述的时钟布局装置,其特征在于,所述时钟域划分模块,适于选择布局代价最小的划分方式,对所选取的两条全局时钟的可用时钟域集的交集进行划分。
19.如权利要求11所述的时钟布局装置,其特征在于,所述初始化单元,适于初始化所述FPGA器件上所有全局时钟的可用时钟域集均为所述FPGA器件上所有时钟域的集合。
20.一种EDA工具,其特征在于,包括权利要求11至19中任一项所述的时钟布局装置。
21.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,所述计算机指令运行时执行权利要求1至10任一项所述方法的步骤。
CN201910590166.6A 2019-07-02 2019-07-02 时钟布局方法、装置、eda工具及计算机可读存储介质 Active CN112257368B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910590166.6A CN112257368B (zh) 2019-07-02 2019-07-02 时钟布局方法、装置、eda工具及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910590166.6A CN112257368B (zh) 2019-07-02 2019-07-02 时钟布局方法、装置、eda工具及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN112257368A CN112257368A (zh) 2021-01-22
CN112257368B true CN112257368B (zh) 2023-08-01

Family

ID=74223722

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910590166.6A Active CN112257368B (zh) 2019-07-02 2019-07-02 时钟布局方法、装置、eda工具及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN112257368B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113221493B (zh) * 2021-05-31 2022-07-15 福州大学 一种基于异质型fpga布局的时钟合法化方法
CN114386352A (zh) * 2022-03-23 2022-04-22 上海立芯软件科技有限公司 时序驱动布局方法及装置、设备、存储介质
CN117422043B (zh) * 2023-12-19 2024-03-19 上海芯璐科技有限公司 一种具有时钟网络的电路结构及其控制方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102799563A (zh) * 2011-05-26 2012-11-28 上海红神信息技术有限公司 一种可重构计算阵列及构建方法
CN104615477A (zh) * 2013-11-01 2015-05-13 国际商业机器公司 运行中的fpga 系统的周期精确级重放和调试

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2818768B1 (fr) * 2000-12-26 2003-03-21 Thomson Multimedia Sa Dispositif et procede d'estampillage temporel, recepteur, ensemble de diffusion differee et suite de paquet correspondants
GB2505002B (en) * 2012-08-17 2014-09-24 Broadcom Corp Method and apparatus for transferring data from a first domain to a second domain
KR102509913B1 (ko) * 2017-01-25 2023-03-14 삼성전자주식회사 최대화된 중복 제거 메모리를 위한 방법 및 장치
CN108846187B (zh) * 2018-05-25 2022-07-15 福州大学 基于广义增广拉格朗日的集成电路全局布局优化方法
CN109765583B (zh) * 2019-03-04 2021-06-15 华通信安(北京)科技发展有限公司 一种基于gnss接收机秒脉冲的时钟同步方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102799563A (zh) * 2011-05-26 2012-11-28 上海红神信息技术有限公司 一种可重构计算阵列及构建方法
CN104615477A (zh) * 2013-11-01 2015-05-13 国际商业机器公司 运行中的fpga 系统的周期精确级重放和调试

Also Published As

Publication number Publication date
CN112257368A (zh) 2021-01-22

Similar Documents

Publication Publication Date Title
JP7413580B2 (ja) ニューラルネットワークを使用した集積回路フロアプランの生成
CN112257368B (zh) 时钟布局方法、装置、eda工具及计算机可读存储介质
US10366195B2 (en) Using a Barycenter compact model for a circuit network
US9003344B2 (en) Generating pattern-based estimated RC data with analysis of route information
US9251306B2 (en) Alignment net insertion for straightening the datapath in a force-directed placer
US8234612B2 (en) Cone-aware spare cell placement using hypergraph connectivity analysis
US20120136633A1 (en) Optimization-based simulated annealing for integrated circuit placement
US8261226B1 (en) Network flow based module bottom surface metal pin assignment
US8806407B2 (en) Multiple-instantiated-module (MIM) aware pin assignment
Chen et al. Routability-driven blockage-aware macro placement
US8473881B1 (en) Multi-resource aware partitioning for integrated circuits
US9471733B1 (en) Solving a circuit network in multicore or distributed computing environment
Cong et al. Multiway VLSI circuit partitioning based on dual net representation
US20080209038A1 (en) Methods and systems for optimizing placement on a clock signal distribution network
TW201926217A (zh) 針對設計半導體裝置的資源規劃的方法、系統及儲存媒介
US10031994B1 (en) Systems and methods for congestion and routability aware detailed placement
US7596773B2 (en) Automating optimal placement of macro-blocks in the design of an integrated circuit
US20160085900A1 (en) Activity-Driven Capacitance Reduction to Reduce Dynamic Power Consumption in an Integrated Circuit
US20160232275A1 (en) Method and apparatus for logical design connectivity-based automatic macro placement
US9552453B1 (en) Integrated circuit with power network aware metal fill
US8990758B2 (en) Generating a convergent circuit design from a functional description using entities having access to the functional description and to physical design information
JP3433025B2 (ja) モジュール配置方法
US9436796B2 (en) Method and apparatus for determining common node logical connectivity
Saha et al. An efficient intersection avoiding rectilinear routing technique in VLSI
US11301614B1 (en) Feasibility analysis of engineering change orders

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant