CN116341429B - 对逻辑网络进行逻辑重写方法及相关设备 - Google Patents

对逻辑网络进行逻辑重写方法及相关设备 Download PDF

Info

Publication number
CN116341429B
CN116341429B CN202310574790.3A CN202310574790A CN116341429B CN 116341429 B CN116341429 B CN 116341429B CN 202310574790 A CN202310574790 A CN 202310574790A CN 116341429 B CN116341429 B CN 116341429B
Authority
CN
China
Prior art keywords
matching
network
match
infeasible
logic
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
CN202310574790.3A
Other languages
English (en)
Other versions
CN116341429A (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.)
Xinxingji Technology Co ltd
Original Assignee
Xinxingji Technology 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 Xinxingji Technology Co ltd filed Critical Xinxingji Technology Co ltd
Priority to CN202310574790.3A priority Critical patent/CN116341429B/zh
Publication of CN116341429A publication Critical patent/CN116341429A/zh
Application granted granted Critical
Publication of CN116341429B publication Critical patent/CN116341429B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • 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

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

本申请提供一种对逻辑网络进行逻辑重写方法及相关设备。该方法,包括:确定所述逻辑网络对应的目标网络和模板网络;针对所述目标网络中的第一目标节点,构建所述第一目标节点的分割集;利用所述分割集与所述模板网络进行匹配,得到所述分割集对应的第一匹配集合;基于单相覆盖对所述第一匹配集合进行求解,得到第二匹配集合;响应于确定所述第二匹配集合包括不可行的匹配,对所述不可行的匹配进行修复,得到所述不可行的匹配对应的可行的匹配;基于所述第二匹配集合和所述不可行的匹配对应的可行的匹配,对逻辑网络进行逻辑重写。

Description

