CN115293078B - 集成电路的节点改写方法、装置、电子设备及介质 - Google Patents

集成电路的节点改写方法、装置、电子设备及介质 Download PDF

Info

Publication number
CN115293078B
CN115293078B CN202210859018.1A CN202210859018A CN115293078B CN 115293078 B CN115293078 B CN 115293078B CN 202210859018 A CN202210859018 A CN 202210859018A CN 115293078 B CN115293078 B CN 115293078B
Authority
CN
China
Prior art keywords
matrix
segmentation
node
integrated circuit
nodes
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
CN202210859018.1A
Other languages
English (en)
Other versions
CN115293078A (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.)
Beijing Xinsi Technology Co ltd
Original Assignee
Beijing Xinsi 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 Beijing Xinsi Technology Co ltd filed Critical Beijing Xinsi Technology Co ltd
Priority to CN202210859018.1A priority Critical patent/CN115293078B/zh
Publication of CN115293078A publication Critical patent/CN115293078A/zh
Application granted granted Critical
Publication of CN115293078B publication Critical patent/CN115293078B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • 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/337Design optimisation
    • 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

Abstract

本公开涉及一种集成电路的节点改写方法、装置、电子设备及计算机可读介质。该方法包括:生成集成电路的多个最大独立扇出锥;生成所述多个最大独立扇出锥中的每个最大独立扇出锥的多个切分集合;根据切分集合中节点的数量将所述多个切分集合分别存储在至少一个数组中;基于所述至少一个数组对所述集成电路进行节点改写。本申请涉及的集成电路的节点改写方法、装置、电子设备及计算机可读介质,能够将集成电路逻辑网络中节点之间的关系由原有的链接式更新为矩阵形式,并通过矩阵计算方式,快速准确的对集成电路进行节点改写。

Description

