CN115204077B - 集成电路的节点优化方法、装置、电子设备及可读介质 - Google Patents

集成电路的节点优化方法、装置、电子设备及可读介质 Download PDF

Info

Publication number
CN115204077B
CN115204077B CN202210864938.2A CN202210864938A CN115204077B CN 115204077 B CN115204077 B CN 115204077B CN 202210864938 A CN202210864938 A CN 202210864938A CN 115204077 B CN115204077 B CN 115204077B
Authority
CN
China
Prior art keywords
integrated circuit
node
nodes
matrix
independent fan
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
CN202210864938.2A
Other languages
English (en)
Other versions
CN115204077A (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 CN202210864938.2A priority Critical patent/CN115204077B/zh
Publication of CN115204077A publication Critical patent/CN115204077A/zh
Application granted granted Critical
Publication of CN115204077B publication Critical patent/CN115204077B/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

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

集成电路的节点优化方法、装置、电子设备及可读介质
技术领域
本公开涉及集成电路设计领域,具体而言,涉及一种集成电路的节点优化方法、装置、电子设备及计算机可读介质。
背景技术
通常,在给定了电路规格与设计要求之后,电路设计工程师会利用硬件描述语言(Hardware Description Language,HDL)对电路的行为进行设计。HDL可以描述数字电路的逻辑功能,这样电路设计工程师可以把更多精力投入功能方面的设计,而避免在一开始就研究可能极其复杂的电路连线。通过HDL可将逻辑电路功能转换成电路结构描述,电路结构一般通过网表(netlist)来表示和保存,网表本质上就是电路连线关系的描述。如今,具有实用逻辑功能的电路通常使用多级逻辑网络(multi-level logic networks)来表示。
不过有的时候,对于一个确定功能的集成电路而言,由于在编写过程中编写代码不同,其可能对应着不同的实际电路,复杂度也差异很大。由于这个原因,在实际设计阶段,经常会对集成电路对应的逻辑网络进行优化,以减轻实际电路的复杂度。可通过简化集成电路对应的逻辑函数,从而让所用的逻辑门数减少,也就是减少集成电路对应的多层次的逻辑网络中节点的数量,同时满足原有涉及中的时序、面积、功耗要求。
优化过后的逻辑门网表将进一步接受各种验证,保证其功能符合设计人员的预期。然后,网表将被送往集成电路硬件厂商,在那里技术人员将采用器件与具体器件工艺相关的技术,根据逻辑门网表制造真实的电路,如专用集成电路。
在所述背景技术部分公开的上述信息仅用于加强对本申请的背景的理解,因此它可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
有鉴于此,本申请提供一种集成电路的节点优化方法、装置、电子设备及计算机可读介质,能够将集成电路逻辑网络中节点之间的关系由原有的链接式更新为矩阵形式,并通过矩阵计算方式,快速准确的对集成电路网络进行节点优化。
本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
根据本申请的一方面,提出一种集成电路的节点优化方法,该方法包括:基于所述集成电路的多级逻辑网络生成多个最大独立扇出锥;生成所述多个最大独立扇出锥中的每个最大独立扇出锥的多个切分集合;对所述多个最大独立扇出锥对应的多个切分集合进行矩阵操作以对所述集成电路进行节点优化。
在本申请的一种示例性实施例中,基于所述集成电路的多级逻辑网络生成多个最大独立扇出锥,包括:基于所述集成电路的拓扑图结构生成所述集成电路的邻接矩阵;对所述邻接矩阵进行矩阵运算以生成所述集成电路的多个最大独立扇出锥。
在本申请的一种示例性实施例中,对所述邻接矩阵进行矩阵运算以生成所述集成电路的多个最大独立扇出锥,包括:由所述多级逻辑网络中提取所述集成电路的输入节点和输出节点;由所述输入节点开始基于前向波逐级向输出节点推进;对每一级前向波中基于所述邻接矩阵进行矩阵运算以更新当前级别的前向波中节点和其父节点之间的从属关系;在前向波推进到输出节点之后,根据每个节点和其父节点之间的从属关系生成所述集成电路的所述多个最大独立扇出锥。
在本申请的一种示例性实施例中,生成所述多个最大独立扇出锥中的每个最大独立扇出锥的多个切分集合,包括:由所述多级逻辑网络中提取所述集成电路的输入节点和输出节点;由所述输出节点开始基于前向波逐级向输入节点推进;在前向波推进到输出节点之后,生成每个最大独立扇出锥对应的多个切分集合。
在本申请的一种示例性实施例中,由所述输出节点开始基于前向波逐级向输入节点推进,包括:获取每一级前向波中多个当前节点中每个当前节点对应的至少一个子节点的切分集合;基于所述至少一个子节点的切分集合的笛卡尔积生成所述当前节点的切分集合;计算当前级别的前向波中多个当前节点的切分集合。
在本申请的一种示例性实施例中,计算当前级别的前向波中多个当前节点的切分集合,包括:并行计算当前级别的前向波中多个当前节点的切分集合。
在本申请的一种示例性实施例中,对所述多个最大独立扇出锥对应的多个切分集合进行矩阵操作以对所述集成电路进行节点优化,包括:逐一提取多个最大独立扇出锥中的一个最大独立扇出锥;逐一提取所述最大独立扇出锥对应的多个切分集合中的一个切分集合;对所述切分集合进行矩阵操作以进行所述集成电路的节点优化。
在本申请的一种示例性实施例中,对所述切分集合进行矩阵操作以进行所述集成电路的节点优化,包括:生成多个替换电路结构的对应的多个替换矩阵;基于所述多个替换矩阵对所述切分集合中的节点进行替换以进行所述集成电路的节点优化。
在本申请的一种示例性实施例中,基于所述多个替换矩阵对所述切分集合中的节点进行替换以进行所述集成电路的节点优化,包括:由所述多个替换矩阵中获取至少一个目标替换矩阵;基于矩阵操作逐一将所述至少一个目标替换矩阵引入到所述切分集合对应的切分矩阵中;计算引入之后的切分矩阵对应的最大独立扇出锥;根据最大独立扇出锥的计算结果对所述集成电路进行节点优化。
根据本申请的一方面,提出一种集成电路的节点优化装置,该装置包括:网络模块,用于基于所述集成电路的多级逻辑网络生成多个最大独立扇出锥;切分模块,用于生成所述多个最大独立扇出锥中的每个最大独立扇出锥的多个切分集合;优化模块,用于对所述多个最大独立扇出锥对应的多个切分集合进行矩阵操作以对所述集成电路进行节点优化。
根据本申请的一方面,提出一种电子设备,该电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如上文的方法。
根据本申请的一方面,提出一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上文中的方法。
根据本申请的集成电路的节点优化方法、装置、电子设备及计算机可读介质,通过基于所述集成电路的多级逻辑网络生成多个最大独立扇出锥;生成所述多个最大独立扇出锥中的每个最大独立扇出锥的多个切分集合;对所述多个最大独立扇出锥对应的多个切分集合进行矩阵操作以对所述集成电路进行节点优化的方式,能够将集成电路逻辑网络中节点之间的关系由原有的链接式更新为矩阵形式,并通过矩阵计算方式,快速准确的对集成电路网络进行节点优化。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
附图说明
通过参照附图详细描述其示例实施例,本申请的上述和其它目标、特征及优点将变得更加显而易见。下面描述的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是集成电路的多级逻辑网络示意图。
图2是根据一示例性实施例示出的一种集成电路的节点优化方法的流程图。
图3是根据另一示例性实施例示出的一种集成电路的节点优化方法的示意图。
图4是根据另一示例性实施例示出的一种集成电路的节点优化方法的流程图。
图5是根据另一示例性实施例示出的一种集成电路的节点优化方法的示意图。
图6是根据另一示例性实施例示出的一种集成电路的节点优化方法的流程图。
图7是根据另一示例性实施例示出的一种集成电路的节点优化方法的示意图。
图8是根据另一示例性实施例示出的一种集成电路的节点优化方法的示意图。
图9是根据一示例性实施例示出的一种集成电路的节点优化装置的框图。
图10是根据一示例性实施例示出的一种电子设备的框图。
图11是根据一示例性实施例示出的一种计算机可读介质的框图。
具体实施方式
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本申请将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应理解,虽然本文中可能使用术语第一、第二、第三等来描述各种组件,但这些组件不应受这些术语限制。这些术语乃用以区分一组件与另一组件。因此,下文论述的第一组件可称为第二组件而不偏离本申请概念的教示。如本文中所使用,术语“及/或”包括相关联的列出项目中的任一个及一或多者的所有组合。
本领域技术人员可以理解,附图只是示例实施例的示意图,附图中的模块或流程并不一定是实施本申请所必须的,因此不能用于限制本申请的保护范围。
本申请涉及的技术缩略语解释如下:
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至S206。
如图2所示,在S202中,基于所述集成电路的多级逻辑网络生成多个最大独立扇出锥。可通过现有技术中的方法生成最大独立扇出锥,还可基于所述集成电路的拓扑图结构生成所述集成电路的邻接矩阵;对所述邻接矩阵进行矩阵运算以生成所述集成电路的多个最大独立扇出锥。
如上文所述,在现有技术中,AIG本身的数据结构是通过链表构成,对结构的修改需要进行复杂的链表指针操作,效率较低。所以,在本申请的一个实施例中,可将链表形式的数据转化为矩阵形式的数据进行后续计算。
更具体的,可获取待进行优化的集成电路的逻辑网络相关数据。可基于所述多级逻辑网络中的节点和有向边对应的链表关系或代码数据生成所述集成电路的邻接矩阵。
在一个实施例中,可由所述多级逻辑网络中提取所述集成电路的输入节点和输出节点;由所述输入节点开始基于前向波逐级向输出节点推进;对每一级前向波中基于所述邻接矩阵进行矩阵运算以更新当前级别的前向波中节点和其父节点之间的从属关系;在前向波推进到输出节点之后,根据每个节点和其父节点之间的从属关系生成所述集成电路的所述多个最大独立扇出锥。
图3是根据一示例性实施例示出的一种集成电路的逻辑优化方法中最大独立扇出锥示意图。MFFC用于计算或搜索在有向图结构中与一个节点n(或在电路网络中的一个逻辑门gate)相关联的其他节点(逻辑门)所传输数据流只对节点n的输出结果产生影响或变化。图3是对如图1所示的网络进行MFFC运算之后,得到的结果。其中,节点8的MFFC包含在阴影部分中,节点5的MFFC只有它自己也用阴影标注。
在S204中,生成所述多个最大独立扇出锥中的每个最大独立扇出锥的多个切分集合。可由所述多级逻辑网络中提取所述集成电路的输入节点和输出节点;由所述输出节点开始基于前向波逐级向输入节点推进;在前向波推进到输出节点之后,生成每个最大独立扇出锥对应的多个切分集合。
“生成所述多个最大独立扇出锥中的每个最大独立扇出锥的多个切分集合”的内容将在后文中详细说明。
在S206中,对所述多个最大独立扇出锥对应的多个切分集合进行矩阵操作以对所述集成电路进行节点优化。可逐一提取多个最大独立扇出锥中的一个最大独立扇出锥;逐一提取所述最大独立扇出锥对应的多个切分集合中的一个切分集合;对所述切分集合进行矩阵操作以进行所述集成电路的节点优化。
“对所述多个最大独立扇出锥对应的多个切分集合进行矩阵操作以对所述集成电路进行节点优化”的内容将在后文中详细说明。
根据本申请的集成电路的节点优化方法,通过基于所述集成电路的多级逻辑网络生成多个最大独立扇出锥;生成所述多个最大独立扇出锥中的每个最大独立扇出锥的多个切分集合;对所述多个最大独立扇出锥对应的多个切分集合进行矩阵操作以对所述集成电路进行节点优化的方式,能够将集成电路逻辑网络中节点之间的关系由原有的链接式更新为矩阵形式,并通过矩阵计算方式,快速准确的对集成电路网络进行节点优化。
应清楚地理解,本申请描述了如何形成和使用特定示例,但本申请的原理不限于这些示例的任何细节。相反,基于本申请公开的内容的教导,这些原理能够应用于许多其它实施例。
图4是根据另一示例性实施例示出的一种集成电路的节点优化方法的流程图。图4所示的流程40是对图2所示的流程中S204“生成所述多个最大独立扇出锥中的每个最大独立扇出锥的多个切分集合”的详细描述。其中,切分集合(Cut enumeration)是逻辑综合里面用于计算准备替换的节点(或逻辑门)的开销(cost)和替换后的盈余(gain)的。切分集合是以一个节点(或逻辑门)为root的逻辑锥(logic cone)的边界点集合(或叫作leaves叶节点),他们使得每一条从PI到根节点root的通路(path)必经过至少cut中的一个节点。切分是为了找出电路逻辑网络的每个节点作为区域的根节点root时的可能的切分集合,对于一个节点其切分集合不唯一。
如图4所示,在S402中,由所述多级逻辑网络中提取所述集成电路的输入节点和输出节点。
在S404中,由所述输出节点开始基于前向波逐级向输入节点推进。可获取每一级前向波中多个当前节点中每个当前节点对应的至少一个子节点的切分集合;基于所述至少一个子节点的切分集合的笛卡尔积生成所述当前节点的切分集合;计算当前级别的前向波中多个当前节点的切分集合。
更具体的,可并行计算当前级别的前向波中多个当前节点的切分集合。
在S406中,在前向波推进到输出节点之后,生成每个最大独立扇出锥对应的多个切分集合。
图5是根据另一示例性实施例示出的一种集成电路的节点优化方法的示意图。可借助于图5的内容,对图4所述的流程进行详细的说明。首先,需要将集成电路的图中节点间有向边取反,即原来的输入节点变为输出节点,原来的输出节点变为输入节点。然后,从底部所有PI节点进入,并记录PI节点自己本身为切分集合中的一个节点,算法从下向上推进,每层前向波(wavefront)包含的节点的切分集合计算可以通过矩阵运算并行进行,图中虚线指明前推波(wavefront),其中每个节点的切分集合是有其子节点的切分集合作笛卡尔积(Cartesian Product)得到。
在一个实施例中,节点4的cut enumeration集合由节点1和节点2的集合,其中节点4的切分集合{1,-2}由节点1的{1}和节点2的{2}组合得到,值得注意的是{1,-2}中考虑到节点2是在取反(虚线箭头)后连入节点4。
在一个实施例中,节点4的切分集合{a,-b,-2}由节点1的{a,-b}和节点2的{2}合集。
图6是根据另一示例性实施例示出的一种集成电路的节点优化方法的流程图。图6所示的流程60是对图2所示的流程中S208“对所述多个最大独立扇出锥对应的多个切分集合进行矩阵操作以对所述集成电路进行节点优化”的详细描述。
如图6所示,在S602中,逐一提取多个最大独立扇出锥中的一个最大独立扇出锥。对所有的最大独立扇出锥依次进行节点优化操作。
在S604中,逐一提取所述最大独立扇出锥对应的多个切分集合中的一个切分集合。对所有的切分集合依次进行节点优化操作。
在S606中,对所述切分集合进行矩阵操作以进行所述集成电路的节点优化。可生成多个替换电路结构的对应的多个替换矩阵;基于所述多个替换矩阵对所述切分集合中的节点进行替换以进行所述集成电路的节点优化。
在一个实施例中,基于所述多个替换矩阵对所述切分集合中的节点进行替换以进行所述集成电路的节点优化,包括:由所述多个替换矩阵中获取至少一个目标替换矩阵;基于矩阵操作逐一将所述至少一个目标替换矩阵引入到所述切分集合对应的切分矩阵中;计算引入之后的切分矩阵对应的最大独立扇出锥;根据最大独立扇出锥的计算结果对所述集成电路进行节点优化。
图7,图8展示了两种不同的节点优化的示例,分别使得多层逻辑网络(上文计算的一个切分集合)的节点(逻辑门gate)的个数减少1个。可将如图7所示的矩阵优化操作转换为矩阵乘法形式实现,具体的转换公式为:
可将如图8所示的矩阵优化操作转换为矩阵乘法形式实现,具体的转换公式为:
通过二进制矩阵操作实现了节点替换操作,其中,各个替换矩阵(transformmatrix)可以预先计算(pre-compute)并保存在数据库中,在节点优化的过程中随时调出使用。通过矩阵计算,可以同时对多个切分集合进行节点优化,利用数据并行(dataparallel)的方式,能够避免了链表类数据结构的指针操作改变连接关系。
值得一提的是由于DeMorgan’s Law的逻辑转换关系,有的连接关系需要转换极性,这里可以直接用T×F=F或F×F=T逻辑关系实现。
根据本申请中的集成电路的节点优化方法,将原有的链表形式的集成电路网络数据转换为矩阵形式的数据,并且将原有的链表形式的逐一进行数据计算的方式,更改为矩阵并行计算的方式,能够大大的提高了集成电路的节点优化的效率。
本领域技术人员可以理解实现上述实施例的全部或部分步骤被实现为由CPU 执行的计算机程序。在该计算机程序被CPU 执行时,执行本申请提供的上述方法所限定的上述功能。所述的程序可以存储于一种计算机可读存储介质中,该存储介质可以是只读存储器,磁盘或光盘等。
此外,需要注意的是,上述附图仅是根据本申请示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
图9是根据一示例性实施例示出的一种集成电路的节点优化装置的框图。如图9所示,集成电路的节点优化装置90包括:网络模块902,切分模块904,优化模块906。
网络模块902用于基于所述集成电路的多级逻辑网络生成多个最大独立扇出锥;网络模块902还用于基于所述集成电路的拓扑图结构生成所述集成电路的邻接矩阵;对所述邻接矩阵进行矩阵运算以生成所述集成电路的多个最大独立扇出锥。
切分模块904用于生成所述多个最大独立扇出锥中的每个最大独立扇出锥的多个切分集合;切分模块904还用于由所述多级逻辑网络中提取所述集成电路的输入节点和输出节点;由所述输出节点开始基于前向波逐级向输入节点推进;在前向波推进到输出节点之后,生成每个最大独立扇出锥对应的多个切分集合。
优化模块906用于对所述多个最大独立扇出锥对应的多个切分集合进行矩阵操作以对所述集成电路进行节点优化。优化模块906还用于逐一提取多个最大独立扇出锥中的一个最大独立扇出锥;逐一提取所述最大独立扇出锥对应的多个切分集合中的一个切分集合;对所述切分集合进行矩阵操作以进行所述集成电路的节点优化。
根据本申请的集成电路的节点优化装置,通过基于所述集成电路的多级逻辑网络生成多个最大独立扇出锥;生成所述多个最大独立扇出锥中的每个最大独立扇出锥的多个切分集合;对所述多个最大独立扇出锥对应的多个切分集合进行矩阵操作以对所述集成电路进行节点优化的方式,能够将集成电路逻辑网络中节点之间的关系由原有的链接式更新为矩阵形式,并通过矩阵计算方式,快速准确的对集成电路网络进行节点优化。
图10是根据一示例性实施例示出的一种电子设备的框图。
下面参照图10来描述根据本申请的这种实施方式的电子设备1000。图10显示的电子设备1000仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图10所示,电子设备1000以通用计算设备的形式表现。电子设备1000的组件可以包括但不限于:至少一个处理单元1010、至少一个存储单元1020、连接不同系统组件(包括存储单元1020和处理单元1010)的总线1030、显示单元1040等。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元1010执行,使得所述处理单元1010执行本说明书中描述的根据本申请各种示例性实施方式的步骤。例如,所述处理单元1010可以执行如图2,图4,图6中所示的步骤。
所述存储单元1020可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)10201和/或高速缓存存储单元10202,还可以进一步包括只读存储单元(ROM)10203。
所述存储单元1020还可以包括具有一组(至少一个)程序模块10205的程序/实用工具10204,这样的程序模块10205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线1030可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备1000也可以与一个或多个外部设备1000’(例如键盘、指向设备、蓝牙设备等)通信,使得用户能与该电子设备1000交互的设备通信,和/或该电子设备1000能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口1050进行。并且,电子设备1000还可以通过网络适配器1060与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器1060可以通过总线1030与电子设备1000的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备1000使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,如图11所示,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、或者网络设备等)执行根据本申请实施方式的上述方法。
所述软件产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该计算机可读介质实现如下功能:基于所述集成电路的多级逻辑网络生成多个最大独立扇出锥;生成所述多个最大独立扇出锥中的每个最大独立扇出锥的多个切分集合;对所述多个最大独立扇出锥对应的多个切分集合进行矩阵操作以对所述集成电路进行节点优化。
本领域技术人员可以理解上述各模块可以按照实施例的描述分布于装置中,也可以进行相应变化唯一不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本申请实施例的方法。
以上具体地示出和描述了本申请的示例性实施例。应可理解的是,本申请不限于这里描述的详细结构、设置方式或实现方法;相反,本申请意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。