对逻辑网络进行逻辑重写方法及相关设备
技术领域
本申请涉及数字逻辑电路技术领域,尤其涉及一种对逻辑网络进行逻辑重写方法及相关设备。
背景技术
逻辑重写是一种在保证数字逻辑电路(也常称为逻辑网络,Boolean Network)的逻辑功能等价的基础上的变换方法。通过逻辑重写的变换,电路的时序、功耗或者面积(PPA)将得以优化。现代的数字电路的电子设计自动化(EDA)软件都或多或少地支持逻辑重写技术来实现PPA的优化。
在相关技术中,逻辑重写的计算效率偏低。
发明内容
有鉴于此,本申请的目的在于提出一种对逻辑网络进行逻辑重写方法及相关设备,以解决或部分解决上述问题。
本申请第一方面,提供了一种对逻辑网络进行逻辑重写方法,包括:
确定所述逻辑网络对应的目标网络和模板网络;
针对所述目标网络中的第一目标节点,构建所述第一目标节点的分割集;
利用所述分割集与所述模板网络进行匹配,得到所述分割集对应的第一匹配集合;
基于单相覆盖对所述第一匹配集合进行求解,得到第二匹配集合;
响应于确定所述第二匹配集合包括不可行的匹配,对所述不可行的匹配进行修复,得到所述不可行的匹配对应的可行的匹配;
基于所述第二匹配集合和所述不可行的匹配对应的可行的匹配,对逻辑网络进行逻辑重写。
本申请第二方面,提供了一种计算机设备,包括:
一个或者多个处理器、存储器;以及
一个或多个程序;
其中,所述一个或多个程序被存储在所述存储器中,并且被所述一个或多个处理器执行,所述程序包括用于执行根据第一方面所述的方法的指令。
本申请第三方面,提供了一种包含计算机程序的非易失性计算机可读存储介质,当所述计算机程序被一个或多个处理器执行时,使得所述处理器执行第一方面所述的方法。
本申请提供的对逻辑网络进行逻辑重写方法及相关设备,能够在一定程度上提高逻辑重写的效率。
附图说明
为了更清楚地说明本申请或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A示出了一个示例性的LRP求解器框架。
图1B示出了一个示例性的逻辑网络。
图2A示出了本申请实施例所提供的示例性逻辑重写方法的示意图。
图2B示出了采用本申请实施例的求解近似问题的方法而得到的示例性中间结果的示意图。
图2C示出了一个通过逻辑复制来修复不可行的匹配的示例。
图2D示出了根据本公开实施例的恢复可行解的示例性方法的示意图。
图2E示出了恢复原问题的解的过程中初始化步骤结束之后逻辑网络的状态的示意图。
图2F示出了恢复原问题的解之后逻辑网络的状态的示意图。
图3示出了本申请实施例的框架和流程的示意图。
图4示出了本公开实施例所提供的示例性方法的示意图。
图5示出了本申请实施例所提供的一种计算机设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本申请进一步详细说明。
需要说明的是,除非另外定义,本申请实施例使用的技术术语或者科学术语应当为本申请所属领域内具有一般技能的人士所理解的通常意义。本申请实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
逻辑重写问题(Logic Rewriting Problem,简称LRP)的输入主要分为三部分:待重写的逻辑网络、重写的基本单元(例如,标准单元库(Standard Cell Library)、逻辑资源库、优化后的子网络等)、用户提供的优化目标(例如,本次逻辑重写需要将数字电路的布图面积减小)等。输出则是一个新的逻辑网络,且该新的逻辑网络满足:逻辑上等价于原逻辑网络并实现用户的优化目标。
图1A示出了一个示例性的LRP求解器框架100。
如图1A所示,LRP求解器框架100的基本组成分为三大组成成分:预处理(pre-Processing)、匹配(Mapping)和对该匹配的评估(Evaluation)。
总体的流程是,按照某种启发性的顺序或者规则,挑选一个子网络并在模板网络中寻找对应的匹配。通过对这个匹配的评估,决定是否接受这一匹配。如果这个匹配有助于优化目标,则用在模板网络中匹配到的模板电路代替原来的子网络以实现逻辑重写。
预处理部分主要的目标是对输入的逻辑网络和输入的重写基本单元进行转换以及对损失参数进行估计。在预处理步骤结束之后,输入的逻辑网络被转换成为了目标网络,输入的重写基本单元被转换成为模板网络并且在模板网络上关联了损失参数。
匹配部分主要的目标是在目标网络上选取一个子网络(可以认为是目标网络的一部分或实现某个功能的模块)并在模板网络中进行匹配。在匹配结束时,生成子网络与匹配到的模板网络的匹配对。
评估部分主要的目标是评估接受这个匹配会对当前逻辑网络的优化带来多少增益、是否可以改进优化目标,等等。
其中,匹配与评估可能会循环执行,流程的结束条件一般是:优化目标达成、优化目标收敛或者达到预定的循环截至次数,等等。
下面进一步分析LRP求解器框架100和子模块(或子网络)在相关技术中的研究和业界现状,以示例性地说明本申请实施例所要解决的问题。
预处理阶段处理的问题相对简单。在相关技术中,通常使用与非门网络(And-Inverter-Graph,简称AIG)作为目标网络和模板网络的表达,并给出了一些损失估计的方法。在实际应用中可以高效地对大规模逻辑网络(或大规模集成电路)进行预处理。
匹配阶段包含两大块内容,其一是如何寻找一个子网络,其二是对找到的子网络如何在模板网络中进行匹配。在相关技术中,针对匹配模板网络与子网络的研究提出了一些有效的解决方案。特别是针对规模比较小的子网络匹配,可以做到非常高效。而对于子网络的选取部分,相关技术提出了一种基于传播的“自底到顶”的生成方案。尽管这个方法可以被进一步优化和改进,但是在实践中,特别是对于极小规模的子网络的生成可以做到较为高效。
在解决LRP问题中的真正的难点在于如何对大规模逻辑网络高效地实现全局考虑下的优化。在相关技术中,提供了一种启发式的优化方法,每一次按照某种特定的顺序或规则挑选子网络并进行重写。带来问题是其忽略掉了不同子网络之间的相互影响,每一次评估都是基于前一次评估的结果。这样的处理方式,可能会导致优化陷入局部极小或者甚至无法收敛。通过添加循环次数限制,这样的启发式的方法可以保证运行时间的需求,但是对求解结果的质量则无从保证。在另一些相关技术中,提供了一种面向全局考虑的优化方法,将LRP优化问题建模成了双相覆盖问题(Binate Covering Problem,简称BCP)。然而由于BCP属于NP-Hard问题(指所有NP问题(非确定性多项式(non-deterministic polynomial,简称NP))都能在多项式时间复杂度内归约到的问题),目前已有的寻找其最优解的算法都是指数级别的,并且极大概率不存在多项式时间求解算法。甚至仅仅找到一组可行解都需要求解布尔可满足性(SATISFIABILITY,简称SAT)问题,而这个问题也属于NP-Hard问题。这导致已有的全局考虑的优化算法不能适用于大规模逻辑网络的重写问题。
随着现代数字逻辑电路的规模越来越大,用户对电路性能的要求越来越高,业界迫切需要一种可以在大规模逻辑网络上实现全局下的优化的方法。
为了帮助理解,下面对本申请实施例所涉及的一些概念进行说明。
1、逻辑网络:一种有向无环图(Directed Acyclic Graph,简称DAG)。该图由节点集合V与有向边集合E构成。其中:
1)有向边表示信号的传递方向。对于有向边,定义其起始节点为尾节点,定义其指向节点(或终止节点)为头节点。
2)输入边:对任意的节点v∈V,所有头节点为v的边都被称为该节点v的输入边。
3)输出边:对任意的节点v∈V,所有尾节点为的边都被称为该节点v的输出边。本申请实施例的逻辑网络中,所有的输出边都对应着相同的逻辑信号,该信号也被称为节点v的输出信号。
4)输入信号集:对任意的节点v∈V,其输入信号集表示其输入边所承载的信号的集合。每一个逻辑网络的节点对应着一种确定的逻辑函数,该函数描述了输出信号与输入信号集的关系。
5)输入接口节点():节点集合V的一个子集,该集合中的节点没有输入边。
6)输出接口节点():节点集合V的一个子集,该集合中的节点没有输出边。
2、拓扑排序:对有向无环图DAG一定存在拓扑排序。拓扑排序是对节点集合V进行整数关联的过程。对于一个节点v∈V,分配整数集合中的一个数使得任意两个节点分配到的数字不相同并且分配到的数字顺序与节点之间的拓扑顺序相同。具体地,用vi为整数i所对应的节点,对于任意的i,j∈/>且i≠j,如果在逻辑网络上存在一条从vi到vj的路径,则i<j。
由于用整数i可以唯一确定地表示节点vi,在不影响的阅读的情况下,后文中用i来代表vi
3、传递输入逻辑锥(Transitive Fan-in Cone,简称TFI):一种特别的子网络,是一个针对节点v的集合,并且,TFI集合满足:
1)该集合中的任意节点u到v都存在一条路径;
2)任何从PI到v的路径都至少通过一个TFI集合中的某个节点。
4、分割集(cut): TFI集合的一个子集,移除这个分割集后,所有从PI到v的路径都会被阻断。称节点v是cut的根节点,通常用cut(v)作为对一个根节点在v的一系列分割集的统称。
1)任意一个cut都对应着一个TFI集合。
2)k -分割集(k-cut):大小为k的cut。
5、匹配(match):一个三元组,第一个域表示一个cut,第二个域代表一个模板网络,第三个域是布尔变量(仅包括“0”和“1”这两个取值的变量),该布尔变量用于表示这个匹配是否被选择。
定义mi为一个布尔变量,mi=1代表cut(i)所对应的匹配中至少有一个被选中。定义为cut(i)所表示的所有cut的对应匹配,mi=1亦即当且仅当。反之mi=0意味着cut(i)所对应的全部匹配均未被选中。
在后文中,在不影响的阅读的情况下,mi可以表示的统称。
6、损失(cost):是一个正的实数,表示为c (mi),代表一个匹配被接受的情况下的损失。其中,由于mi不仅仅表示一个匹配,因此c (mi)是一个抽象表示,实际的损失是定义在每个真实的匹配之上,例如,
7、覆盖匹配集合(COV(i)):覆盖匹配是一个match的集合并且这些match所对应的子网络包含节点i,形式上定义为:
其中,
8、匹配支持集合(SUP(mi)):在给定一个匹配mi时,匹配支持集合定义为mi所对应的cut(i)中节点的直接父亲节点。
9、暴露的节点:若节点i属于PI或者mi=1,则节点i属于暴露节点。
10、可行的匹配:当且仅当SUP(mi)内的节点全部属于暴露节点,则匹配mi是一个可行的匹配。
图1B示出了一个示例性的逻辑网络,图1B的节点编号代表该节点的拓扑顺序。
如图1B所示,以节点10为根的cut是集合{6,7},此cut存在一个匹配m10,其对应这图中左侧的虚线框的子网络即TFI 集合{6,7,8,9,10},SUP(m10)为{1,3,4,5},COV(10)为{m10, m12}。
本申请实施例提供了一种对逻辑网络进行逻辑重写方法,在保证全局优化(Global Optimization)效果的基础上,可以在一定程度上提高逻辑重写的处理效率。
图2A示出了本申请实施例所提供的示例性逻辑重写方法200的示意图。
如图2A所示,本申请实施例提供了一种新的基于全局优化的大规模数字电路或超大规模集成电路(Very Large Scale Integration Circuit,简称VLSI)的逻辑重写方法。其基本框架如图2A所示,该方法200主要包括三大步骤:预处理、匹配和优化。
第一步是预处理步骤,可以根据用户输入的待优化的数字逻辑电路来生成目标网络,该目标网络可以是根据该数字逻辑电路的原始电路逻辑来生成的一个等效的布尔逻辑网络,该布尔逻辑网络。
并且,在预处理步骤中,还可以获取用户输入的可以或需要进行重写的候选网络,并可以生成该候选网络对应的模板网络。该模板网络,可以是将诸如标准单元库(StandardCell Library)、逻辑资源库、优化后的子网络、FPGA的查找表(LUT)等资源中的库单元或其他资源依照其原始逻辑而实现为所述候选网络而得到的。可以理解,输入的候选网络可以有多个,相应的,模版网络也可以有多个。
在得到模版网络后,可以获取每个模版网络的约束条件并在对应的模版网络上施加该约束条件从而得到每个模版网络的损失参数。进一步地,可以将该损失参数与对应的模版网络关联起来,这样就得到了关联有相应损失参数的多个模版网络。
可以理解,上述处理方式仅是示例性的,在一些场景下,本步骤可以沿用相关技术中的方法来实现。
第二步是匹配步骤,该步骤可以先对目标网络中的每一个节点i,构建分割集cut(i)。目标网络的每个节点都可以与多个分割集关联。
然后,针对每个分割集cut(i)使用逻辑匹配算法在多个模版网络中匹配得到匹配mi。该逻辑匹配算法可以采用相关技术中的匹配算法,在此不做限制。其中,针对每个分割集cut(i),在执行逻辑匹配算法后存在两种情况,一是,与至少一个模板网络实现匹配,二是,与任何模板网络都不匹配。
在匹配步骤之后,第三步是优化。为了改进相关技术导致的优化陷入局部极小或者甚至无法收敛的问题,本申请实施例采用了全局优化的方法。
基于前面所述,相关技术提供的面向全局考虑的优化方法,将逻辑重写的优化问题建模成了双相覆盖问题(Binate Covering Problem,简称BCP)。由于BCP属于NP-Hard问题,已有的寻找其最优解的算法都是指数级别的,换言之,求解BCP的时间花费很大,导致逻辑重写的效率很低。
因此,第三步优化步骤可以进一步分为两个子步骤:其一,将原问题(BCP)化简为新问题并高效地求解这个新问题;其二,高效地通过新问题的解来构造原问题的解。
为了说明如何化简原问题(BCP),本实施例首先说明BCP的形式化建模。
回顾逻辑重写问题(LRP)的目标,是生成一种新的逻辑网络,在保证新逻辑网络在逻辑上等价于原网络的前提下优化用户设定的目标性能。
为保证新逻辑网络在逻辑上等价于原逻辑网络,在逻辑重写时所选择的匹配集合M必须同时满足以下条件:
有效匹配:集合M中的任何匹配都属于可行的匹配(该定义参见前面的概念说明);
完整覆盖:对原逻辑网络中的每个节点v,存在m∈M使得v∈TFI(m),即求得的匹配的集合必须覆盖原逻辑网络的每个节点;
输出信号暴露:新逻辑网络中所有的属于PO的节点必须被暴露。
本申请实施例所采用的全局优化步骤,可以是在前述匹配得到的第一匹配集合进行求解,以得到一个优化的结果,即第二匹配集合。
进一步地,有效匹配的形式化的表示可以是:
通过数学变换,可以把上式变形为:
而完整覆盖的形式化表示为:
其中,
BCP可以定义为:
在约束下,最小化损失值之和,即
显然,如果仅仅找到一组满足BCP的约束的可行解,就需要求解SAT问题,而SAT问题也是NP-Hard问题,因此,当原网络规模较大时BCP建模将难以适用。
因此,为了提高处理效率,在一些实施例中,通过单相覆盖问题(Unate CoveringProblem,简称UCP)来化简BCP。
UCP的定义与BCP非常相似,主要的区别在于,在UCP中,每一个变量只能以其原变量形式或反变量的形式出现。
观察BCP的定义可知,如果不考虑的约束条件,那么原问题可以化简为UCP。
因此,在一些实施例中,优化步骤的第一个子步骤就是放松有效匹配的限制,去求解UCP,即:在约束下,最小化损失值之和/>。相对于求解BCP,求解UCP的条件被简化,使得求解过程能够更加高效。
在一些实施例中,为了求解这个UCP,可以首先构造一个该UCP的等价问题(SetCover Problem,简称SCP),然后给出高效的近似算法,从而进一步提高计算效率。
具体地,SCP问题的定义可以是:给定一个全集U和全集U的一组子集的集合S={s1,s2,…sm},每个子集所对应的损失为{c1,c2,…cm}。要求从{s1,s2,…sm}内选择最小总损失的子集Q并满足:QS并且Q内全部子集的并集等于全集U。其中,损失c可以根据其对应的匹配所对应的模版网络的损失参数而得到。
基于上述定义,可以通过以下变换把UCP转换为SCP:
1)将前述的求解UCP的约束中的每一个与项视作全集U中的一个元素;
2)将每一个匹配mi视作一个子集sj,该子集的成员为:当mi=1时,取值结果为1的与项。
可以证明,这个SCP等价于原UCP。
由于SCP仍然属于NP-Hard,为了应对大规模输入的需求,在一些实施例中,采用了一种贪心的近似算法:
1)初始化当前覆盖集C=且所选子集集合Q=/>;其中,覆盖集即覆盖匹配集合(COV(i));
2)如果C≠U,则循环执行:
并返回Q。
其中,表示在集合S中找到子集si,使得损失函数/>的取值最小。ci为子集si的损失,V为目标网络的所有节点的集合,C表示当前已覆盖节点的集合,si∩(V-C)表示找到的子集si对V中未被覆盖的节点的贡献(也就是子集si覆盖了多少未被覆盖的节点),可以看出,当子集si覆盖的未被覆盖节点越多,损失函数的分母越大,损失函数的取值越小,并且,损失ci越小,损失函数的取值越小。因此,/>表示找到的子集si,可以覆盖最多的当前未被覆盖的节点且损失最小,即,贪心算法。
3)直至C=U,求得的Q即为上述问题的解;其中,全集U即为第一匹配集合,集合Q也就是第二匹配集合。
根据SCP的构造,全集的大小为全部匹配的数目(第一匹配集合的匹配数目)。设每个节点为根的最大匹配数为k,则。受限于模板网络的大小(其通常是一个常数),子集/>的大小可以认为是一个常数。而与项的数目即全集/>的大小为/>。采用优先级队列实现上述算法,时间复杂度为/>。结合对SCP的问题规模的分析,时间复杂度为/>,由于/>,总的复杂度为/>。根据严格的数学分析,在数学上可以保证上述近似算法所产生的结果与最优解的差距。
根据前述BCP的定义可知,求解BCP所需的时间无法用上述的多项式时间表达,根据采用的算法的复杂度,求解BCP所需的时间是指数时间,一种典型的BCP算法的复杂度为(2*2…*2)^|v|次,其中,V为目标网络的节点集合,可以看出,集合V越大,求解BCP算法的复杂度越高。因此,对于芯片设计而言,由于节点数量过于庞大(通常在百万级别),求解BCP算法的复杂度非常高。明显地,在芯片领域,BCP算法和SCP算法的求解复杂度呈指数级别的差异。
可以看出,全局优化的第一个子步骤,通过将原问题化简并近似求解可以有效地降低计算复杂度和提高处理效率,从而支持大规模的逻辑网络(例如,节点数量超百万)的输入。
由于对问题进行了简化,在求得的解中可能会包括不满足前述要求的匹配。
图2B示出了采用本申请实施例的求解近似问题的方法而得到的示例性中间结果的示意图。
以图2B为例,所有椭圆形虚线框代表UCP问题求解结束的时候所获取的匹配集合,图中不同的虚线框代表了不同类型的匹配,其中包括了可行的匹配(匹配支持集合SUP(mi)中的节点都具有暴露属性)和不可行的匹配。
在一些实施例中,为了满足逻辑网络的等价性原则,当基于简化问题求得的解中包括不满足要求的匹配时,需要基于当前的解来恢复出原问题的解。
本申请的一个可选实施例提出了一种基于逻辑复制的方法来修复不可行的匹配并最终完成原问题解的恢复。
图2C示出了一个通过逻辑复制来修复不可行的匹配的示例。
如图2C所示,不可行的匹配210是UCP求解器得到的不可行的匹配之一。可以知道,若能复制出(或恢复出)额外的节点212,该匹配可以从不可行变为可行。
针对UCP找出的不可行的匹配,首先基于需要暴露的节点反向追踪找出一个子电路。使得:
1)尽可能包含原逻辑网络中需要被暴露的节点。
2)不穿过原逻辑网络中已经暴露出的节点。
鉴于此,如图2D所示,本申请的一些实施例提出一种恢复可行解的算法220如下:
在步骤222,确定算法的输入为UCP选出的匹配集合M(即,前述步骤得到的第二匹配集合),算法的输出为符合原问题要求的匹配集合。
在步骤224,初始化。
在一些实施例中,所述步骤224可以进一步包括以下步骤:
将所述目标网络(逻辑网络或布尔逻辑网络)中所有的节点的颜色标为第一颜色(例如,白色)。
将所述目标网络中所有的PI节点的颜色标为第二颜色(例如,绿色),并且附带子状态为必要。
对匹配集合M(即第二匹配集合)中的所有匹配mi∈M,将i标为所述第二颜色(例如,绿色)。
对所述目标网络中所有的节点i∈PO,在mi中选择一个损失最小的匹配作为必要匹配(设置子状态为必要)。
对所述目标网络中所有的节点j∈SUP(mi),如果j是第一颜色(例如,白色),将其标为第三颜色(例如,红色);否则若j是所述第二颜色(例如,绿色),设置其子状态为必要。
图2E示出了恢复原问题的解的过程中初始化步骤结束之后逻辑网络的状态的示意图。如图2E所示,第三颜色的节点1、4、5表示其属于每个匹配的支持节点集合。
在步骤226,逻辑复制恢复可行解(即可行的匹配)。
在一些实施例中,所述步骤226可以进一步包括以下步骤:
确定所述不可行的匹配对应的根节点;
确定所述根节点对应的匹配支持集合;
针对所述匹配支持集合中的第二目标节点,构建传递输入逻辑锥;
复制所述传递输入逻辑锥成为一个新的子网络SN;
对SN做全局优化重写。
其中,递归调用本申请的方法,对SN做全局优化重写进一步包括:
针对SN中的第三目标节点构建分割集;
利用所述SN中的第三目标节点的分割集与所述模板网络进行匹配,得到所述SN中的第三目标节点的分割集对应的第三匹配集合(类似于第一匹配集合,只是该第三匹配集合与SN对应);
基于单相覆盖对所述第三匹配集合进行求解,得到第四匹配集合(类似于第二匹配集合,只是该第四匹配集合与SN对应)。
换言之,针对SN采用前述的全局优化方法再处理一遍。如果第四匹配集合不存在不可行的匹配,则完成修复步骤,将第四匹配集合与第二匹配集合进行融合或者利用第四匹配集合替换第二匹配集合中的不可行的匹配即可。如果此时还存在不可行的匹配,则可以再次调用本申请的方法,对SN的SN做全局优化重写,直到不再存在不可行的匹配。这样,将优化过后的子电路融合回原网络,并更新节点的暴露状态与匹配的可行状态,从而可以完成修复。
在通过逻辑复制来修复不可行的匹配之后,逻辑网络可能如图2F所示。其中,TFI{5,4,2}将首先作为一次逻辑复制所处理的对象。将其复制为{5’,4’,2’}之后,完成递归调用之后,生成两个匹配,分别以节点5’与节点4’为根,将其标为绿色并设置其子状态为必要。类似地,对节点1做同样的复制之后,得到1’。在通过逻辑复制并引入新的匹配之后,所有的匹配都会成为可行的匹配。
值得注意的是,完成不可行的匹配修复之后,某些匹配会带有非必要的状态,需要将其删除。图2F中的逻辑网络240是一个需要被删除的示例。
因此,在步骤228,可以删除M中非必要的匹配。
在步骤230,返回M。
这样,就将简化问题得到的解中的不可行的匹配恢复为原问题的解(即,可行的匹配)。
在得到所有的解之后,利用这些解对应的匹配来对逻辑网络进行重写,就可以得到优化后的逻辑网络。
作为总结,图3示出了本申请实施例的框架和流程300的示意图。
如图3所示,本申请的一些实施例所提供的逻辑重写方法,可以对输入的逻辑网络进行预处理后得到目标网络,然后基于目标网络来与模板网络进行匹配。在得到一些匹配的集合(初始匹配)后,可以利用UCP来构建基于优化目标的求解问题,并可以对构建的UCP进行求解,得到中间结果(基于UCP问题而从初始匹配中选择出的匹配)。然后可以对该中间结果中的不可行的匹配进行修复,具体可以利用逻辑复制的方式来实现修复(并可以对复制得到的子网络采用递归调用本申请的方法来对进行全局优化重写),从而最终得到优化的逻辑网络。
需要说明的是,本申请实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本申请实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
需要说明的是,上述对本申请的一些实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
图4示出了本公开实施例所提供的示例性方法400的示意图。
如图4所示,本公开实施例所提供的对逻辑网络进行逻辑重写方法400,可以包括以下步骤:
在步骤402,确定所述逻辑网络对应的目标网络(即,逻辑网络或布尔逻辑网络)和模板网络;
在步骤404,针对所述目标网络中的第一目标节点,构建所述第一目标节点的分割集;目标网络中的每个节点都需要构建分割集;
在步骤406,利用所述分割集与所述模板网络进行匹配,得到所述分割集对应的第一匹配集合;
在步骤408,基于单相覆盖对所述第一匹配集合进行求解,得到第二匹配集合;
在步骤410,响应于确定所述第二匹配集合包括不可行的匹配,对所述不可行的匹配进行修复,得到所述不可行的匹配对应的可行的匹配;
在步骤412,基于所述第二匹配集合和所述不可行的匹配对应的可行的匹配,对逻辑网络进行逻辑重写。
在一些实施例中,基于单相覆盖对所述第一匹配集合进行求解,得到第二匹配集合,包括:
确定对所述第一匹配集合进行求解的单相覆盖问题;
将所述单相覆盖问题转化为一个等价问题;
采用贪心算法对所述等价问题求解,得到所述第二匹配集合。
在一些实施例中,所述等价问题的定义是:给定一个全集U和全集U的一组子集的集合S={s1,s2,…sm},每个子集所对应的损失为{c1,c2,…cm},要求从{s1,s2,…sm}内选择最小总损失的子集Q,且子集Q满足:QS并且Q内全部子集的并集等于全集U;
将所述单相覆盖问题转化为一个等价问题,进一步包括:
将求解单相覆盖问题的约束中的每一个与项视作全集U中的一个元素;
将所述第一匹配集合中的每一个第一匹配视作一个子集sj,该子集的成员为:当第一匹配mi=1时,取值结果为1的与项。
在一些实施例中,采用贪心算法对所述等价问题求解,包括:
初始化当前覆盖集C=且所选子集集合Q=/>
如果C≠U,则循环执行:
并返回Q;
其中,ci为子集si的损失,V为目标网络的所有节点的集合。
在一些实施例中,对所述不可行的匹配进行修复,得到所述不可行的匹配对应的可行的匹配,包括:
确定所述不可行的匹配对应的根节点;
确定所述根节点对应的匹配支持集合;
针对所述匹配支持集合中的第二目标节点,构建传递输入逻辑锥;
复制所述传递输入逻辑锥成为一个新的子网络SN;
对SN做全局优化重写。
在一些实施例中,对SN做全局优化重写,包括:
针对SN中的第三目标节点构建分割集;
利用所述SN中的第三目标节点的分割集与所述模板网络进行匹配,得到所述SN中的第三目标节点的分割集对应的第三匹配集合;
基于单相覆盖对所述第三匹配集合进行求解,得到第四匹配集合。
在一些实施例中,对所述不可行的匹配进行修复,得到所述不可行的匹配对应的可行的匹配之后,所述方法还包括:
删除最终得到的第二匹配集合中的非必要的匹配。
需要说明的是,本申请实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本申请实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
需要说明的是,上述对本申请的一些实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上任意一实施例所述的方法200、300或400。
图5示出了本申请实施例所提供的一种计算机设备500的结构示意图。该计算机设备500可以包括:处理器502、存储器504、网络接口506、外围接口508和总线510。其中处理器502、存储器504、网络接口506和外围接口508通过总线510实现彼此之间在设备内部的通信连接。
处理器502可以是中央处理器(Central Processing Unit,CPU)、图像处理器、神经网络处理器(NPU)、微控制器(MCU)、可编程逻辑器件、数字信号处理器(DSP)、应用专用集成电路(Application Specific Integrated Circuit,ASIC)或者一个或多个集成电路。处理器502可以用于执行与本申请描述的技术相关的功能。在一些实施例中,处理器502还可以包括集成为单一逻辑组件的多个处理器。如图5所示,处理器502可以包括多个处理器502a、502b和502c。
存储器504可以配置为存储数据(例如,指令集、计算机代码、中间数据等)。例如,如图5所示,存储的数据可以包括程序指令(例如,用于实现本申请的技术方案的程序指令)以及待处理的数据。处理器502也可以访问存储的程序指令和数据,并且执行程序指令以对要处理的数据进行操作。存储器504可以包括易失性存储装置或非易失性存储装置。在一些实施例中,存储器104可以包括随机访问存储器(RAM)、只读存储器(ROM)、光盘、磁盘、硬盘、固态硬盘(SSD)、闪存、存储棒等。
网络接口506可以配置为经由网络向计算机设备500提供与其他外部设备的通信。该网络可以是能够传输和接收数据的任何有线或无线的网络。例如,该网络可以是有线网络、本地无线网络(例如,蓝牙、WiFi、近场通信(NFC)等)、蜂窝网络、因特网、或上述的组合。可以理解的是,网络的类型不限于上述具体示例。在一些实施例中,网络接口506可以包括任意数量的网络接口控制器(NIC)、射频模块、接收发器、调制解调器、路由器、网关、适配器、蜂窝网络芯片等的任意组合。
外围接口508可以配置为将计算机设备500与一个或多个外围装置连接,以实现信息输入及输出。例如,外围装置可以包括键盘、鼠标、触摸板、触摸屏、麦克风、各类传感器等输入设备以及显示器、扬声器、振动器、指示灯等输出设备。
总线510可以被配置为在计算机设备500的各个组件(例如处理器502、存储器504、网络接口506和外围接口508)之间传输信息,诸如内部总线(例如,处理器-存储器总线)、外部总线(USB端口、PCI-E总线)等。
需要说明的是,尽管上述设备仅示出了处理器502、存储器504、网络接口506、外围接口508和总线510,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本申请实施例方案所必需的组件,而不必包含图中所示的全部组件。
上述实施例的计算机设备用于实现前述任一实施例中相应的方法200、300或400,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的方法200、300或400。
本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的方法200、300或400,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法200、300或400相对应的,本申请还提供了一种计算机程序产品,其包括计算机程序。在一些实施例中,所述计算机程序由一个或多个处理器可执行以使得所述处理器执行所述的方法200、300或400。对应于方法200、300或400各实施例中各步骤对应的执行主体,执行相应步骤的处理器可以是属于相应执行主体的。
上述实施例的计算机程序产品用于使处理器执行如上任一实施例所述的方法200、300或400,并且具有相应的方法实施例的有益效果,在此不再赘述。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本申请的范围(包括权利要求)被限于这些例子;在本申请的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本申请实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本申请实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本申请实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本申请实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本申请的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本申请实施例。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本申请的具体实施例对本申请进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本申请实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本申请实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (7)