集成电路的节点改写方法、装置、电子设备及介质
技术领域
本公开涉及集成电路设计领域,具体而言,涉及一种集成电路的节点改写方法、装置、电子设备及计算机可读介质。
背景技术
通常,在给定了电路规格与设计要求之后,电路设计工程师会利用硬件描述语言(Hardware Description Language,HDL)对电路的行为进行设计。通过HDL可将逻辑电路功能转换成电路结构描述,电路结构一般使用多级逻辑网络(multi-level logic networks)来表示。
对于一个确定功能的集成电路而言,由于在编写过程中编写代码不同,其可能对应着不同的实际电路,复杂度也差异很大。由于这个原因,在实际设计阶段,经常会对集成电路对应的逻辑网络进行优化,以减轻实际电路的复杂度。可通过减少集成电路对应的逻辑函数,从而让所用的逻辑门数减少。也就是减少集成电路对应的多层次的逻辑网络中节点的数量,同时满足原有涉及中的时序、面积、功耗要求。
对于复杂的集成电路而言,其对应的逻辑网络节点数量众多,在节点优化的过程中,经常需要反复大量的对逻辑网络和网络中节点进行遍历和读取等操作,占用大量的处理时间,处理效率低下。
因此,需要一种新的集成电路的节点改写方法、装置、电子设备及计算机可读介质。
在所述背景技术部分公开的上述信息仅用于加强对本申请的背景的理解,因此它可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
有鉴于此,本申请提供一种集成电路的节点改写方法、装置、电子设备及计算机可读介质,能够将集成电路逻辑网络中节点之间的关系由原有的链接式更新为矩阵形式,并通过矩阵计算方式,快速准确的对集成电路进行节点改写。
本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
根据本申请的一方面,提出一种集成电路的节点改写方法,该方法包括:生成集成电路的多个最大独立扇出锥;生成所述多个最大独立扇出锥中的每个最大独立扇出锥的多个切分集合;根据切分集合中节点的数量将所述多个切分集合分别存储在至少一个数组中;基于所述至少一个数组对所述集成电路进行节点改写。
在本申请的一种示例性实施例中,根据切分集合中节点的数量将所述多个切分集合分别存储在至少一个数组中,包括:生成多个长度不同的数组;根据切分集合中节点的数量和数组的长度之间的关系将所述多个切分集合分别存储在不同数组中;所述切分集合的所属节点记录在所述切分集合的索引中。
在本申请的一种示例性实施例中,基于所述至少一个数组对所述集成电路进行节点改写,包括:由所述至少一个数组中提取待优化的目标数组;逐一提取所述目标数组中的多个切分集合;对所述多个切分集合进行节点改写。
在本申请的一种示例性实施例中,由所述至少一个数组中提取待优化的目标数组,包括:根据所述集成电路的优化目标确定优化节点数;根据所述优化节点数由所述至少一个数组中提取目标数组。
在本申请的一种示例性实施例中,对所述多个切分集合进行节点改写,包括:获取集成电路的多级逻辑网络数据;基于所述多级逻辑网络数据中的节点和其对应的有向边生成所述集成电路的邻接矩阵;基于所述邻接矩阵生成所述多个切分集合对应的切分矩阵;基于多个切分矩阵和矩阵计算进行节点改写。
在本申请的一种示例性实施例中,基于多个切分矩阵和矩阵计算进行节点改写,包括:并行对所述多个切分矩阵进行矩阵计算以进行节点改写。
在本申请的一种示例性实施例中,基于多个切分矩阵和矩阵计算进行节点改写,包括:生成多个替换电路结构对应的多个替换矩阵;逐一提取多个切分矩阵中的一个切分矩阵;由所述多个替换矩阵中提取目标替换矩阵;基于目标替换矩阵和所述切分矩阵进行矩阵操作以进行节点改写。
在本申请的一种示例性实施例中,由所述多个替换矩阵中提取目标替换矩阵,包括:获取所述多个替换矩阵的节点数量;提取小于所述切分矩阵的节点数量的替换矩阵作为所述目标替换矩阵。
在本申请的一种示例性实施例中,基于多个切分矩阵和矩阵计算进行节点改写优化,包括:在所述多个切分矩阵中提取无节点重叠的至少一个切分矩阵;确定无节点重叠的所述至少一个切分矩阵对应的至少一个目标替换矩阵;将所述至少一个目标替换矩阵拼接为拼接矩阵;基于所述拼接矩阵和所述至少一个切分矩阵进行矩阵计算以进行节点改写。
在本申请的一种示例性实施例中,将所述至少一个目标替换矩阵拼接为拼接矩阵,包括:根据目标替换矩阵对应的切分矩阵的位置关系将所述至少一个目标替换矩阵拼接为所述拼接矩阵。
根据本申请的一方面,提出一种集成电路的节点改写装置,该装置包括:集合模块,用于生成集成电路的多个最大独立扇出锥;切分模块,用于生成所述多个最大独立扇出锥中的每个最大独立扇出锥的多个切分集合;数组模块,用于根据切分集合中节点的数量将所述多个切分集合分别存储在至少一个数组中;改写模块,用于基于所述至少一个数组对所述集成电路进行节点改写。
根据本申请的一方面,提出一种电子设备,该电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如上文的方法。
根据本申请的一方面,提出一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上文中的方法。
根据本申请的集成电路的节点改写方法、装置、电子设备及计算机可读介质,通过生成集成电路的多个最大独立扇出锥;生成所述多个最大独立扇出锥中的每个最大独立扇出锥的多个切分集合;根据切分集合中节点的数量将所述多个切分集合分别存储在至少一个数组中;基于所述至少一个数组对所述集成电路进行节点改写的方式,能够将集成电路逻辑网络中节点之间的关系由原有的链接式更新为矩阵形式,并通过矩阵计算方式,快速准确的对集成电路进行节点改写。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
附图说明
通过参照附图详细描述其示例实施例,本申请的上述和其它目标、特征及优点将变得更加显而易见。下面描述的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是集成电路的多级逻辑网络示意图。
图2是根据一示例性实施例示出的一种集成电路的节点改写方法的流程图。
图3是根据另一示例性实施例示出的一种集成电路的节点改写方法的示意图。
图4是根据另一示例性实施例示出的一种集成电路的节点改写方法的示意图。
图5是根据一示例性实施例示出的一种集成电路的节点改写方法的流程图。
图6是根据一示例性实施例示出的一种集成电路的节点改写方法的流程图。
图7是根据另一示例性实施例示出的一种集成电路的节点改写方法的示意图。
图8是根据另一示例性实施例示出的一种集成电路的节点改写方法的示意图。
图9是根据另一示例性实施例示出的一种集成电路的节点改写方法的示意图。
图10是根据一示例性实施例示出的一种集成电路的节点改写装置的框图。
图11是根据一示例性实施例示出的一种电子设备的框图。
图12是根据一示例性实施例示出的一种计算机可读介质的框图。
具体实施方式
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本申请将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应理解,虽然本文中可能使用术语第一、第二、第三等来描述各种组件,但这些组件不应受这些术语限制。这些术语乃用以区分一组件与另一组件。因此,下文论述的第一组件可称为第二组件而不偏离本申请概念的教示。如本文中所使用,术语“及/或”包括相关联的列出项目中的任一个及一或多者的所有组合。
本领域技术人员可以理解,附图只是示例实施例的示意图,附图中的模块或流程并不一定是实施本申请所必须的,因此不能用于限制本申请的保护范围。
本申请涉及的技术缩略语解释如下:
HDL(Hardware Description Language,硬件描述语言),是用来描述数字电路功能、行为的语言,可以在寄存器传输级、行为级、逻辑门级等对数字电路系统进行描述。随着自动化逻辑综合工具的发展,硬件描述语言可以被这些工具识别,并自动转换到逻辑门级网表,使得硬件描述语言可以被用来进行电路系统设计,并能通过逻辑仿真的形式验证电路功能。设计完成后,可以使用逻辑综合工具生成低抽象级别(门级)的网表(即连线表)。
EDA(Electronic Design Automation,电子设计自动化)是指利用计算机辅助设计(CAD)工业自动化化软件,来完成超大规模集成电路(VLSI)芯片的功能设计、综合、验证、物理设计(包括布局、布线、版图、设计规则检查等)等流程的设计方式。
RTL(Register Transaction Level,寄存器传输级)在数位电路设计中,RTL是一种对同步数位电路的抽象模型,这种模型是根据数字信号在硬件寄存器、存储器、组合逻辑装置和总线等逻辑单元之间的流动,以及其逻辑代数运作方式来确定的。寄存器传输级抽象模型在诸如Verilog和VHDL的硬件描述语言中被用于创建对实际电路的高层次描述,而低层次描述甚至实际电路可以通过高层次描述导出。在现代的数位设计中,寄存器传输级上的设计是最典型的工作流程。逻辑合成工具可以根据寄存器传输级的描述构建更低级别的电路描述。
BFS(Breadth First Search,广度优先搜索算法),又译作宽度优先搜索,或横向优先搜索,是一种基于图结构的搜索演算法。简单地说,BFS是从根节点(root)开始,沿着树的宽度向下遍历树的节点。如果所有节点均被访问,或者目标节点被搜索到,则算法中止。广度优先搜索的实现一般采用open-closed表来记录已经处理过的节点(标记为closed)或者是已在队列中等待处理(标记为open)。
DP(Dynamic Programming,动态规划),通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。通常许多子问题非常相似,为此动态规划法试图仅仅解决每个子问题一次,从而减少计算量:一旦某个给定子问题的解已经算出,则将其记忆化存储,以便下次需要同一个子问题解之时直接查表。这种做法在重复子问题的数目关于输入的规模呈指數增長时特别有用。
PI(Primary Input,主输入),一个电路逻辑网络最外层的输入端,所有没有fanin的节点都是PI。
PO(Primary Output,主输出),一个电路逻辑网络最外层的输出端,所有没有fanout的节点都是PO。
AIG(And-Inverter Graph,与非图)。
MFFC(Maximum Fanout-Free Cone,最大独立扇出锥)是指该系统结构中模块可以直接调用的下级模块最大数目。
图1是集成电路的多级逻辑网络示意图。目前,常见的集成电路逻辑优化算法是对电路节点的代数改写(algebraic rewriting),对应的用于优化的电路网表或者电路的多级逻辑网络是通过AIG(And-Inverter Graph)搭建的有向图,AIG有向图本身的存储数据结构是通过链表构成。在多级逻辑网络中,每个节点代表一个逻辑门,节点之间用有向边连接。有向边在AIG中使用链表表示的,有向边根据其对应的不同的物理含义,有着不同的属性。如图1所示,o1,o2节点为输入节点,a,b,c,d,e为输出节点,节点1,2,3,4,5,6,7,8可称为网站中的节点。
图2是根据一示例性实施例示出的一种集成电路的节点改写方法的流程图。集成电路的节点改写方法20至少包括步骤S202至S208。
如图2所示,在S202中,生成集成电路的多个最大独立扇出锥。可通过现有技术中的方法生成最大独立扇出锥,还可基于所述集成电路的拓扑图结构生成所述集成电路的邻接矩阵;对所述邻接矩阵进行矩阵运算以生成所述集成电路的多个最大独立扇出锥。
如上文所述,在现有技术中,AIG本身的数据结构是通过链表构成,对结构的修改需要进行复杂的链表指针操作,效率较低。所以,在本申请的一个实施例中,可将链表形式的数据转化为矩阵形式的数据进行后续计算。
更具体的,可获取待进行优化的集成电路的逻辑网络相关数据。可基于所述多级逻辑网络中的节点和有向边对应的链表关系或代码数据生成所述集成电路的邻接矩阵。
在一个实施例中,可由所述多级逻辑网络中提取所述集成电路的输入节点和输出节点;由所述输入节点开始基于前向波逐级向输出节点推进;对每一级前向波中基于所述邻接矩阵进行矩阵运算以更新当前级别的前向波中节点和其父节点之间的从属关系;在前向波推进到输出节点之后,根据每个节点和其父节点之间的从属关系生成所述集成电路的所述多个最大独立扇出锥。
图3是根据一示例性实施例示出的一种集成电路的节点改写方法的示意图。MFFC用于计算或搜索在有向图结构中与一个节点n(或在电路网络中的一个逻辑门gate)相关联的其他节点(逻辑门)所传输数据流只对节点n的输出结果产生影响或变化。图3是对如图1所示的网络进行MFFC运算之后,得到的结果。其中,节点8的MFFC包含在阴影部分中,节点5的MFFC只有它自己也用阴影标注。
在S204中,生成所述多个最大独立扇出锥中的每个最大独立扇出锥的多个切分集合。其中,切分集合(Cut enumeration)是逻辑综合里面用于计算准备替换的节点(或逻辑门)的开销(cost)和替换后的盈余(gain)的。切分集合是以一个节点(或逻辑门)为root的逻辑锥(logic cone)的边界点集合(或叫作leaves叶节点),他们使得每一条从PI到根节点root的通路(path)必经过至少cut中的一个节点。切分是为了找出电路逻辑网络的每个节点作为区域的根节点root时的可能的切分集合,对于一个节点其切分集合不唯一。
可基于现有技术中的方法生成切分集合,还可由所述多级逻辑网络中提取所述集成电路的输入节点和输出节点;由所述输出节点开始基于前向波逐级向输入节点推进;在前向波推进到输出节点之后,生成每个最大独立扇出锥对应的多个切分集合。
在一个实施例中,可获取每一级前向波中多个当前节点中每个当前节点对应的至少一个子节点的切分集合;基于所述至少一个子节点的切分集合的笛卡尔积生成所述当前节点的切分集合;计算当前级别的前向波中多个当前节点的切分集合。
更具体的,可并行计算当前级别的前向波中多个当前节点的切分集合。
在S206中,根据切分集合中节点的数量将所述多个切分集合分别存储在至少一个数组中。可例如,生成多个长度不同的数组;根据切分集合中节点的数量和数组的长度之间的关系将所述多个切分集合分别存储在不同数组中;所述切分集合的所属节点记录在所述切分集合的索引中。
图4是根据一示例性实施例示出的一种集成电路的节点改写方法的示意图。如图4所示,由于切分集合存在不同长度,可将同样长度的cut归为一个数组存取,每个切分集合所属的节点由此节点的索引(index)标记。箭头举例说明了切分集合的计算方向和笛卡儿积(Cartesian product)计算对应关系,但实际存储时并不被记录;不同长度的切分集合分别存储也便于依据优化力度选取切分集合。
在S208中,基于所述至少一个数组对所述集成电路进行节点改写。可包括:由所述至少一个数组中提取待优化的目标数组;逐一提取所述目标数组中的多个切分集合;对所述多个切分集合进行节点改写。
“基于所述至少一个数组对所述集成电路进行节点改写”的内容将在后文中详细描述。
根据本申请的集成电路的节点改写方法,通过生成集成电路的多个最大独立扇出锥;生成所述多个最大独立扇出锥中的每个最大独立扇出锥的多个切分集合;根据切分集合中节点的数量将所述多个切分集合分别存储在至少一个数组中;基于所述至少一个数组对所述集成电路进行节点改写的方式,能够将集成电路逻辑网络中节点之间的关系由原有的链接式更新为矩阵形式,并通过矩阵计算方式,快速准确的对集成电路进行节点改写。
应清楚地理解,本申请描述了如何形成和使用特定示例,但本申请的原理不限于这些示例的任何细节。相反,基于本申请公开的内容的教导,这些原理能够应用于许多其它实施例。
图5是根据另一示例性实施例示出的一种集成电路的节点改写方法的流程图。图5所示的流程50是对图2所示的流程中S208“基于所述至少一个数组对所述集成电路进行节点改写”的详细描述。
如图5所示,在S502中,由所述至少一个数组中提取待优化的目标数组。可例如,根据所述集成电路的优化目标确定优化节点数;根据所述优化节点数由所述至少一个数组中提取目标数组。
在S504中,逐一提取所述目标数组中的多个切分集合。
在S506中,对所述多个切分集合进行节点改写。可例如,获取集成电路的多级逻辑网络数据;基于所述多级逻辑网络数据中的节点和其对应的有向边生成所述集成电路的邻接矩阵;基于所述邻接矩阵生成所述多个切分集合对应的切分矩阵;基于多个切分矩阵和矩阵计算进行节点改写。更具体的,可并行对所述多个切分矩阵进行矩阵计算以进行节点改写。
在一个实施例中,可例如,生成多个替换电路结构对应的多个替换矩阵;逐一提取多个切分矩阵中的一个切分矩阵;由所述多个替换矩阵中提取目标替换矩阵;基于目标替换矩阵和所述切分矩阵进行矩阵操作以进行节点改写。
在一个实施例中,可获取所述多个替换矩阵的节点数量;提取小于所述切分矩阵的节点数量的替换矩阵作为所述目标替换矩阵。
在一个实施例中,基于所述多个替换矩阵对所述切分集合中的节点进行替换以进行所述集成电路的节点优化,包括:由所述多个替换矩阵中获取至少一个目标替换矩阵;基于矩阵操作逐一将所述至少一个目标替换矩阵引入到所述切分集合对应的切分矩阵中;计算引入之后的切分矩阵对应的最大独立扇出锥;根据最大独立扇出锥的计算结果对所述集成电路进行节点优化。
图6是根据另一示例性实施例示出的一种集成电路的节点改写方法的流程图。图6所示的流程60是对图5所示的流程中S506“对所述多个切分集合进行节点改写”的详细描述。
如图6所示,在S602中,获取集成电路的多级逻辑网络数据。
在S604中,基于所述多级逻辑网络数据中的节点和其对应的有向边生成所述集成电路的邻接矩阵。
在S606中,基于所述邻接矩阵生成所述多个切分集合对应的切分矩阵。
在S608中,基于多个切分矩阵和矩阵计算进行节点改写。
在一个实施例中,可例如,生成多个替换电路结构对应的多个替换矩阵;逐一提取多个切分矩阵中的一个切分矩阵;由所述多个替换矩阵中提取目标替换矩阵;基于目标替换矩阵和所述切分矩阵进行矩阵操作以进行节点改写。
在一个实施例中,可获取所述多个替换矩阵的节点数量;提取小于所述切分矩阵的节点数量的替换矩阵作为所述目标替换矩阵。
在一个实施例中,可例如,在所述多个切分矩阵中提取无节点重叠的至少一个切分矩阵;确定无节点重叠的所述至少一个切分矩阵对应的至少一个目标替换矩阵;将所述至少一个目标替换矩阵拼接为拼接矩阵;基于所述拼接矩阵和所述至少一个切分矩阵进行矩阵计算以进行节点改写。
图7,图8展示了两种不同的节点优化的示例,分别使得多层逻辑网络(上文计算的一个切分集合)的节点(逻辑门gate)的个数减少1个。可将如图7所示的矩阵优化操作转换为矩阵乘法形式实现,具体的转换公式为:
Figure DEST_PATH_IMAGE001
可将如图8所示的矩阵优化操作转换为矩阵乘法形式实现,具体的转换公式为:
Figure 149517DEST_PATH_IMAGE002
通过二进制矩阵操作实现了节点替换操作,其中,各个替换矩阵(transformmatrix)可以预先计算(pre-compute)并保存在数据库中,在节点优化的过程中随时调出使用。通过矩阵计算,可以同时对多个切分集合进行节点优化,利用数据并行(dataparallel)的方式,能够避免了链表类数据结构的指针操作改变连接关系。
值得一提的是由于DeMorgan’s Law的逻辑转换关系,有的连接关系需要转换极性,这里可以直接用T×F=F或F×F=T逻辑关系实现。
在一个实施例中,可根据目标替换矩阵对应的切分矩阵的位置关系将所述至少一个目标替换矩阵拼接为所述拼接矩阵。当有多个独立的cut(无节点重叠)需要改写,可以构建一个更大的变形矩阵(transform matrix),如图9所示,一个更大的变形矩阵由多个小的变形矩阵拼装成,对应的切分区域也在电路网络的拓扑矩阵中标明。在变形矩阵的以外的区域为空(矩阵中元素为0值)。
本领域技术人员可以理解实现上述实施例的全部或部分步骤被实现为由CPU 执行的计算机程序。在该计算机程序被CPU 执行时,执行本申请提供的上述方法所限定的上述功能。所述的程序可以存储于一种计算机可读存储介质中,该存储介质可以是只读存储器,磁盘或光盘等。
此外,需要注意的是,上述附图仅是根据本申请示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
图10是根据一示例性实施例示出的一种集成电路的节点改写装置的框图。如图10所示,集成电路的节点改写装置100包括:集合模块1002,切分模块1004,数组模块1006,改写模块1008。
集合模块1002用于生成集成电路的多个最大独立扇出锥;
切分模块1004用于生成所述多个最大独立扇出锥中的每个最大独立扇出锥的多个切分集合;
数组模块1006用于根据切分集合中节点的数量将所述多个切分集合分别存储在至少一个数组中;数组模块1006还用于生成多个长度不同的数组;根据切分集合中节点的数量和数组的长度之间的关系将所述多个切分集合分别存储在不同数组中;所述切分集合的所属节点记录在所述切分集合的索引中。
改写模块1008用于基于所述至少一个数组对所述集成电路进行节点改写。改写模块1008还用于由所述至少一个数组中提取待优化的目标数组;逐一提取所述目标数组中的多个切分集合;对所述多个切分集合进行节点改写。
根据本申请的集成电路的节点改写装置,通过生成集成电路的多个最大独立扇出锥;生成所述多个最大独立扇出锥中的每个最大独立扇出锥的多个切分集合;根据切分集合中节点的数量将所述多个切分集合分别存储在至少一个数组中;基于所述至少一个数组对所述集成电路进行节点改写的方式,能够将集成电路逻辑网络中节点之间的关系由原有的链接式更新为矩阵形式,并通过矩阵计算方式,快速准确的对集成电路进行节点改写。
图11是根据一示例性实施例示出的一种电子设备的框图。
下面参照图11来描述根据本申请的这种实施方式的电子设备1100。图11显示的电子设备1100仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图11所示,电子设备1100以通用计算设备的形式表现。电子设备1100的组件可以包括但不限于:至少一个处理单元1110、至少一个存储单元1120、连接不同系统组件(包括存储单元1120和处理单元1110)的总线1130、显示单元1140等。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元1110执行,使得所述处理单元1110执行本说明书中描述的根据本申请各种示例性实施方式的步骤。例如,所述处理单元1110可以执行如图2,图5,图6中所示的步骤。
所述存储单元1120可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)11201和/或高速缓存存储单元11202,还可以进一步包括只读存储单元(ROM)11203。
所述存储单元1120还可以包括具有一组(至少一个)程序模块11205的程序/实用工具11204,这样的程序模块11205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线1130可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备1100也可以与一个或多个外部设备1100’(例如键盘、指向设备、蓝牙设备等)通信,使得用户能与该电子设备1100交互的设备通信,和/或该电子设备1100能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口1150进行。并且,电子设备1100还可以通过网络适配器1160与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器1160可以通过总线1130与电子设备1100的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备1100使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,如图12所示,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、或者网络设备等)执行根据本申请实施方式的上述方法。
所述软件产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该计算机可读介质实现如下功能:生成集成电路的多个最大独立扇出锥;生成所述多个最大独立扇出锥中的每个最大独立扇出锥的多个切分集合;根据切分集合中节点的数量将所述多个切分集合分别存储在至少一个数组中;基于所述至少一个数组对所述集成电路进行节点改写。
本领域技术人员可以理解上述各模块可以按照实施例的描述分布于装置中,也可以进行相应变化唯一不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本申请实施例的方法。
以上具体地示出和描述了本申请的示例性实施例。应可理解的是,本申请不限于这里描述的详细结构、设置方式或实现方法;相反,本申请意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。

