CN116911224B - 用于优化数字逻辑电路的方法、计算机设备及存储介质 - Google Patents
用于优化数字逻辑电路的方法、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN116911224B CN116911224B CN202311147763.4A CN202311147763A CN116911224B CN 116911224 B CN116911224 B CN 116911224B CN 202311147763 A CN202311147763 A CN 202311147763A CN 116911224 B CN116911224 B CN 116911224B
- Authority
- CN
- China
- Prior art keywords
- node
- constraint
- conflict graph
- boolean logic
- logic network
- 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
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000004590 computer program Methods 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 2
- 238000005457 optimization Methods 0.000 abstract description 14
- 238000010586 diagram Methods 0.000 description 10
- 238000013461 design Methods 0.000 description 9
- 230000009466 transformation Effects 0.000 description 8
- 230000002093 peripheral effect Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000000844 transformation Methods 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 101150049349 setA gene Proteins 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/337—Design optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Computational Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Pure & Applied Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Algebra (AREA)
- Geometry (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本申请提供一种用于优化数字逻辑电路的方法、计算机设备及存储介质,通过将数字逻辑电路转换为布尔逻辑网络,并将布尔逻辑网络转换为约束冲突图,基于该约束冲突图得到用于优化数字逻辑电路的第一独立集,以达到在全局层面下高效求解约束下的资源优化的目的,从而使得EDA工具可以在较短的运行时间内优化电路。
Description
技术领域
本申请涉及数字逻辑电路技术领域,尤其涉及一种用于优化数字逻辑电路的方法、计算机设备及存储介质。
背景技术
随着现代数字逻辑电路的规模越来越大,用户对于电路的时序、功耗或者面积(Performance Power Area,PPA)的要求越来越高。逻辑门的实现变换是提升PPA的常用的手段。对于同一种功能的逻辑门,代工厂的标准单元库会针对同一种逻辑门提供多个可选实现单元。不同单元的时序、面积、功耗都有一定的区别,需要电子设计自动化(EDA)软件自动地对每个逻辑门挑选适合的实现单元。
然而,由于数字逻辑电路的规模越来越大,芯片设计师迫切需要数字电路的EDA工具可以高效地完成对电路的全局层面优化。这意味着现代EDA工具面临着前所未有的挑战。
发明内容
有鉴于此,本申请的目的在于提出一种用于优化数字逻辑电路的方法、计算机设备及存储介质。
基于上述目的,本申请第一方面,提供了一种用于优化数字逻辑电路的方法,包括:获取数字逻辑电路,并将所述数字逻辑电路转换为布尔逻辑网络;将所述布尔逻辑网络转换为约束冲突图;根据所述约束冲突图,得到第一独立集;其中,所述第一独立集用于优化所述数字逻辑电路。
本申请第二方面,提供了一种计算机设备,包括:一个或者多个处理器、存储器;以及一个或多个程序;其中,所述一个或多个程序被存储在所述存储器中,并且被所述一个或多个处理器执行,所述程序包括用于执行如第一方面所述的方法的指令。
本申请第三方面,提供了一种包含计算机程序的非易失性计算机可读存储介质,当所述计算机程序被一个或多个处理器执行时,使得所述处理器执行如第一方面所述的方法。
从上面所述可以看出,本申请提供的一种用于优化数字逻辑电路的方法、计算机设备及存储介质,通过将数字逻辑电路转换为布尔逻辑网络,并将布尔逻辑网络转换为约束冲突图,基于该约束冲突图得到用于优化数字逻辑电路的第一独立集,以达到在全局层面下高效求解约束下的资源优化的目的,从而使得EDA工具可以在较短的运行时间内优化电路。
附图说明
为了更清楚地说明本申请或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了根据本申请实施例的示例性布尔逻辑网络的示意图。
图2示出了根据本申请实施例的示例性用于优化数字逻辑电路的方法的流程图。
图3示出了根据本申请实施例的示例性约束冲突图的示意图。
图4示出了根据本申请实施例的示例性约束冲突图的子图的示意图。
图5示出了根据本申请实施例的另一示例性用于优化数字逻辑电路的方法的流程图。
图6示出了根据本申请实施例的示例性计算机设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本申请进一步详细说明。
需要说明的是,除非另外定义,本申请实施例使用的技术术语或者科学术语应当为本申请所属领域内具有一般技能的人士所理解的通常意义。本申请实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
如背景技术所述,随着现代数字逻辑电路的规模越来越大,利用数字电路的电子设计自动化(EDA)工具高效地完成对电路的全局层面优化也面临着前所未有的挑战。由此,如何在较短的运行时间内优化电路,使得优化后的电路在满足设计(规则)约束的条件下具有尽量优良的PPA是亟待解决的问题。
为了帮助理解,下面对本申请实施例所涉及的一些概念进行说明。
1、布尔逻辑网络:一种有向无环图(Directed Acyclic Graph,简称DAG)。该图由节点集合与有向边集合/>构成。其中:
1)有向边表示信号的传递方向。对于有向边,定义其起始节点为尾节点,定义其指向节点(或终止节点)为头节点。
2)输入边:对任意的节点,所有头节点为/>的边都被称为该节点/>的输入边。
3)输出边:对任意的节点,所有尾节点为/>的边都被称为该节点/>的输出边。本申请实施例的布尔逻辑网络中,所有的输出边都对应着相同的逻辑信号,该信号也被称为节点/>的输出信号。
4)直接前序节点与直接后序节点:对任意的节点,若/>为/>的直接前序节点,则存在一条以/>为尾节点,/>为头节点的边;若/>为/>的直接前序节点,则/>为/>的直接后序节点。
5)输入信号集:对任意的节点,其输入信号集表示其输入边所承载的信号的集合。每一个布尔逻辑网络的节点对应着一种确定的逻辑函数,该函数描述了输出信号与输入信号集的关系。
6)输入接口节点():一个/>的子集,该集合中的节点没有输入边。
7)输出接口节点():一个/>的子集,该集合中的节点没有输出边。
2、拓扑排序:对有向无环图DAG一定存在拓扑排序。拓扑排序是对节点集合进行整数关联的过程。对于一个节点/>分配整数集合/>中的一个数使得任意两个节点分配到的数字不相同并且分配到的数字顺序与节点之间的拓扑顺序相同。具体地,用作为整数/>所对应的节点,对于任意的/>且/>,如果在布尔逻辑网络上存在一条从/>到/>的路径,则/>。
由于用整数可以唯一确定地表示节点/>,在不影响理解的情况下,后文中用/>来代表/>。
图1示出了根据本申请实施例的示例性布尔逻辑网络100的示意图。
如图1所示,在一些实施例中,算法的输入可以是布尔逻辑网络100,该布尔逻辑网络100可以由数字逻辑电路转换得到。其中,布尔逻辑网络100的每一个节点(例如,节点A、B、C、D)可以代表一个逻辑门。其前序节点代表向此逻辑门提供信号的逻辑门,其后序节点代表接受该节点信号的逻辑门(例如,前序节点可以是节点A,后序节点可以是节点B)。
每个逻辑门在标准单元库中可以找到多种实现。在一些实施例中,可以令代表逻辑门,/>代表对节点/>的所有可选实现集合,/>代表每个选择下的资源增益。其中,/>为自然数。
布尔逻辑网络100的每个边代表信号传递的方向。在一些实施例中,可以令表示布尔逻辑网络100中的一条边,/>表示当节点/>选择/>并且节点/>选择/>时的约束值。其中,/>、/>分别表示节点/>和节点/>的可选实现。
以图1所示为例,布尔逻辑网络100的可选实现下的约束值(每个边上附带的矩阵)可以包括矩阵、/>、/>、/>、/>;布尔逻辑网络100的可选实现下的资源值(节点上的向量)可以包括向量/>、/>、/>、。
设计约束主要分为两大类,其一是设计规则约束,例如一个逻辑门所驱动的连接线以及其次级逻辑门的等效电容不能超过工艺厂提供的标准单元库中的最大值,又或者每个输入逻辑门的信号跳变的转移时间不能超过工艺厂提供的标准单元库中的最大值。其二是设计约束,例如设计师对电路的时钟频率的设定。设计规则约束是一种最高优先级的约束。如果违反这些约束会导致制造出的电路无法正常工作。而对于设计约束的优先级为次一级的约束。违反约束后,电路可以正常工作,但其性能可能不能满足要求。
一般来说,PPA(Performance Power Area,性能、功耗、面积)中的时序(性能)会被当作设计约束,功耗和面积(资源)会被设定为优化目标。芯片设计师可以对EDA软件设定时序约束后,让EDA软件找出一种功耗面积最佳(资源消耗最少)的实现。
逻辑门的实现变换是提升PPA的常用的手段。对于同一种功能的逻辑门,代工厂的标准单元库会针对同一种逻辑门提供多个可选实现单元。不同单元的时序、面积、功耗都有一定的区别,需要EDA软件自动地对每个逻辑门挑选适合的实现单元。
由于数字电路规模极大,现有技术往往是采用局部优化方式。其常见的流程是:
1、按照某些规则挑选一些逻辑门。
2、对这些挑选出的逻辑门尝试一些变换,常见的变换方式是挑选一种实现单元,在假定其余逻辑门不变换的前提下使得其变换后满足约束并对资源优化有增益。
3、将这些变化按照一定顺序落实。在落实的时候检查某种变换是否会造成约束破坏。如果确认是会造成约束破坏,则需要取消这一变换。
4、重复上述步骤1-3直到无法选出可以改善资源利用的变换或到达迭代上限。
然而,现有技术的方法具有以下缺点:
1、无法考虑多种变换的同时作用,从而导致优化结果依赖于落实顺序。
2、运行时间长,同时由于变换叠加效应导致约束破坏,使得大量变换无法落实,最终导致迭代轮次过多。
有鉴于此,本申请提出一种用于优化数字逻辑电路的方法、计算机设备及存储介质,通过将数字逻辑电路转换为布尔逻辑网络,并将布尔逻辑网络转换为约束冲突图,基于该约束冲突图得到用于优化数字逻辑电路的第一独立集,以达到在全局层面下高效求解约束下的资源优化的目的,从而使得EDA工具可以在较短的运行时间内优化电路。
图2示出了根据本申请实施例的示例性用于优化数字逻辑电路的方法200的流程图。
为解决如何在全局层面下高效求解约束下的资源优化的问题,在一些实施例中,可以通过将布尔逻辑网络转换为约束冲突图,并基于该约束冲突图进行求解。在建立约束冲突图时,如图2所示,在一些实施例中,可以针对输入的布尔逻辑网络(例如,布尔逻辑网络100)内的每一个节点找出所有可选实现集合/>和每个可选实现下的资源增益/>。针对输入的布尔逻辑网络(例如,布尔逻辑网络100)内的每一条边,计算/>。
图3示出了根据本申请实施例的示例性约束冲突图300的示意图。
对所有的,如果其满足约束值(例如,布尔逻辑网络100的每个边上附带的矩阵),如图3所示,可以创建一个约束冲突图300节点/>,并对其赋值权重/>。在一些实施例中,节点/>可以是约束冲突图300中的节点/>、节点/>、节点/>、节点、节点/>、节点/>、节点/>、节点/>、节点/>、节点。针对约束冲突图300中任意的两个节点,/>,/>,如果该任意的两个节点满足约束条件:
a)或者/>;
b)且/>;
c)且/>;其中,/>、/>分别表示节点/>和节点/>的另一种可选实现;
则在约束冲突图300添加一条无向边(例如,约束冲突图300中各个节点之间的连线)。
在约束冲突图300中,每个节点代表原布尔逻辑网络(例如,布尔逻辑网络100)中相邻节点的一种取值可能组合(例如,约束冲突图300中的节点和节点/>可以代表布尔逻辑网络100中的相邻节点A和节点B的取值可能组合)。约束冲突图300中的边代表这两种组合不能同时出现(例如,约束冲突图300中的节点/>和节点/>之间存在一条连线,该连线代表节点/>和节点/>不能同时出现)。
需要说明的是,在实践使用时,针对不同的约束有不同的计算的方法,本申请实施例在此不作限制。
回到图2,在一些实施例中,可以利用建立的约束冲突图300求解加权最大独立集。根据约束冲突图的定义,全局的优化就是在约束冲突图中选择出一种节点的集合,使得该集合中任意两个节点之间都没有边(冲突),并且总的资源优化增益最大,即该问题可以转化为在节点加权的约束冲突图中找出最大独立集。
由于求解加权最大独立集在一般图上属于NP-Hard问题(指所有NP问题(非确定性多项式(non-deterministic polynomial,简称NP)),即很难找出高效算法求解。鉴于此,本申请实施例采用一种近似求解的算法求解最大独立集,可以包括如下步骤:
1、初始化最大独立集;
2、构建一个最大堆,并将约束冲突图(例如,约束冲突图300)中的所有节点插入。对约束冲突图节点,令其键值为/>。其中/>代表节点/>的权重,/>代表节点/>的邻居节点集合,即/>。其中,邻居节点为以节点/>为端点的边的另一个端点,例如,如图3所示,在约束冲突图300中,以节点/>为端点的边的另一端点节点和节点/>都可以是节点/>的邻居节点。
3、弹出最大堆的堆顶节点,并将其加入最大独立集合,即/>。
4、从约束冲突图中删除节点,并更新/>内所有节点的键值。
5、删除节点的邻居节点/>。可以理解,节点/>的邻居节点表示与该节点/>存在冲突的节点,即节点/>与邻居节点不能同时存在。因此,在选出了节点/>后,节点/>的邻居节点/>也需要删除。
6、重复上述步骤3、4、5直到最大堆变成空。
7、返回最大独立集。
回到图2,将最大独立集作为输出解决方案并执行。
以下简要说明本申请实施例的技术效果。
回顾约束冲突图的构建过程,显然其节点个数最大数目为。其中,/>代表原布尔逻辑网络(例如,布尔逻辑网络100)节点的最大可选的实现数目,/>代表原布尔逻辑网络的边数。约束冲突图中,节点之间存在冲突边的上界为/>。由于原布尔逻辑网络是稀疏图,实际中的约束冲突图的也是稀疏图,意味约束冲突图中边数为/>,其中,/>为原布尔逻辑网络节点的度。在实践中,一般/>是较小的常数,可以认为冲突图的规模与原图规模的线性倍数。
对于最大独立集合的求解,如果使用斐波那契堆实现最大堆,其时间复杂度可以做到。其中,/>代表约束冲突图中边的数目,/>代表约束冲突图节点的数目。
需要说明的是,上述最大独立集的求解方法仅为示例性的,本申请实施例对此不作限制。
图4示出了根据本申请实施例的示例性约束冲突图300的子图400的示意图。
在实践中存在两大类情形使得求出的解无法使用:
其一,由于近似求解得到解不一定可以确定每个逻辑门的实现选择。这代表直接落实近似解会导致某些节点没有选择实现的标准单元。因此,还需要一种将近似解转换为真正可以落实的解的转换过程。
有鉴于此,本申请实施例还提出了一种转换算法,可以包括如下步骤:
1、构造一个约束冲突图300的一个子图。如图4所示,该子图可以是子图400。需要说明的是:
a)子图400的节点是近似解中不包含的节点并且满足以下条件:
1)该节点所代表的两个逻辑门都没有选择实现单元。
2)该节点所代表的两个逻辑门有且只有一个选择了实现单元。此时需要剔除选择单元与近似解不符合的节点。
b)子图400的边为布尔逻辑网络100对应边。
如图1所示,在一些实施例中,假定节点A、B、D选择了第一种实现,而节点C没有在近似算法的解中获取到其实现值。基于此,如图4所示,可以建立子图400。
2、从子图400中挑选出一组节点集合所对应的实现选择,使得总的资源优化增益尽量大。具体地,算法可以包括如下步骤:
a)在子图400上寻找近似最大独立集。
b)基于步骤a落实逻辑门选择。
c)通过已经确定选择的逻辑门,删除子图400中的冲突节点。
d)重复步骤a、b、c直到子图400为空。
若经过上述步骤依然存在逻辑门无法确定其实现。这说明当前电路在当前的标准单元库下无法找出符合约束的实现。此时需要结束优化过程,等待用户更新电路约束,标准库或者插入缓冲器隔离。
图5示出了根据本申请实施例的另一示例性用于优化数字逻辑电路的方法500的流程图。方法500可以包括如下步骤:
在步骤502,获取数字逻辑电路,并将所述数字逻辑电路转换为布尔逻辑网络(例如,图1中的布尔逻辑网络100)。布尔逻辑网络的每一个节点(例如,图1中的节点A、B、C、D)代表一个逻辑门。
在步骤504,将所述布尔逻辑网络转换为约束冲突图(例如,图3中的约束冲突图300)。
在一些实施例中,所述将所述布尔逻辑网络转换为约束冲突图可以进一步包括:针对所述布尔逻辑网络中的每个节点,得到所述每个节点的可选实现集合以及资源增益集合;其中,所述可选实现集合包括所述每个节点的实现方式,所述资源增益集合包括与所述每个节点的实现方式一一对应的资源增益;针对所述布尔逻辑网络中的每条边,根据所述可选实现集合计算所述每条边的约束值;根据所述所述资源增益集合和所述每条边的约束值,将所述布尔逻辑网络转换为约束冲突图。每个逻辑门在标准单元库中可以找到多种实现。在一些实施例中,可以令代表逻辑门,/>代表对节点/>的所有可选实现集合,/>代表每个选择下的资源增益。
在一些实施例中,所述布尔逻辑网络中的每条边包括头节点和尾节点;所述针对所述布尔逻辑网络中的每条边,根据所述可选实现集合计算所述每条边的约束值可以进一步包括:根据所述可选实现集合,得到所述头节点的实现以及所述尾节点的实现;根据所述头节点的实现以及所述尾节点的实现,计算所述每条边的约束值。在一些实施例中,可以令表示布尔逻辑网络中的一条边,/>表示当节点/>选择/>并且节点/>选择/>时的约束值。
在一些实施例中,所述根据所述所述资源增益集合和所述每条边的约束值,将所述布尔逻辑网络转换为约束冲突图可以进一步包括:响应于所述约束值满足预设的约束条件,构建与所述约束值对应的所述约束冲突图的节点;响应于所述约束冲突图的节点满足预设的条件,构建所述约束冲突图的边。对所有的,如果其满足约束值,可以创建一个约束冲突图300节点/>,并对其赋值权重/>。针对约束冲突图中任意的两个节点,,/>,如果该任意的两个节点满足约束条件:
a)或者/>;
b)且/>;
c)且/>;其中,/>、/>分别表示节点/>和节点/>的另一种可选实现;
则在约束冲突图300添加一条无向边。
在步骤506,根据所述约束冲突图,得到第一独立集;其中,所述第一独立集用于优化所述数字逻辑电路。
在一些实施例中,所述根据所述约束冲突图,得到第一独立集可以进一步包括:构建最大堆;其中,所述最大堆的各节点的键值对应所述约束冲突图的各节点的键值;弹出所述最大堆的堆顶节点;根据所述堆顶节点,得到所述第一独立集。其中,所述第一独立集为所述约束冲突图的最大独立集。
在一些实施例中,所述约束冲突图的各节点包括目标节点以及所述目标节点的第一邻居节点;所述键值为所述目标节点的权重与所述第一邻居节点的权重之和的比值。例如,对约束冲突图节点,令其键值为/>。其中/>代表节点的权重,/>代表节点的邻居节点集合,即/>。
在一些实施例中,在弹出所述最大堆的堆顶节点后,可以删除所述约束冲突图中的所述堆顶节点以及所述堆顶节点的第二邻居节点;更新所述约束冲突图中各节点的键值。可以理解,节点的邻居节点表示与该节点/>存在冲突的节点,即节点/>与邻居节点不能同时存在。因此,在选出了节点/>后,节点/>的邻居节点/>也需要删除。
在一些实施例中,方法500还可以包括:构建所述约束冲突图的子图;根据所述子图中的节点,得到第二独立集。其中,所述第二独立集为所述子图的最大独立集。
图6示出了根据本申请实施例的示例性计算机设备600的结构示意图。该计算机设备600可以包括:处理器602、存储器604、网络接口606、外围接口608和总线610。其中处理器602、存储器604、网络接口606和外围接口608通过总线610实现彼此之间在设备内部的通信连接。
处理器602可以是中央处理器(Central Processing Unit,CPU)、图像处理器、神经网络处理器(NPU)、微控制器(MCU)、可编程逻辑器件、数字信号处理器(DSP)、应用专用集成电路(Application Specific Integrated Circuit,ASIC)或者一个或多个集成电路。处理器602可以用于执行与本申请描述的技术相关的功能。在一些实施例中,处理器602还可以包括集成为单一逻辑组件的多个处理器。如图6所示,处理器602可以包括多个处理器602a、602b和602c。
存储器604可以配置为存储数据(例如,指令集、计算机代码、中间数据等)。例如,如图6所示,存储的数据可以包括程序指令(例如,用于实现本申请的技术方案的程序指令)以及待处理的数据。处理器602也可以访问存储的程序指令和数据,并且执行程序指令以对要处理的数据进行操作。存储器604可以包括易失性存储装置或非易失性存储装置。在一些实施例中,存储器604可以包括随机访问存储器(RAM)、只读存储器(ROM)、光盘、磁盘、硬盘、固态硬盘(SSD)、闪存、存储棒等。
网络接口606可以配置为经由网络向计算机设备600提供与其他外部设备的通信。该网络可以是能够传输和接收数据的任何有线或无线的网络。例如,该网络可以是有线网络、本地无线网络(例如,蓝牙、WiFi、近场通信(NFC)等)、蜂窝网络、因特网、或上述的组合。可以理解的是,网络的类型不限于上述具体示例。在一些实施例中,网络接口606可以包括任意数量的网络接口控制器(NIC)、射频模块、接收发器、调制解调器、路由器、网关、适配器、蜂窝网络芯片等的任意组合。
外围接口608可以配置为将计算机设备600与一个或多个外围装置连接,以实现信息输入及输出。例如,外围装置可以包括键盘、鼠标、触摸板、触摸屏、麦克风、各类传感器等输入设备以及显示器、扬声器、振动器、指示灯等输出设备。
总线610可以被配置为在计算机设备600的各个组件(例如处理器602、存储器604、网络接口606和外围接口608)之间传输信息,诸如内部总线(例如,处理器-存储器总线)、外部总线(USB端口、PCI-E总线)等。
需要说明的是,尽管上述设备仅示出了处理器602、存储器604、网络接口606、外围接口608和总线610,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本申请实施例方案所必需的组件,而不必包含图中所示的全部组件。
上述实施例的计算机设备用于实现前述任一实施例中相应的方法200或方法500,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的方法200或方法500。
本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的方法200或方法500,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法200或方法500相对应的,本申请还提供了一种计算机程序产品,其包括计算机程序。在一些实施例中,所述计算机程序由一个或多个处理器可执行以使得所述处理器执行所述的方法200或方法500。对应于方法200或方法500各实施例中各步骤对应的执行主体,执行相应步骤的处理器可以是属于相应执行主体的。
上述实施例的计算机程序产品用于使处理器执行如上任一实施例所述的方法200或方法500,并且具有相应的方法实施例的有益效果,在此不再赘述。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本申请的范围(包括权利要求)被限于这些例子;在本申请的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本申请实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本申请实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本申请实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本申请实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本申请的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本申请实施例。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本申请的具体实施例对本申请进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本申请实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本申请实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (9)
1.一种用于优化数字逻辑电路的方法,包括:
获取数字逻辑电路,并将所述数字逻辑电路转换为布尔逻辑网络;
将所述布尔逻辑网络转换为约束冲突图;
根据所述约束冲突图,得到第一独立集;其中,所述第一独立集用于优化所述数字逻辑电路,所述第一独立集为所述约束冲突图的最大独立集;
其中,所述将所述布尔逻辑网络转换为约束冲突图进一步包括:
针对所述布尔逻辑网络中的每个节点,得到所述每个节点的可选实现集合,其中,所述可选实现集合包括所述每个节点的实现方式;
针对所述布尔逻辑网络中的每条边,根据所述可选实现集合计算所述每条边的约束值;
响应于所述约束值满足预设的约束条件,构建与所述约束值对应的所述约束冲突图的节点;
响应于所述约束冲突图的节点满足预设的条件,构建所述约束冲突图的边。
2.如权利要求1所述的方法,其中,所述将所述布尔逻辑网络转换为约束冲突图进一步包括:
针对所述布尔逻辑网络中的每个节点,得到所述每个节点的资源增益集合;其中,所述资源增益集合包括与所述每个节点的实现方式一一对应的资源增益;
根据所述所述资源增益集合和所述每条边的约束值,将所述布尔逻辑网络转换为约束冲突图。
3.如权利要求1所述的方法,其中,所述根据所述约束冲突图,得到第一独立集进一步包括:
构建最大堆;其中,所述最大堆的各节点的键值对应所述约束冲突图的各节点的键值;
弹出所述最大堆的堆顶节点;
根据所述堆顶节点,得到所述第一独立集。
4.如权利要求3所述的方法,其中,所述约束冲突图的各节点包括目标节点以及所述目标节点的第一邻居节点;所述键值为所述目标节点的权重与所述第一邻居节点的权重之和的比值。
5.如权利要求3所述的方法,其中,所述方法还包括:
删除所述约束冲突图中的所述堆顶节点以及所述堆顶节点的第二邻居节点;
更新所述约束冲突图中各节点的键值。
6.如权利要求1所述的方法,其中,所述布尔逻辑网络中的每条边包括头节点和尾节点;所述针对所述布尔逻辑网络中的每条边,根据所述可选实现集合计算所述每条边的约束值进一步包括:
根据所述可选实现集合,得到所述头节点的实现以及所述尾节点的实现;
根据所述头节点的实现以及所述尾节点的实现,计算所述每条边的约束值。
7.如权利要求1所述的方法,其中,所述方法还包括:
构建所述约束冲突图的子图;
根据所述子图中的节点,得到第二独立集。
8.一种计算机设备,包括:
一个或者多个处理器、存储器;以及
一个或多个程序;
其中,所述一个或多个程序被存储在所述存储器中,并且被所述一个或多个处理器执行,所述程序包括用于执行根据权利要求1-7中任一项所述的方法的指令。
9.一种包含计算机程序的非易失性计算机可读存储介质,当所述计算机程序被一个或多个处理器执行时,使得所述处理器执行权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311147763.4A CN116911224B (zh) | 2023-09-07 | 2023-09-07 | 用于优化数字逻辑电路的方法、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311147763.4A CN116911224B (zh) | 2023-09-07 | 2023-09-07 | 用于优化数字逻辑电路的方法、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116911224A CN116911224A (zh) | 2023-10-20 |
CN116911224B true CN116911224B (zh) | 2023-12-05 |
Family
ID=88360508
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311147763.4A Active CN116911224B (zh) | 2023-09-07 | 2023-09-07 | 用于优化数字逻辑电路的方法、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116911224B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021234720A1 (en) * | 2020-05-19 | 2021-11-25 | Chandra Mohan Umapathy | Power performance area optimization driven synthesis |
CN115204076A (zh) * | 2022-07-21 | 2022-10-18 | 北京芯思维科技有限公司 | 集成电路的逻辑优化方法、装置、电子设备及可读介质 |
CN116341429A (zh) * | 2023-05-22 | 2023-06-27 | 芯行纪科技有限公司 | 对逻辑网络进行逻辑重写方法及相关设备 |
CN116341441A (zh) * | 2023-05-22 | 2023-06-27 | 芯行纪科技有限公司 | 对数字逻辑电路进行优化的方法及相关设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2075696A3 (en) * | 2007-05-10 | 2010-01-27 | Texas Instruments Incorporated | Interrupt- related circuits, systems and processes |
US11356100B2 (en) * | 2019-07-12 | 2022-06-07 | Arizona Board Of Regents On Behalf Of Arizona State University | FPGA with reconfigurable threshold logic gates for improved performance, power, and area |
US20220210056A1 (en) * | 2019-07-22 | 2022-06-30 | Arm Limited | Network-On-Chip Topology Generation |
-
2023
- 2023-09-07 CN CN202311147763.4A patent/CN116911224B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021234720A1 (en) * | 2020-05-19 | 2021-11-25 | Chandra Mohan Umapathy | Power performance area optimization driven synthesis |
CN115204076A (zh) * | 2022-07-21 | 2022-10-18 | 北京芯思维科技有限公司 | 集成电路的逻辑优化方法、装置、电子设备及可读介质 |
CN116341429A (zh) * | 2023-05-22 | 2023-06-27 | 芯行纪科技有限公司 | 对逻辑网络进行逻辑重写方法及相关设备 |
CN116341441A (zh) * | 2023-05-22 | 2023-06-27 | 芯行纪科技有限公司 | 对数字逻辑电路进行优化的方法及相关设备 |
Non-Patent Citations (1)
Title |
---|
在形式验证和ATPG中的布尔可满足性问题;邓雨春, 杨士元, 王红, 薛月菊;计算机辅助设计与图形学学报(第10期);1207-1212 * |
Also Published As
Publication number | Publication date |
---|---|
CN116911224A (zh) | 2023-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11281827B1 (en) | Optimization of parameters for synthesis of a topology using a discriminant function module | |
JP7168772B2 (ja) | ニューラルネットワーク捜索方法、装置、プロセッサ、電子機器、記憶媒体及びコンピュータプログラム | |
US20200110790A1 (en) | Optimization device and method of controlling optimization device | |
CN116822422B (zh) | 数字逻辑电路的分析优化方法及相关设备 | |
CN116341441B (zh) | 对数字逻辑电路进行优化的方法及相关设备 | |
CN112632880A (zh) | 用于逻辑系统设计的编译方法、电子设备及存储介质 | |
CN113868992A (zh) | 集成电路的时序约束方法、装置、电子设备及芯片 | |
US20200090051A1 (en) | Optimization problem operation method and apparatus | |
CN114970439A (zh) | 自动布线方法、装置、计算机设备、存储介质 | |
CN116341429B (zh) | 对逻辑网络进行逻辑重写方法及相关设备 | |
CN116822452B (zh) | 芯片布局优化方法及相关设备 | |
CN114117992B (zh) | 一种序列化和反序列化方法、装置和电子设备 | |
US11409934B2 (en) | Generation of hardware design using a constraint solver module for topology synthesis | |
CN116911224B (zh) | 用于优化数字逻辑电路的方法、计算机设备及存储介质 | |
US9734268B2 (en) | Slack redistribution for additional power recovery | |
CN116956778A (zh) | 空间邻居粒子的搜索方法、装置、电子设备及存储介质 | |
CN115293076B (zh) | 生成电路的方法、电子设备及存储介质 | |
CN116401992A (zh) | 一种节点路由路径优化方法及装置 | |
CN114548028B (zh) | 进行低功耗设计的方法、电子设备及存储介质 | |
CN109408873B (zh) | 一种多维阵列信号控制方法、装置及计算机可读存储介质 | |
CN112131824A (zh) | 一种基于标准单元阻挡层的芯片绕线方法 | |
CN117272918B (zh) | 在gui界面中进行时钟树规则配置的方法及相关设备 | |
CN113408223B (zh) | 一种基于智能分析的芯片设计方法 | |
CN112329362B (zh) | 对芯片进行复杂工程修改的通用方法、设备和存储介质 | |
CN116107636B (zh) | 一种硬件加速方法、装置、存储介质及电子设备 |
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 |