1.一种对逻辑网络进行逻辑重写方法,包括:
确定所述逻辑网络对应的目标网络和模板网络;
针对所述目标网络中的第一目标节点,构建所述第一目标节点的分割集;
利用所述分割集与所述模板网络进行匹配,得到所述分割集对应的第一匹配集合;
基于单相覆盖对所述第一匹配集合进行求解,得到第二匹配集合;
响应于确定所述第二匹配集合包括不可行的匹配,对所述不可行的匹配进行修复,得到所述不可行的匹配对应的可行的匹配;
基于所述第二匹配集合和所述不可行的匹配对应的可行的匹配,对逻辑网络进行逻辑重写;
其中,基于单相覆盖对所述第一匹配集合进行求解,得到第二匹配集合,包括:确定对所述第一匹配集合进行求解的单相覆盖问题;将所述单相覆盖问题转化为一个等价问题;采用贪心算法对所述等价问题求解,得到所述第二匹配集合;
对所述不可行的匹配进行修复,得到所述不可行的匹配对应的可行的匹配,包括:确定所述不可行的匹配对应的根节点;确定所述根节点对应的匹配支持集合;针对所述匹配支持集合中的第二目标节点,构建传递输入逻辑锥;复制所述传递输入逻辑锥成为一个新的子网络SN;对SN做全局优化重写。
2.如权利要求1所述的方法,其中,所述等价问题的定义是:给定一个全集U和全集U的一组子集的集合S={s1,s2,…sm},每个子集所对应的损失为{c1,c2,…cm},要求从{s1,s2,…sm}内选择最小总损失的子集Q,且子集Q满足:QS并且Q内全部子集的并集等于全集U;
将所述单相覆盖问题转化为一个等价问题,进一步包括:
将求解单相覆盖问题的约束中的每一个与项视作全集U中的一个元素;
将所述第一匹配集合中的每一个第一匹配视作一个子集sj,该子集的成员为:当第一匹配mi=1时,取值结果为1的与项。
3.如权利要求2所述的方法,其中,采用贪心算法对所述等价问题求解,包括:
初始化当前覆盖集C=且所选子集集合Q=/>
如果C≠U,则循环执行:
并返回Q;
其中,ci为子集si的损失,V为目标网络的所有节点的集合。
4.如权利要求1所述的方法,其中,对SN做全局优化重写,包括:
针对SN中的第三目标节点构建分割集;
利用所述SN中的第三目标节点的分割集与所述模板网络进行匹配,得到所述SN中的第三目标节点的分割集对应的第三匹配集合;
基于单相覆盖对所述第三匹配集合进行求解,得到第四匹配集合。
5.如权利要求1所述的方法,其中,对所述不可行的匹配进行修复,得到所述不可行的匹配对应的可行的匹配之后,所述方法还包括:
删除最终得到的第二匹配集合中的非必要的匹配。
6.一种计算机设备,包括:
一个或者多个处理器、存储器;以及
一个或多个程序;
其中,所述一个或多个程序被存储在所述存储器中,并且被所述一个或多个处理器执行,所述程序包括用于执行根据权利要求1-5中任一项所述的方法的指令。
7.一种包含计算机程序的非易失性计算机可读存储介质,当所述计算机程序被一个或多个处理器执行时,使得所述处理器执行权利要求1-5中任一项所述的方法。
CN202310574790.3A 2023-05-22 2023-05-22 对逻辑网络进行逻辑重写方法及相关设备 Active CN116341429B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310574790.3A CN116341429B (zh) 2023-05-22 2023-05-22 对逻辑网络进行逻辑重写方法及相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310574790.3A CN116341429B (zh) 2023-05-22 2023-05-22 对逻辑网络进行逻辑重写方法及相关设备