Claims (11)

1.一种集成电路的节点改写方法,包括:
生成集成电路的多个最大独立扇出锥;
生成所述多个最大独立扇出锥中的每个最大独立扇出锥的多个切分集合;
根据切分集合中节点的数量将所述多个切分集合分别存储在至少一个数组中;
由所述至少一个数组中提取待优化的目标数组;
逐一提取所述目标数组中的多个切分集合;
获取集成电路的多级逻辑网络数据;
基于所述多级逻辑网络数据中的节点和其对应的有向边生成所述集成电路的邻接矩阵;
基于所述邻接矩阵生成所述多个切分集合对应的切分矩阵;以及
基于多个切分矩阵和矩阵计算进行节点改写。
2.如权利要求1所述的方法,其特征在于,根据切分集合中节点的数量将所述多个切分集合分别存储在至少一个数组中,包括:
生成多个长度不同的数组;
根据切分集合中节点的数量和数组的长度之间的关系将所述多个切分集合分别存储在不同数组中;
所述切分集合的所属节点记录在所述切分集合的索引中。
3.如权利要求1所述的方法,其特征在于,由所述至少一个数组中提取待优化的目标数组,包括:
根据所述集成电路的优化目标确定优化节点数;
根据所述优化节点数由所述至少一个数组中提取目标数组。
4.如权利要求1所述的方法,其特征在于,基于多个切分矩阵和矩阵计算进行节点改写,包括:
并行对所述多个切分矩阵进行矩阵计算以进行节点改写。
5.如权利要求1所述的方法,其特征在于,基于多个切分矩阵和矩阵计算进行节点改写,包括:
生成多个替换电路结构对应的多个替换矩阵;
逐一提取多个切分矩阵中的一个切分矩阵;
由所述多个替换矩阵中提取目标替换矩阵;
基于目标替换矩阵和所述切分矩阵进行矩阵操作以进行节点改写。
6.如权利要求5所述的方法,其特征在于,由所述多个替换矩阵中提取目标替换矩阵,包括:
获取所述多个替换矩阵的节点数量;
提取小于所述切分矩阵的节点数量的替换矩阵作为所述目标替换矩阵。
7.如权利要求1所述的方法,其特征在于,基于多个切分矩阵和矩阵计算进行节点改写优化,包括:
在所述多个切分矩阵中提取无节点重叠的至少一个切分矩阵;
确定无节点重叠的所述至少一个切分矩阵对应的至少一个目标替换矩阵;
将所述至少一个目标替换矩阵拼接为拼接矩阵;
基于所述拼接矩阵和所述至少一个切分矩阵进行矩阵计算以进行节点改写。
8.如权利要求7所述的方法,其特征在于,将所述至少一个目标替换矩阵拼接为拼接矩阵,包括:
根据目标替换矩阵对应的切分矩阵的位置关系将所述至少一个目标替换矩阵拼接为所述拼接矩阵。
9.一种集成电路的节点改写装置,其特征在于,包括:
集合模块,用于生成集成电路的多个最大独立扇出锥;
切分模块,用于生成所述多个最大独立扇出锥中的每个最大独立扇出锥的多个切分集合;
数组模块,用于根据切分集合中节点的数量将所述多个切分集合分别存储在至少一个数组中;
改写模块,用于由所述至少一个数组中提取待优化的目标数组,逐一提取所述目标数组中的多个切分集合,获取集成电路的多级逻辑网络数据,基于所述多级逻辑网络数据中的节点和其对应的有向边生成所述集成电路的邻接矩阵,基于所述邻接矩阵生成所述多个切分集合对应的切分矩阵,以及基于多个切分矩阵和矩阵计算进行节点改写。
10.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-8中任一所述的方法。
11.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-8中任一所述的方法。
CN202210859018.1A 2022-07-21 2022-07-21 集成电路的节点改写方法、装置、电子设备及介质 Active CN115293078B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210859018.1A CN115293078B (zh) 2022-07-21 2022-07-21 集成电路的节点改写方法、装置、电子设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210859018.1A CN115293078B (zh) 2022-07-21 2022-07-21 集成电路的节点改写方法、装置、电子设备及介质