Claims (10)

1.一种集成电路的节点优化方法,其特征在于,包括:
基于所述集成电路的多级逻辑网络生成多个最大独立扇出锥,包括基于所述集成电路的拓扑图结构生成所述集成电路的邻接矩阵,以及对所述邻接矩阵进行矩阵运算以生成所述集成电路的多个最大独立扇出锥,其中对所述邻接矩阵进行矩阵运算以生成所述集成电路的多个最大独立扇出锥包括:由所述多级逻辑网络中提取所述集成电路的输入节点和输出节点,由所述输入节点开始基于前向波逐级向输出节点推进,对每一级前向波中基于所述邻接矩阵进行矩阵运算以更新当前级别的前向波中节点和其父节点之间的从属关系,以及在前向波推进到输出节点之后,根据每个节点和其父节点之间的从属关系生成所述集成电路的所述多个最大独立扇出锥;
生成所述多个最大独立扇出锥中的每个最大独立扇出锥的多个切分集合;
对所述多个最大独立扇出锥对应的多个切分集合进行矩阵操作以对所述集成电路进行节点优化。
2.如权利要求1所述的方法,其特征在于,生成所述多个最大独立扇出锥中的每个最大独立扇出锥的多个切分集合,包括:
由所述多级逻辑网络中提取所述集成电路的输入节点和输出节点;
由所述输出节点开始基于前向波逐级向输入节点推进;
在前向波推进到输出节点之后,生成每个最大独立扇出锥对应的多个切分集合。
3.如权利要求2所述的方法,其特征在于,由所述输出节点开始基于前向波逐级向输入节点推进,包括:
获取每一级前向波中多个当前节点中每个当前节点对应的至少一个子节点的切分集合;
基于所述至少一个子节点的切分集合的笛卡尔积生成所述当前节点的切分集合;
计算当前级别的前向波中多个当前节点的切分集合。
4.如权利要求3所述的方法,其特征在于,计算当前级别的前向波中多个当前节点的切分集合,包括:
并行计算当前级别的前向波中多个当前节点的切分集合。
5.如权利要求1所述的方法,其特征在于,对所述多个最大独立扇出锥对应的多个切分集合进行矩阵操作以对所述集成电路进行节点优化,包括:
逐一提取多个最大独立扇出锥中的一个最大独立扇出锥;
逐一提取所述最大独立扇出锥对应的多个切分集合中的一个切分集合;
对所述切分集合进行矩阵操作以进行所述集成电路的节点优化。
6.如权利要求5所述的方法,其特征在于,对所述切分集合进行矩阵操作以进行所述集成电路的节点优化,包括:
生成多个替换电路结构的对应的多个替换矩阵;
基于所述多个替换矩阵对所述切分集合中的节点进行替换以进行所述集成电路的节点优化。
7.如权利要求6所述的方法,其特征在于,基于所述多个替换矩阵对所述切分集合中的节点进行替换以进行所述集成电路的节点优化,包括:
由所述多个替换矩阵中获取至少一个目标替换矩阵;
基于矩阵操作逐一将所述至少一个目标替换矩阵引入到所述切分集合对应的切分矩阵中;
计算引入之后的切分矩阵对应的最大独立扇出锥;
根据最大独立扇出锥的计算结果对所述集成电路进行节点优化。
8.一种集成电路的节点优化装置,其特征在于,包括:
网络模块,用于基于所述集成电路的多级逻辑网络生成多个最大独立扇出锥,包括基于所述集成电路的拓扑图结构生成所述集成电路的邻接矩阵,以及对所述邻接矩阵进行矩阵运算以生成所述集成电路的多个最大独立扇出锥,其中对所述邻接矩阵进行矩阵运算以生成所述集成电路的多个最大独立扇出锥包括:由所述多级逻辑网络中提取所述集成电路的输入节点和输出节点,由所述输入节点开始基于前向波逐级向输出节点推进,对每一级前向波中基于所述邻接矩阵进行矩阵运算以更新当前级别的前向波中节点和其父节点之间的从属关系,以及在前向波推进到输出节点之后,根据每个节点和其父节点之间的从属关系生成所述集成电路的所述多个最大独立扇出锥;
切分模块,用于生成所述多个最大独立扇出锥中的每个最大独立扇出锥的多个切分集合;
优化模块,用于对所述多个最大独立扇出锥对应的多个切分集合进行矩阵操作以对所述集成电路进行节点优化。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的方法。
10.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-7中任一所述的方法。
CN202210864938.2A 2022-07-21 2022-07-21 集成电路的节点优化方法、装置、电子设备及可读介质 Active CN115204077B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210864938.2A CN115204077B (zh) 2022-07-21 2022-07-21 集成电路的节点优化方法、装置、电子设备及可读介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210864938.2A CN115204077B (zh) 2022-07-21 2022-07-21 集成电路的节点优化方法、装置、电子设备及可读介质