Publications (2)

Publication Number Publication Date
CN116341429A CN116341429A (zh) 2023-06-27
CN116341429B true CN116341429B (zh) 2023-08-08

Family

ID=86886134

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310574790.3A Active CN116341429B (zh) 2023-05-22 2023-05-22 对逻辑网络进行逻辑重写方法及相关设备

Country Status (1)

Country Link
CN (1) CN116341429B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116822422B (zh) * 2023-08-31 2023-11-07 芯行纪科技有限公司 数字逻辑电路的分析优化方法及相关设备
CN116911224B (zh) * 2023-09-07 2023-12-05 芯行纪科技有限公司 用于优化数字逻辑电路的方法、计算机设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000165230A (ja) * 1998-11-26 2000-06-16 Pfu Ltd プログラマブル論理回路
CN102231133A (zh) * 2011-07-05 2011-11-02 上海交通大学 基于重写逻辑的并发实时程序验证的优化处理系统及其方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2304622A1 (en) * 2008-05-15 2011-04-06 Universiteit Gent Parameterized configuration for a programmable logic device
US9852374B2 (en) * 2013-04-24 2017-12-26 Alcatel Lucent Ontological concept expansion for improved similarity measures for description logic

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000165230A (ja) * 1998-11-26 2000-06-16 Pfu Ltd プログラマブル論理回路
CN102231133A (zh) * 2011-07-05 2011-11-02 上海交通大学 基于重写逻辑的并发实时程序验证的优化处理系统及其方法