Publications (2)

Publication Number Publication Date
CN115293078A CN115293078A (zh) 2022-11-04
CN115293078B true CN115293078B (zh) 2023-05-26

Family

ID=83824121

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210859018.1A Active CN115293078B (zh) 2022-07-21 2022-07-21 集成电路的节点改写方法、装置、电子设备及介质

Country Status (1)

Country Link
CN (1) CN115293078B (zh)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8181131B2 (en) * 2010-04-30 2012-05-15 International Business Machines Corporation Enhanced analysis of array-based netlists via reparameterization
US9959380B2 (en) * 2016-03-28 2018-05-01 Motivo, Inc. Integrated circuit design systems and methods
US10331834B2 (en) * 2016-06-30 2019-06-25 Synopsys, Inc. Optimizing the ordering of the inputs to large commutative-associative trees of logic gates
US10740517B1 (en) * 2017-09-08 2020-08-11 Synopsys, Inc. Integrated circuit (IC) optimization using Boolean resynthesis
US10509886B2 (en) * 2017-11-07 2019-12-17 Taiwan Semiconductor Manufacturing Company Ltd. Method, system, and storage medium for RC extraction using hierarchical modeling architecture
US11132486B1 (en) * 2020-05-21 2021-09-28 Taiwan Semiconductor Manufacturing Company, Ltd. Systems and methods for multi-bit memory with embedded logic
CN113515908A (zh) * 2021-04-08 2021-10-19 国微集团(深圳)有限公司 驱动矩阵及其生成方法、门电路信息的表示方法、图

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
一种集成电路超大规模线网快速分析算法;竺红卫,严晓浪;微电子学(01);全文 *
基于类神经网络模型的电路演化实现方法;崔新风;娄建安;褚杰;原亮;丁国良;;计算机工程(04);全文 *