Publications (2)

Publication Number Publication Date
CN115204077A CN115204077A (zh) 2022-10-18
CN115204077B true CN115204077B (zh) 2023-04-18

Family

ID=83584196

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210864938.2A Active CN115204077B (zh) 2022-07-21 2022-07-21 集成电路的节点优化方法、装置、电子设备及可读介质

Country Status (1)

Country Link
CN (1) CN115204077B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8001508B1 (en) * 2007-04-09 2011-08-16 Altera Corporation Method and system for analyzing input/output simultaneous switching noise
CN103034758A (zh) * 2012-12-07 2013-04-10 南通大学 集成电路逻辑优化并行处理方法
CN111353002A (zh) * 2020-02-03 2020-06-30 中国人民解放军国防科技大学 网络表示学习模型的训练方法、装置、电子设备及介质
CN113361219A (zh) * 2020-05-21 2021-09-07 台湾积体电路制造股份有限公司 用于优化集成电路设计的系统和方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06282602A (ja) * 1993-03-29 1994-10-07 Hitachi Ltd 多段論理生成方法
JP2877023B2 (ja) * 1995-01-17 1999-03-31 日本電気株式会社 論理回路分割方法
US7900163B2 (en) * 2007-02-21 2011-03-01 Marvell Israel (M.I.S.L.) Ltd. Method and apparatus for identifying redundant scan elements
CN102375905B (zh) * 2010-08-27 2013-01-16 雅格罗技(北京)科技有限公司 一种针对改进逻辑单元的集成电路的工艺映射方法
US10740517B1 (en) * 2017-09-08 2020-08-11 Synopsys, Inc. Integrated circuit (IC) optimization using Boolean resynthesis
US11010511B2 (en) * 2018-08-31 2021-05-18 Synopsys, Inc. Scalable boolean methods in a modern synthesis flow
CN109376471B (zh) * 2018-11-22 2020-04-07 北京华大九天软件有限公司 一种后仿电路优化后等效输出的方法
CN113051860A (zh) * 2021-03-29 2021-06-29 深圳华大九天科技有限公司 等效电阻的计算方法、电子设备、服务器和存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8001508B1 (en) * 2007-04-09 2011-08-16 Altera Corporation Method and system for analyzing input/output simultaneous switching noise
CN103034758A (zh) * 2012-12-07 2013-04-10 南通大学 集成电路逻辑优化并行处理方法
CN111353002A (zh) * 2020-02-03 2020-06-30 中国人民解放军国防科技大学 网络表示学习模型的训练方法、装置、电子设备及介质
CN113361219A (zh) * 2020-05-21 2021-09-07 台湾积体电路制造股份有限公司 用于优化集成电路设计的系统和方法

