用于优化数字逻辑电路的方法、计算机设备及存储介质技术

技术编号:39158513 阅读:14 留言:0更新日期:2023-10-23 15:01
本申请提供一种用于优化数字逻辑电路的方法、计算机设备及存储介质,通过将数字逻辑电路转换为布尔逻辑网络,并将布尔逻辑网络转换为约束冲突图,基于该约束冲突图得到用于优化数字逻辑电路的第一独立集,以达到在全局层面下高效求解约束下的资源优化的目的,从而使得EDA工具可以在较短的运行时间内优化电路。得EDA工具可以在较短的运行时间内优化电路。得EDA工具可以在较短的运行时间内优化电路。

【技术实现步骤摘要】
用于优化数字逻辑电路的方法、计算机设备及存储介质


[0001]本申请涉及数字逻辑电路
,尤其涉及一种用于优化数字逻辑电路的方法、计算机设备及存储介质。

技术介绍

[0002]随着现代数字逻辑电路的规模越来越大,用户对于电路的时序、功耗或者面积(Performance Power Area,PPA)的要求越来越高。逻辑门的实现变换是提升PPA的常用的手段。对于同一种功能的逻辑门,代工厂的标准单元库会针对同一种逻辑门提供多个可选实现单元。不同单元的时序、面积、功耗都有一定的区别,需要电子设计自动化(EDA)软件自动地对每个逻辑门挑选适合的实现单元。
[0003]然而,由于数字逻辑电路的规模越来越大,芯片设计师迫切需要数字电路的EDA工具可以高效地完成对电路的全局层面优化。这意味着现代EDA工具面临着前所未有的挑战。

技术实现思路