Also Published As

Publication number Publication date
CN115293078A (zh) 2022-11-04

Similar Documents

Publication Publication Date Title
US11010511B2 (en) Scalable boolean methods in a modern synthesis flow
US5422833A (en) Method and system for propagating data type for circuit design from a high level block diagram
US7421671B2 (en) Graph pruning scheme for sensitivity analysis with partitions
US8635579B1 (en) Local clock skew optimization
US11599700B2 (en) Structural matching for fast re-synthesis of electronic circuits
Witschen et al. CIRCA: Towards a modular and extensible framework for approximate circuit generation
CN113051867A (zh) 进行集成电路的自动化设计的方法
Xiao et al. Circuit reliability estimation based on an iterative PTM model with hybrid coding
CN115204076B (zh) 集成电路的逻辑优化方法、装置、电子设备及可读介质
CN115293078B (zh) 集成电路的节点改写方法、装置、电子设备及介质
US8302049B2 (en) Method for enabling multiple incompatible or costly timing environment for efficient timing closure
US10579774B2 (en) Integrated circuit (IC) design systems and methods using single-pin imaginary devices
Jerke et al. Constraint-driven design: The next step towards analog design automation
CN115204077B (zh) 集成电路的节点优化方法、装置、电子设备及可读介质
US11188696B1 (en) Method, system, and product for deferred merge based method for graph based analysis pessimism reduction
US8849440B2 (en) Manufacturing control based on a final design structure incorporating both layout and client-specific manufacturing information
Das et al. Directed acyclic graph-based design of digital logic circuits using QCA
US20110185335A1 (en) Determining an order for visiting circuit blocks in a circuit design for fixing design requirement violations
US9852259B2 (en) Area and/or power optimization through post-layout modification of integrated circuit (IC) design blocks
CN115203485B (zh) 图数据的处理方法、装置、电子设备及计算机可读介质
US20230419011A1 (en) Standard Cell Differentiation using Topology and Transistor Attributes
CN117540670A (zh) 用于数字电路的全局真值表生成方法及装置
Bairamkulov et al. Graphs in VLSI circuits and systems
Goldie et al. RL for Placement and Partitioning
Liu et al. Automated Generation and Evaluation of Application-Oriented Approximate Arithmetic Circuits

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