Also Published As

Publication number Publication date
CN116341429A (zh) 2023-06-27

Similar Documents

Publication Publication Date Title
CN116341429B (zh) 对逻辑网络进行逻辑重写方法及相关设备
US11106567B2 (en) Combinatoric set completion through unique test case generation
US9792397B1 (en) System and method for designing system on chip (SoC) circuits through artificial intelligence and reinforcement learning
WO2018171717A1 (zh) 面向神经网络处理器的自动化设计方法和系统
US10684776B2 (en) Memory configuration for inter-processor communication in an MPSoC
CN116341441B (zh) 对数字逻辑电路进行优化的方法及相关设备
CN104699883A (zh) 采用紧凑多波形表示的电路设计评估
CN113703775A (zh) 一种编译方法、装置、设备及存储介质
CN116822422B (zh) 数字逻辑电路的分析优化方法及相关设备
CN112600893A (zh) 基于大数据定位的软件应用数据挖掘方法及软件服务平台
CN105320681A (zh) 一种数据库内容合并方法及装置
CN112070202B (zh) 一种融合图的生成方法、生成装置和计算机可读存储介质
Jakob et al. Parallel globally consistent normal orientation of raw unorganized point clouds
US8418119B2 (en) Logical circuit netlist reduction and model simplification using simulation results containing symbolic values
US20240095529A1 (en) Neural Network Optimization Method and Apparatus
US5796621A (en) Circuit delay abstraction tool
WO2022104616A1 (en) Non-linear causal modeling based on encoded knowledge
CN114548028B (zh) 进行低功耗设计的方法、电子设备及存储介质
US8782587B2 (en) Systems and methods for generating a higher level description of a circuit design based on connectivity strengths
CN112465116A (zh) 运算方法、装置、电子设备和存储介质
EP4261734A1 (en) Automatic configuration of pipeline modules in an electronics system
TWI765836B (zh) 用於類比電路尺寸調整之方法及裝置
CN114615150B (zh) 一种仿真网络生成方法和装置
WO2024066808A1 (zh) 量子线路生成方法、装置、存储介质及电子装置
US20240095435A1 (en) Algorithmic circuit design automation

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