[0004]有鉴于此,本申请的目的在于提出一种用于优化数字逻辑电路的方法、计算机设备及存储介质。
[0005]基于上述目的,本申请第一方面,提供了一种用于优化数字逻辑电路的方法,包括:获取数字逻辑电路,并将所述数字逻辑电路转换为布尔逻辑网络;将所述布尔逻辑网络转换为约束冲突图;根据所述约束冲突图,得到第一独立集;其中,所述第一独立集用于优化所述数字逻辑电路。
[0006]本申请第二方面,提供了一种计算机设备,包括:一个或者多个处理器、存储器;以及一个或多个程序;其中,所述一个或多个程序被存储在所述存储器中,并且被所述一个或多个处理器执行,所述程序包括用于执行如第一方面所述的方法的指令。
[0007]本申请第三方面,提供了一种包含计算机程序的非易失性计算机可读存储介质,当所述计算机程序被一个或多个处理器执行时,使得所述处理器执行如第一方面所述的方法。
[0008]从上面所述可以看出,本申请提供的一种用于优化数字逻辑电路的方法、计算机设备及存储介质,通过将数字逻辑电路转换为布尔逻辑网络,并将布尔逻辑网络转换为约束冲突图,基于该约束冲突图得到用于优化数字逻辑电路的第一独立集,以达到在全局层面下高效求解约束下的资源优化的目的,从而使得EDA工具可以在较短的运行时间内优化电路。
附图说明
[0009]为了更清楚地说明本申请或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附
图获得其他的附图。
[0010]图1示出了根据本申请实施例的示例性布尔逻辑网络的示意图。
[0011]图2示出了根据本申请实施例的示例性用于优化数字逻辑电路的方法的流程图。
[0012]图3示出了根据本申请实施例的示例性约束冲突图的示意图。
[0013]图4示出了根据本申请实施例的示例性约束冲突图的子图的示意图。
[0014]图5示出了根据本申请实施例的另一示例性用于优化数字逻辑电路的方法的流程图。
[0015]图6示出了根据本申请实施例的示例性计算机设备的结构示意图。
具体实施方式
[0016]为使本申请的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本申请进一步详细说明。
[0017]需要说明的是,除非另外定义,本申请实施例使用的技术术语或者科学术语应当为本申请所属领域内具有一般技能的人士所理解的通常意义。本申请实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
[0018]如
技术介绍
所述,随着现代数字逻辑电路的规模越来越大,利用数字电路的电子设计自动化(EDA)工具高效地完成对电路的全局层面优化也面临着前所未有的挑战。由此,如何在较短的运行时间内优化电路,使得优化后的电路在满足设计(规则)约束的条件下具有尽量优良的PPA是亟待解决的问题。
[0019]为了帮助理解,下面对本申请实施例所涉及的一些概念进行说明。
[0020]1、布尔逻辑网络:一种有向无环图(Directed Acyclic Graph,简称DAG)。该图由节点集合与有向边集合构成。其中:1)有向边表示信号的传递方向。对于有向边,定义其起始节点为尾节点,定义其指向节点(或终止节点)为头节点。
[0021]2)输入边:对任意的节点,所有头节点为的边都被称为该节点的输入边。
[0022]3)输出边:对任意的节点,所有尾节点为的边都被称为该节点的输出边。本申请实施例的布尔逻辑网络中,所有的输出边都对应着相同的逻辑信号,该信号也被称为节点的输出信号。
[0023]4)直接前序节点与直接后序节点:对任意的节点,若为的直接前序节点,则存在一条以为尾节点,为头节点的边;若为的直接前序节点,则为的直接后序节点。
[0024]5)输入信号集:对任意的节点,其输入信号集表示其输入边所承载的信号的集合。每一个布尔逻辑网络的节点对应着一种确定的逻辑函数,该函数描述了输出信号与
输入信号集的关系。
[0025]6)输入接口节点():一个的子集,该集合中的节点没有输入边。
[0026]7)输出接口节点():一个的子集,该集合中的节点没有输出边。
[0027]2、拓扑排序:对有向无环图DAG一定存在拓扑排序。拓扑排序是对节点集合进行整数关联的过程。对于一个节点分配整数集合中的一个数使得任意两个节点分配到的数字不相同并且分配到的数字顺序与节点之间的拓扑顺序相同。具体地,用作为整数所对应的节点,对于任意的且,如果在布尔逻辑网络上存在一条从到的路径,则。
[0028]由于用整数可以唯一确定地表示节点,在不影响理解的情况下,后文中用来代表。
[0029]图1示出了根据本申请实施例的示例性布尔逻辑网络100的示意图。
[0030]如图1所示,在一些实施例中,算法的输入可以是布尔逻辑网络100,该布尔逻辑网络100可以由数字逻辑电路转换得到。其中,布尔逻辑网络100的每一个节点(例如,节点A、B、C、D)可以代表一个逻辑门。其前序节点代表向此逻辑门提供信号的逻辑门,其后序节点代表接受该节点信号的逻辑门(例如,前序节点可以是节点A,后序节点可以是节点B)。
[0031]每个逻辑门在标准单元库中可以找到多种实现。在一些实施例中,可以令代表逻辑门,代表对节点的所有可选实现集合,代表每个选择下的资源增益。其中,为自然数。
[0032]布尔逻辑网络100的每个边代表信号传递的方本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于优化数字逻辑电路的方法,包括:获取数字逻辑电路,并将所述数字逻辑电路转换为布尔逻辑网络;将所述布尔逻辑网络转换为约束冲突图;根据所述约束冲突图,得到第一独立集;其中,所述第一独立集用于优化所述数字逻辑电路。2.如权利要求1所述的方法,其中,所述将所述布尔逻辑网络转换为约束冲突图进一步包括:针对所述布尔逻辑网络中的每个节点,得到所述每个节点的可选实现集合以及资源增益集合;其中,所述可选实现集合包括所述每个节点的实现方式,所述资源增益集合包括与所述每个节点的实现方式一一对应的资源增益;针对所述布尔逻辑网络中的每条边,根据所述可选实现集合计算所述每条边的约束值;根据所述所述资源增益集合和所述每条边的约束值,将所述布尔逻辑网络转换为约束冲突图。3.如权利要求2所述的方法,其中,所述根据所述所述资源增益集合和所述每条边的约束值,将所述布尔逻辑网络转换为约束冲突图进一步包括:响应于所述约束值满足预设的约束条件,构建与所述约束值对应的所述约束冲突图的节点;响应于所述约束冲突图的节点满足预设的条件,构建所述约束冲突图的边。4.如权利要求3所述的方法,其中,所述根据所述约束冲突图,得到第一独立集进一步包括:构建最大堆;其中,所述最大堆的各节点的键值对应所述约束冲突图的各节点的键值;弹出所述最大堆的堆顶节点;根据所述堆顶节点,得到所述第一独立集。5.如权利...

【专利技术属性】
技术研发人员:邢自然
申请(专利权)人:芯行纪科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1