Also Published As

Publication number Publication date
CN115204077A (zh) 2022-10-18

Similar Documents

Publication Publication Date Title
CN110192192B (zh) 用于电路设计的基于神经网络的物理综合
Kim et al. Circuit optimization using carry-save-adder cells
US20050268268A1 (en) Methods and systems for structured ASIC electronic design automation
US11599700B2 (en) Structural matching for fast re-synthesis of electronic circuits
US20050268267A1 (en) Methods and systems for mixed-mode physical synthesis in electronic design automation
CN104620242A (zh) 相关时序架构
US11055463B1 (en) Systems and methods for gate array with partial common inputs
US8813006B1 (en) Accelerated characterization of circuits for within-die process variations
US20220300688A1 (en) Fast synthesis of logical circuit design with predictive timing
CN115204076B (zh) 集成电路的逻辑优化方法、装置、电子设备及可读介质
CN115204077B (zh) 集成电路的节点优化方法、装置、电子设备及可读介质
JP2022536648A (ja) 平坦化されたネットリストからの挙動設計回復
US20120144357A1 (en) Method for Enabling Multiple Incompatible or Costly Timing Environments for Efficient Timing Closure
Cong et al. Multilevel global placement with retiming
CN115293078B (zh) 集成电路的节点改写方法、装置、电子设备及介质
US11120184B2 (en) Satisfiability sweeping for synthesis
Lin et al. A design framework for hardware approximation of deep neural networks
US9852259B2 (en) Area and/or power optimization through post-layout modification of integrated circuit (IC) design blocks
US11657205B2 (en) Construction, modeling, and mapping of multi-output cells
US20230351082A1 (en) Satisfiability-based resubstitution for incremental mapped optimization
CN115203485B (zh) 图数据的处理方法、装置、电子设备及计算机可读介质
US11222154B2 (en) State table complexity reduction in a hierarchical verification flow
CN115062567B (zh) 图数据中邻接节点集合的缩合操作方法、装置及电子设备
CN117540670A (zh) 用于数字电路的全局真值表生成方法及装置
Mahdoum CAD of Circuits and Integrated Systems

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