CN114580345B - 电路仿真方法、装置、计算机设备及计算机可读存储介质 - Google Patents
电路仿真方法、装置、计算机设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN114580345B CN114580345B CN202210462265.8A CN202210462265A CN114580345B CN 114580345 B CN114580345 B CN 114580345B CN 202210462265 A CN202210462265 A CN 202210462265A CN 114580345 B CN114580345 B CN 114580345B
- Authority
- CN
- China
- Prior art keywords
- node
- nodes
- cancelled
- block
- eliminated
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
-
- 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
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
本发明公开了一种电路仿真方法、装置、计算机设备及计算机可读存储介质,应用于模拟仿真领域,所述电路仿真方法包括:首先将电路对应的稀疏矩阵的每行或每列作为节点,并将节点所属的行/列作为块;接着,确定每个节点的度和所有度中的最小值,并将度为最小值的所有节点作为待消元节点;最后,重复执行循环步骤,逐个消去稀疏矩阵中的各个待消元节点,直至待消元节点的数量为零时,根据最后一次消去消元节点的稀疏矩阵进行矩阵求解,并根据求解结果进行电路仿真。由此,本发明实施例基于消元节点的选取和消去,使稀疏矩阵求解过程中产生的注入元的数量最少,提高了电路仿真的效率。
Description
技术领域
本发明涉及模拟仿真领域,尤其涉及一种电路仿真方法、装置、计算机设备及计算机可读存储介质。
背景技术
在集成电路投入使用前,需要对集成电路进行仿真,以分析多物理场影响下集成电路的性能状况。而集成电路仿真涉及到很多物理量之间的各类关系,因而需将集成电路转换为对应的稀疏矩阵,并求解稀疏矩阵以得到物理量的实际值后,才可根据实际值完成集成电路的仿真与性能分析。
但是,随着现代集成电路在设计尺寸和复杂程度上的急剧增长,现代芯片设计如人工智能芯片中搭载的集成电路,已接近或超过十亿逻辑门级别。而此类集成电路对应的稀疏矩阵十分复杂,导致求解所需时间越来越长,影响了电路仿真效率。
发明内容
有鉴于此,本发明提供一种电路仿真方法、装置、计算机设备及计算机可读存储介质,用于改善集成电路对应的稀疏矩阵十分复杂,导致求解所需时间越来越长,影响了电路仿真效率的现状。
第一方面,本发明实施例提供一种电路仿真方法,包括:
将电路对应的稀疏矩阵的每行或每列作为节点,并将所述节点所属的行/列作为块;
确定每个所述节点的度和所有所述度中的最小值,并将所述度为最小值的所有节点作为待消元节点,其中,所述度表示所述节点中除主元以外的非零元的数量;
重复执行循环步骤,直至所述待消元节点的数量为零时,根据最后一次消去消元节点的稀疏矩阵进行矩阵求解,并根据求解结果进行电路仿真,其中,所述循环步骤包括:
针对每个所述待消元节点,基于预设算式计算所述待消元节点在消去后,其他每个所述待消元节点所属的块的模块度的增益量;
将与所述增益量最大的块匹配的待消元节点作为消元节点,其中,所述匹配表示所述块的模块度的增益量因消去所述待消元节点得到;
将所述消元节点加入所述增益量最大的块,并将所述稀疏矩阵中的消元节点消去。
可选的,在本发明实施例提供的一种实施方式中,所述预设算式包括:
式中,dQ表示模块度的增益量,(u,v)表示一端位于第u个待消元节点所属的块,另一端位于第v个待消元节点所属的块的边的数量,k(u)和k(v)分别表示第u个待消元节点的度和第v个待消元节点的度,m表示当前循环步骤对应的图中的边的数量,A(u,v)表示一端位于第u个待消元节点,另一端位于第v个待消元节点的边的数量。
可选的,在本发明实施例提供的一种实施方式中,所述将电路对应的稀疏矩阵的每行或每列作为节点,并将所述节点所属的行/列作为块之后,所述方法还包括:
根据每个所述节点与每个所述块的归属关系,得到归属向量;
所述针对每个所述待消元节点,基于预设算式计算所述待消元节点在消去后,其他每个所述待消元节点所属的块的模块度的增益量,包括:
针对每个所述待消元节点,基于预设算式和所述归属向量,计算所述待消元节点在消去后,其他每个所述待消元节点对应的块的模块度增益量。
可选的,在本发明实施例提供的一种实施方式中,所述重复执行循环步骤,直至所述待消元节点的数量为零时,根据最后一次消去消元节点的稀疏矩阵进行矩阵求解,并根据求解结果进行电路仿真,包括:
重复执行循环步骤,直至所述待消元节点的数量为零时,根据LU分解算法求解最后一次消去消元节点的稀疏矩阵,并根据求解结果进行电路仿真。
可选的,在本发明实施例提供的一种实施方式中,所述确定每个所述节点的度和所有所述度中的最小值,并将所述度为最小值的所有节点作为待消元节点,包括:
确定每个所述节点的度和所有所述度中的最小值;
将所有所述度为所述最小值的节点存储至节点候选集,并将所述节点候选集中的所有节点作为待消元节点;
所述重复执行循环步骤,直至所述待消元节点的数量为零时,根据最后一次消去消元节点的稀疏矩阵进行矩阵求解,并根据求解结果进行电路仿真,包括:
重复执行循环步骤,直至所述节点候选集为空集时,根据最后一次消去消元节点的稀疏矩阵进行矩阵求解,并根据求解结果进行电路仿真。
可选的,在本发明实施例提供的一种实施方式中,所述将与所述增益量最大的块匹配的待消元节点作为消元节点,包括:
确定所有所述增益量中的增益量最大值;
从所有所述增益量为所述增益量最大值的块中,选取与其中一个块匹配的待消元节点作为消元节点。
第二方面,本发明实施例提供一种电路仿真装置,包括:
节点获取模块,用于将电路对应的稀疏矩阵的每行或每列作为节点,并将所述节点所属的行/列作为块;
确定模块,用于确定每个所述节点的度和所有所述度中的最小值,并将所述度为最小值的所有节点作为待消元节点,其中,所述度表示所述节点中除主元以外的非零元的数量;
循环模块,用于重复执行循环步骤,直至所述待消元节点的数量为零时,根据最后一次消去消元节点的稀疏矩阵进行矩阵求解,并根据求解结果进行电路仿真,其中,所述循环步骤包括:
针对每个所述待消元节点,基于预设算式计算所述待消元节点在消去后,其他每个所述待消元节点所属的块的模块度的增益量;
将与所述增益量最大的块匹配的待消元节点作为消元节点,其中,所述匹配表示所述块的模块度的增益量因消去所述待消元节点得到;
将所述消元节点加入所述增益量最大的块,并将所述稀疏矩阵中的消元节点消去。
可选的,在本发明实施例提供的一种实施方式中,所述预设算式包括:
式中,dQ表示模块度的增益量,(u,v)表示一端位于第u个待消元节点所属的块,另一端位于第v个待消元节点所属的块的边的数量,k(u)和k(v)分别表示第u个待消元节点的度和第v个待消元节点的度,m表示当前循环步骤对应的图中的边的数量,A(u,v)表示一端位于第u个待消元节点,另一端位于第v个待消元节点的边的数量。
第三方面,本发明实施例提供一种计算机设备,包括存储器以及处理器,存储器存储有计算机程序,计算机程序在处理器上运行时执行如第一方面中任一种公开的电路仿真方法。
第四方面,本发明实施例提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序在处理器上运行时执行如第一方面中任一种公开的电路仿真方法。
本发明实施例提供的电路仿真方法中,计算机设备首先将电路对应的稀疏矩阵的每行或每列作为节点,并将节点所属的行/列作为块,进而确定每个节点与块的归属关系;接着,确定每个节点的度和所有度中的最小值,并将度为最小值的所有节点作为待消元节点,以在后续步骤中将稀疏矩阵中各个待消元节点消去;最后,重复执行循环步骤,逐个消去稀疏矩阵中的各个待消元节点,直至待消元节点的数量为零时,根据最后一次消去消元节点的稀疏矩阵进行矩阵求解,并根据求解结果进行电路仿真。其中,循环步骤包括:针对每个待消元节点,基于预设算式计算待消元节点在消去后,其他每个待消元节点所属的块的模块度的增益量,以确定稀疏矩阵中哪一个节点被消去后,求解稀疏矩阵所需的注入元的数量最少;将与增益量最大的块匹配的待消元节点作为消元节点;将消元节点加入增益量最大的块,并将稀疏矩阵中的消元节点消去。
基于此,本发明实施例基于消元节点的选取,使得每次在消去稀疏矩阵中的节点时,消去的节点将使矩阵求解过程中需产生的注入元的数量最少,由此提高了计算机设备求解稀疏矩阵的速度和电路仿真的效率。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对本发明保护范围的限定。在各个附图中,类似的构成部分采用类似的编号。
图1示出了本发明实施例提供的第一种电路仿真方法的流程示意图;
图2示出了本发明实施例提供的第二种电路仿真方法的流程示意图;
图3示出了本发明实施例提供的第三种电路仿真方法的流程示意图;
图4示出了本发明实施例提供的电路仿真装置的结构示意图。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
在下文中,可在本发明的各种实施例中使用的术语“包括”、“具有”及其同源词仅意在表示特定特征、数字、步骤、操作、元件、组件或前述项的组合,并且不应被理解为首先排除一个或更多个其它特征、数字、步骤、操作、元件、组件或前述项的组合的存在或增加一个或更多个特征、数字、步骤、操作、元件、组件或前述项的组合的可能性。
此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
除非另有限定,否则在这里使用的所有术语(包括技术术语和科学术语)具有与本发明的各种实施例所属领域普通技术人员通常理解的含义相同的含义。所述术语(诸如在一般使用的词典中限定的术语)将被解释为具有与在相关技术领域中的语境含义相同的含义并且将不被解释为具有理想化的含义或过于正式的含义,除非在本发明的各种实施例中被清楚地限定。
参照图1,示出了本发明实施例提供的第一种电路仿真方法的流程示意图,本发明实施例提供的电路仿真方法包括:
S110,将电路对应的稀疏矩阵的每行或每列作为节点,并将所述节点所属的行/列作为块。
也即,本发明实施例首先获取电路对应的稀疏矩阵,并将稀疏矩阵的每一行或每一列作为节点;同时,将作为节点的行或列作为节点所属的类别,即块。
示范性的,设一个矩阵的大小为3×3。将矩阵的每一行作为节点,则将得到第一行对应的第一节点,第二行对应的第二节点,第三行对应的第三节点。因第一节点因第一行而得到,故将第一行作为第一节点所属的块,类似的,将第二行作为第二节点所属的块,第三行作为第三节点所属的块。
可以理解的是,在本发明实施例执行S110时,稀疏矩阵中的每行或每列既是节点,也是节点所属的块。在后续的步骤中,块的数量将减少,一个块中可能将包括多个节点。
此外,还可以理解的是,获取电路的稀疏矩阵的方式可根据实际情况设置,本发明实施例对此不进行限定。
S120,确定每个所述节点的度和所有所述度中的最小值,并将所述度为最小值的所有节点作为待消元节点,其中,所述度表示所述节点中除主元以外的非零元的数量。
也即,本发明实施例将基于最小度排序的方式完成矩阵求解。可以理解的是,对稀疏矩阵的行/列进行排序是稀疏矩阵求解中的关键步骤。在最小度排序完成后,矩阵求解过程所需产生的注入元的数量将减少,进而能减少计算机设备求解稀疏矩阵的内存需求,并提高求解速度。
具体而言,本发明实施例首先将计算每个中节点中除主元以外的非零元的数量,以得到每个节点的度。
接着,将所有的度进行排序,确定度的最小值。可以理解的是,在稀疏矩阵中,往往有多行/列的度均为最小值。
最后,将所有度为最小值的节点作为待消元节点,以在后续的步骤中将稀疏矩阵中的待消元节点消去,即消元。
S130,重复执行循环步骤,直至所述待消元节点的数量为零时,根据最后一次消去消元节点的稀疏矩阵进行矩阵求解,并根据求解结果进行电路仿真,其中,所述循环步骤包括:
针对每个所述待消元节点,基于预设算式计算所述待消元节点在消去后,其他每个所述待消元节点所属的块的模块度的增益量;
将与所述增益量最大的块匹配的待消元节点作为消元节点,其中,所述匹配表示所述块的模块度的增益量因消去所述待消元节点得到;
将所述消元节点加入所述增益量最大的块,并将所述稀疏矩阵中的消元节点消去。
需理解的是,最小度排序的结果中,往往有多个节点的度均为最小值,因而在根据排序结果进行消元时,一般是消去多个度为最小值的节点中的其中一个。但基于度的定义,可知度与矩阵中的非零元存在联系,而在实际电路设计中,矩阵的非零元分布并分随机分布,而是存在聚类现象。以集成电路为例,集成电路的某些区域中的线路更密集,或某些区域内各个物理量之间的联系更复杂,而此种情况将使得集成电路对应的稀疏矩阵中存在聚类现象,即使得某行/列中的非零元的数量相比于其他行/列更多。
因此,本发明实施例因此种聚类现象的产生,在最小度排序的基础上,针对同时存在多个待消元节点的稀疏矩阵,即稀疏矩阵中同一时刻存在多个度均为最小值的行/列时,将根据模块度挑选出最优的行/列,即挑选出最优的待消元节点以进行消元,以保证在每次进行消元完成后,求解矩阵所需产生的注入元的数量最少。
具体的,针对每个待消元节点,本发明实施例首先控制计算机设备根据预设算式计算待消元节点在消去后,其他每个待消元节点所属的块的模块度(Modularity)的增益量。
示范性的,当节点和块的数量均为3,且每个节点和每个块为一一对应的归属关系。基于此,计算机设备在针对每个待消元节点,完成相应的增益量计算后,将得到共计6个增益量。
进一步的,若将待消元节点被消去后,块的模块度视作第一模块度,待消元节点被消去前,块的模块度视作第二模块度,则模块度的增益量即第一模块度减去第二模块度所得到的差值。
需理解的是,模块度是一种聚类指标,常用于评价模块/社区/类/组的聚合质量,具体定义可参考下式:
式中,Q表示模块度;c表示块的数量;e ii 表示一端为第i个块中的节点,另一端在第i个块中的节点的边占第i个块中所有边的比例(fraction),即第i个块中内部边占块中所有边的比例;a i 表示其它块的边的一端为第i个块中的节点占所有块的边的比例。
其中,Q的值越大,表明第i个块的聚合质量越高,即第i个块中内部边的数量较多,较少的边的端点在其他块中,第i个块与其他块的耦合度低。
还需理解的是,模块度的详细定义可参考现有技术,本发明不再进行说明。
基于此,本发明实施例基于模块度的定义,因而计算其他每个待消元节点所属的块的模块度的增益量,以确定哪一个待消元节点在消去后,哪一个待消元节点所属的块模块度的增益量最大,即确定哪一个块将因待消元节点的加入,将使自身的聚合质量提升最高。而块的聚合质量越高,则说明求解过程需产生的注入元的数量越少。
进一步的,在得到多个增益量后,本发明实施例中的计算机设备将挑选出多个增益量中的最大值,并将与增益量的块匹配的待消元节点作为消元节点,以在下一步骤中将消元节点消去。
需说明的是,本发明实施例中的匹配是指代块的增益量是因哪一个待消元节点的消去而产生。示范性的,设待消元节点包括P1和P2,块包括C1和C2,P1属于C1,P2属于C2;在完成每个待消元节点消去后的增益量计算时,得到因P1消去后,C2的模块度的增益量Q1,和因P2消去后,C1的模块度的增益量Q2。此种情况下,Q1对应的C2与P1匹配,Q2对应的C1与P2匹配。
此外,需说明的是,若同时存在多个增益量的值均为最大值,计算机设备可同时将与每个增益量的值均为最大值对应的块所匹配的待消元节点均作为消元节点,以提高计算机设备的处理效率。
而在本发明实施例提供的一种可行方式中,所述将与所述增益量最大的块匹配的待消元节点作为消元节点,包括:
确定所有所述增益量中的增益量最大值;
从所有所述增益量为所述增益量最大值的块中,选取与其中一个块匹配的待消元节点作为消元节点。
也即,本发明实施例将从所有增益量的值为增益量最大值的块中,选取与其中一个块匹配的待消元节点作为消元节点。可以理解的是,相比于多个待消元节点同时作为消元节点被消去后,逐个消去各个待消元节点能保证每次消去待消元节点时,每个与待消元节点匹配的块的模块度的增益量最大,进而能保证排序效果更佳。
进一步的,本发明实施例中的计算机设备在确定与最大增益量对应的块所匹配的待消元节点,并将待消元节点作为消元节点后,将消元节点加入增益量最大的块,进而块中同时包含两个节点,且稀疏矩阵对应的块的总数量减1;同时,计算机设备还将稀疏矩阵中的消元节点消去,由此完成至少一个待消元节点的消元。
而在进行多轮消元,直至所有的待消元节点均转变为消元节点后,本发明实施例中的计算机设备将由最后一轮循环运算而得到的稀疏矩阵,即最后一次消去消元节点的稀疏矩阵,视作最小度排序已完成,并对稀疏矩阵进行矩阵求解,最后根据求解结果中各个物理量的值进行电路仿真。
可选的,为提高求解速度,在本发明实施例提供的一种实施方式中,具体可参考图2,示出了本发明实施例提供的第二种电路仿真方法的流程示意图,即S130包括:
S131,重复执行循环步骤,直至所述待消元节点的数量为零时,根据LU分解算法求解最后一次消去消元节点的稀疏矩阵,并根据求解结果进行电路仿真。
也即,本发明实施例中的计算机设备将通过LU分解算法来完成矩阵求解。可以理解的是,LU分解(LU Factorization)算法是矩阵分解的一种,用于将一个矩阵分解为一个下三角矩阵和一个上三角矩阵的乘积。本发明实施例中的计算机设备基于预设程序的设置,从而能通过LU分解算法对最后一次消去消元节点的稀疏矩阵进行求解,得到电路中各个物理量的值,并将根据各个物理量的值进行电路仿真。
本发明实施例提供的电路仿真方法中,计算机设备首先将电路对应的稀疏矩阵的每行或每列作为节点,并将节点所属的行/列作为块,进而确定每个节点与块的归属关系;接着,确定每个节点的度和所有度中的最小值,并将度为最小值的所有节点作为待消元节点,以在后续步骤中将稀疏矩阵中各个待消元节点消去;最后,重复执行循环步骤,逐个消去稀疏矩阵中的各个待消元节点,直至待消元节点的数量为零时,根据最后一次消去消元节点的稀疏矩阵进行矩阵求解,并根据求解结果进行电路仿真。其中,循环步骤包括:针对每个待消元节点,基于预设算式计算待消元节点在消去后,其他每个待消元节点所属的块的模块度的增益量,以确定稀疏矩阵中哪一个节点被消去后,求解稀疏矩阵所需的注入元的数量最少;将与增益量最大的块匹配的待消元节点作为消元节点;将消元节点加入增益量最大的块,并将稀疏矩阵中的消元节点消去。
基于此,本发明实施例基于消元节点的选取,使得每次在消去稀疏矩阵中的节点时,消去的节点将使矩阵求解过程中需产生的注入元的数量最少,由此提高了计算机设备求解稀疏矩阵的速度和电路仿真的效率。
可选的,在本发明实施例提供的一种可行方式中,所述预设算式包括:
式中,dQ表示模块度的增益量,(u,v)表示一端位于第u个待消元节点所属的块,另一端位于第v个待消元节点所属的块的边的数量,k(u)和k(v)分别表示第u个待消元节点的度和第v个待消元节点的度,m表示当前循环步骤对应的图中的边的数量,A(u,v)表示一端位于第u个待消元节点,另一端位于第v个待消元节点的边的数量。
可选的,为使计算机设备能高效地确定每个节点与块的归属关系以保证求解过程的准确,在本发明实施例提供的一种可行方式中,所述S110之后,所述方法还包括:
根据每个所述节点与每个所述块的归属关系,得到归属向量;
所述针对每个所述待消元节点,基于预设算式计算所述待消元节点在消去后,其他每个所述待消元节点所属的块的模块度的增益量,包括:
针对每个待消元节点,基于预设算式和所述归属向量,计算所述待消元节点在消去后,其他每个所述待消元节点对应的块的模块度增益量。
也即,本发明实施例将通过归属向量记录每个待消元节点与每个的块的归属关系,进而在计算机设备需确定每个待消元节点所属的块时,将根据归属向量中记录的内容以确定。由此,使得计算机设备能准确地确定各个节点和块的归属关系,进而提高了计算机设备求解稀疏矩阵的效率。
可选的,为进一步提高计算机设备求解稀疏矩阵的效率,在本发明实施例提供的一种可行方式中,具体可参考图3,示出了本发明实施例提供的第三种电路仿真方法的流程示意图,即此种可行方式下的所述S120包括:
S121,确定每个所述节点的度和所有所述度中的最小值;
S122,将所有所述度为所述最小值的节点存储至节点候选集,并将所述节点候选集中的所有节点作为待消元节点;
进而,所述S130包括:
S132,重复执行循环步骤,直至所述节点候选集为空集时,根据最后一次消去消元节点的稀疏矩阵进行矩阵求解,并根据求解结果进行电路仿真。
也即,本发明实施例中的计算机设备在计算出每个节点的度,并确定度的最小值后,将所有度为最小值的节点存储至预设的节点候选集;接着,将节点候选集中的所有节点作为待消元节点,以在后续循环步骤中,不断从节点候选集抽取节点。进而,计算机设备将根据节点候选集的集合大小确定循环步骤是否执行完成,若节点候选集的集合大小为0,即节点候选集为空集,表明循环步骤已结束。
基于此,计算机设备将通过节点候选集的集合大小确定循环步骤是否结束,无需重复统计待消元节点的数量,从而提高了计算机设备求解稀疏矩阵的效率。
与本发明实施例提供的电路仿真方法相对应的,本发明实施例还提供一种电路仿真装置,参照图4,示出了本发明实施例提供的电路仿真装置的结构示意图,本发明实施例提供的电路仿真装置200,包括:
节点获取模块210,用于将电路对应的稀疏矩阵的每行或每列作为节点,并将所述节点所属的行/列作为块;
确定模块220,用于确定每个所述节点的度和所有所述度中的最小值,并将所述度为最小值的所有节点作为待消元节点,其中,所述度表示所述节点中除主元以外的非零元的数量;
循环模块230,用于重复执行循环步骤,直至所述待消元节点的数量为零时,根据最后一次消去消元节点的稀疏矩阵进行矩阵求解,并根据求解结果进行电路仿真,其中,所述循环步骤包括:
针对每个所述待消元节点,基于预设算式计算所述待消元节点在消去后,其他每个所述待消元节点所属的块的模块度的增益量;
将与所述增益量最大的块匹配的待消元节点作为消元节点,其中,所述匹配表示所述块的模块度的增益量因消去所述待消元节点得到;
将所述消元节点加入所述增益量最大的块,并将所述稀疏矩阵中的消元节点消去。
可选的,在本发明实施例提供的一种可行方式中,所述预设算式包括:
式中,dQ表示模块度的增益量,(u,v)表示一端位于第u个待消元节点所属的块,另一端位于第v个待消元节点所属的块的边的数量,k(u)和k(v)分别表示第u个待消元节点的度和第v个待消元节点的度,m表示当前循环步骤对应的图中的边的数量,A(u,v)表示一端位于第u个待消元节点,另一端位于第v个待消元节点的边的数量。
可选的,在本发明实施例提供的一种可行方式中,所述装置还包括:
向量获取模块,用于根据每个所述节点与每个所述块的归属关系,得到归属向量;
所述针对每个所述待消元节点,基于预设算式计算所述待消元节点在消去后,其他每个所述待消元节点所属的块的模块度的增益量,包括:
针对每个所述待消元节点,基于预设算式和所述归属向量,计算所述待消元节点在消去后,其他每个所述待消元节点对应的块的模块度增益量。
可选的,在本发明实施例提供的一种可行方式中,所述循环模块还用于重复执行循环步骤,直至所述待消元节点的数量为零时,根据LU分解算法求解最后一次消去消元节点的稀疏矩阵,并根据求解结果进行电路仿真。
可选的,在本发明实施例提供的一种可行方式中,所述确定模块包括:
最小值确定子模块,用于确定每个所述节点的度和所有所述度中的最小值;
存储子模块,用于将所有所述度为所述最小值的节点存储至节点候选集,并将所述节点候选集中的所有节点作为待消元节点;
所述循环模块还用于:重复执行循环步骤,直至所述节点候选集为空集时,根据最后一次消去消元节点的稀疏矩阵进行矩阵求解,并根据求解结果进行电路仿真。
可选的,在本发明实施例提供的一种可行方式中,所述将与所述增益量最大的块匹配的待消元节点作为消元节点,包括:
确定所有所述增益量中的增益量最大值;
从所有所述增益量为所述增益量最大值的块中,选取与其中一个块匹配的待消元节点作为消元节点。
本申请实施例提供的电路仿真装置能够实现图1对应的方法实施例中电路仿真方法的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供一种计算机设备,包括存储器以及处理器,存储器存储有计算机程序,计算机程序在处理器上运行时执行如图1对应的方法实施例中公开的电路仿真方法。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序在处理器上运行时执行如图1对应的方法实施例中公开的电路仿真方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和结构图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,结构图和/或流程图中的每个方框、以及结构图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块或单元可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或更多个模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是智能手机、个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。
Claims (10)
1.一种电路仿真方法,其特征在于,包括:
将电路对应的稀疏矩阵的每行或每列作为节点,并将所述节点所属的行/列作为块;
确定每个所述节点的度和所有所述度中的最小值,并将所述度为最小值的所有节点作为待消元节点,其中,所述度表示所述节点中除主元以外的非零元的数量;
重复执行循环步骤,直至所述待消元节点的数量为零时,根据最后一次消去消元节点的稀疏矩阵进行矩阵求解,并根据求解结果进行电路仿真,其中,所述循环步骤包括:
针对每个所述待消元节点,基于预设算式计算所述待消元节点在消去后,其他每个所述待消元节点所属的块的模块度的增益量;
将与所述增益量最大的块匹配的待消元节点作为消元节点,其中,所述匹配表示所述块的模块度的增益量因消去所述待消元节点得到;
将所述消元节点加入所述增益量最大的块,并将所述稀疏矩阵中的消元节点消去。
3.根据权利要求1所述的电路仿真方法,其特征在于,所述将电路对应的稀疏矩阵的每行或每列作为节点,并将所述节点所属的行/列作为块之后,所述方法还包括:
根据每个所述节点与每个所述块的归属关系,得到归属向量;
所述针对每个所述待消元节点,基于预设算式计算所述待消元节点在消去后,其他每个所述待消元节点所属的块的模块度的增益量,包括:
针对每个待消元节点,基于预设算式和所述归属向量,计算所述待消元节点在消去后,其他每个所述待消元节点对应的块的模块度增益量。
4.根据权利要求1所述的电路仿真方法,其特征在于,所述重复执行循环步骤,直至所述待消元节点的数量为零时,根据最后一次消去消元节点的稀疏矩阵进行矩阵求解,并根据求解结果进行电路仿真,包括:
重复执行循环步骤,直至所述待消元节点的数量为零时,根据LU分解算法求解最后一次消去消元节点的稀疏矩阵,并根据求解结果进行电路仿真。
5.根据权利要求1所述的电路仿真方法,其特征在于,所述确定每个所述节点的度和所有所述度中的最小值,并将所述度为最小值的所有节点作为待消元节点,包括:
确定每个所述节点的度和所有所述度中的最小值;
将所有所述度为所述最小值的节点存储至节点候选集,并将所述节点候选集中的所有节点作为待消元节点;
所述重复执行循环步骤,直至所述待消元节点的数量为零时,根据最后一次消去消元节点的稀疏矩阵进行矩阵求解,并根据求解结果进行电路仿真,包括:
重复执行循环步骤,直至所述节点候选集为空集时,根据最后一次消去消元节点的稀疏矩阵进行矩阵求解,并根据求解结果进行电路仿真。
6.根据权利要求1所述的电路仿真方法,其特征在于,所述将与所述增益量最大的块匹配的待消元节点作为消元节点,包括:
确定所有所述增益量中的增益量最大值;
从所有所述增益量为所述增益量最大值的块中,选取与其中一个块匹配的待消元节点作为消元节点。
7.一种电路仿真装置,其特征在于,包括:
节点获取模块,用于将电路对应的稀疏矩阵的每行或每列作为节点,并将所述节点所属的行/列作为块;
确定模块,用于确定每个所述节点的度和所有所述度中的最小值,并将所述度为最小值的所有节点作为待消元节点,其中,所述度表示所述节点中除主元以外的非零元的数量;
循环模块,用于重复执行循环步骤,直至所述待消元节点的数量为零时,根据最后一次消去消元节点的稀疏矩阵进行矩阵求解,并根据求解结果进行电路仿真,其中,所述循环步骤包括:
针对每个所述待消元节点,基于预设算式计算所述待消元节点在消去后,其他每个所述待消元节点所属的块的模块度的增益量;
将与所述增益量最大的块匹配的待消元节点作为消元节点,其中,所述匹配表示所述块的模块度的增益量因消去所述待消元节点得到;
将所述消元节点加入所述增益量最大的块,并将所述稀疏矩阵中的消元节点消去。
9.一种计算机设备,其特征在于,包括存储器以及处理器,所述存储器存储有计算机程序,所述计算机程序在所述处理器上运行时执行如权利要求1-6任一项所述的电路仿真方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序在处理器上运行时执行如权利要求1-6任一项所述的电路仿真方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210462265.8A CN114580345B (zh) | 2022-04-29 | 2022-04-29 | 电路仿真方法、装置、计算机设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210462265.8A CN114580345B (zh) | 2022-04-29 | 2022-04-29 | 电路仿真方法、装置、计算机设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114580345A CN114580345A (zh) | 2022-06-03 |
CN114580345B true CN114580345B (zh) | 2022-07-05 |
Family
ID=81778174
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210462265.8A Active CN114580345B (zh) | 2022-04-29 | 2022-04-29 | 电路仿真方法、装置、计算机设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114580345B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117077607B (zh) * | 2023-07-26 | 2024-06-18 | 南方科技大学 | 大规模线性电路仿真方法、系统、电路仿真器及存储介质 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102081690A (zh) * | 2010-12-30 | 2011-06-01 | 南京理工大学 | 复杂电路的矩阵分解结合新奇异值分解方法 |
CN102156777A (zh) * | 2011-04-08 | 2011-08-17 | 清华大学 | 电路仿真时电路稀疏矩阵的基于消去图的并行分解方法 |
US8065129B1 (en) * | 2004-11-19 | 2011-11-22 | Synopsys, Inc. | Methods and apparatuses for circuit simulation |
CN102426619A (zh) * | 2011-10-31 | 2012-04-25 | 清华大学 | 针对电路仿真的自适应并行lu分解方法 |
CN104317776A (zh) * | 2014-09-24 | 2015-01-28 | 南昌大学 | 一种基于稀疏矩阵技术求解电力系统节点阻抗矩阵的方法 |
CN108491572A (zh) * | 2018-02-11 | 2018-09-04 | 合肥市太泽透平技术有限公司 | 一种基于两面流理论的透平机械二维流动仿真方法 |
CN109992860A (zh) * | 2019-03-21 | 2019-07-09 | 华北电力大学 | 基于gpu的电磁暂态并行仿真方法和系统 |
CN110826186A (zh) * | 2019-10-11 | 2020-02-21 | 南昌大学 | 基于对称稀疏矩阵技术和非零元素随机存放的lr三角分解法 |
CN112287625A (zh) * | 2020-12-21 | 2021-01-29 | 北京智芯仿真科技有限公司 | 一种系统级集成电路直流压降的并行分析方法及系统 |
CN112560373A (zh) * | 2020-06-03 | 2021-03-26 | 深圳鸿芯微纳技术有限公司 | 毛刺功率分析和优化引擎 |
CN113379327A (zh) * | 2021-07-09 | 2021-09-10 | 济南大学 | 一种电力系统多区域并行状态估计方法及系统 |
CN113486616A (zh) * | 2021-07-21 | 2021-10-08 | 成都华大九天科技有限公司 | 一种电路仿真中的分块矩阵存储方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7278120B2 (en) * | 2004-07-23 | 2007-10-02 | Synplicity, Inc. | Methods and apparatuses for transient analyses of circuits |
US8060355B2 (en) * | 2007-07-27 | 2011-11-15 | Synopsys, Inc. | Automatic, hierarchy-independent partitioning method for transistor-level circuit simulation |
CN101799836B (zh) * | 2009-02-11 | 2014-09-17 | 益华公司 | 电路模拟和分析中的自适应网格分解 |
-
2022
- 2022-04-29 CN CN202210462265.8A patent/CN114580345B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8065129B1 (en) * | 2004-11-19 | 2011-11-22 | Synopsys, Inc. | Methods and apparatuses for circuit simulation |
CN102081690A (zh) * | 2010-12-30 | 2011-06-01 | 南京理工大学 | 复杂电路的矩阵分解结合新奇异值分解方法 |
CN102156777A (zh) * | 2011-04-08 | 2011-08-17 | 清华大学 | 电路仿真时电路稀疏矩阵的基于消去图的并行分解方法 |
CN102426619A (zh) * | 2011-10-31 | 2012-04-25 | 清华大学 | 针对电路仿真的自适应并行lu分解方法 |
CN104317776A (zh) * | 2014-09-24 | 2015-01-28 | 南昌大学 | 一种基于稀疏矩阵技术求解电力系统节点阻抗矩阵的方法 |
CN108491572A (zh) * | 2018-02-11 | 2018-09-04 | 合肥市太泽透平技术有限公司 | 一种基于两面流理论的透平机械二维流动仿真方法 |
CN109992860A (zh) * | 2019-03-21 | 2019-07-09 | 华北电力大学 | 基于gpu的电磁暂态并行仿真方法和系统 |
CN110826186A (zh) * | 2019-10-11 | 2020-02-21 | 南昌大学 | 基于对称稀疏矩阵技术和非零元素随机存放的lr三角分解法 |
CN112560373A (zh) * | 2020-06-03 | 2021-03-26 | 深圳鸿芯微纳技术有限公司 | 毛刺功率分析和优化引擎 |
CN112287625A (zh) * | 2020-12-21 | 2021-01-29 | 北京智芯仿真科技有限公司 | 一种系统级集成电路直流压降的并行分析方法及系统 |
CN113379327A (zh) * | 2021-07-09 | 2021-09-10 | 济南大学 | 一种电力系统多区域并行状态估计方法及系统 |
CN113486616A (zh) * | 2021-07-21 | 2021-10-08 | 成都华大九天科技有限公司 | 一种电路仿真中的分块矩阵存储方法 |
Non-Patent Citations (5)
Title |
---|
GPU-Accelerated Adaptive PCBSO Mode-Based Hybrid RLA for Sparse LU Factorization in Circuit Simulation;Wai-Kong Lee 等;《IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems》;20211130;第40卷(第11期);2320-2330 * |
Parallel Sparse Matrix Solution for Circuit Simulation on FPGAs;Tarek Nechma 等;《IEEE Transactions on Computers》;20150430;第64卷(第4期);1190-1103 * |
基于FPGA的LU分解算法对电路的快速测算;曹政 等;《电子设计工程》;20190831;第27卷(第16期);74-78 * |
模拟电路仿真中建模技术研究;梁俊虎;《中国优秀硕士学位论文全文数据库 信息科技辑》;20140915(第09(2014年)期);I135-105 * |
面向异构体系结构的稀疏矩阵算法研究;邹丹;《中国博士学位论文全文数据库 信息科技辑》;20160115(第01(2016年)期);I138-5 * |
Also Published As
Publication number | Publication date |
---|---|
CN114580345A (zh) | 2022-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106649877A (zh) | 一种基于密度峰值的大数据挖掘方法及装置 | |
CN111581092B (zh) | 仿真测试数据的生成方法、计算机设备及存储介质 | |
CN107341548A (zh) | 一种数据处理方法、装置及电子设备 | |
CN114580345B (zh) | 电路仿真方法、装置、计算机设备及计算机可读存储介质 | |
US20190065963A1 (en) | Optimal solution search method, optimal solution search program, and optimal solution search apparatus | |
CN111428866A (zh) | 一种增量学习方法、装置、存储介质及电子设备 | |
CN106886467B (zh) | 基于分组-综合多目标进化的多任务测试优选方法 | |
Lee et al. | SNAS: Fast hardware-aware neural architecture search methodology | |
CN116150125A (zh) | 结构化数据生成模型的训练方法、装置、设备及存储介质 | |
CN117521576B (zh) | 运算资源共享方法、装置、设备和介质 | |
CN109344169B (zh) | 数据处理方法及装置 | |
CN116578425B (zh) | 一种基于光栅化的负载均衡方法及系统 | |
CN111949530A (zh) | 测试结果的预测方法、装置、计算机设备及存储介质 | |
CN114547380B (zh) | 数据遍历查询方法、装置、电子设备及可读存储介质 | |
CN112416709B (zh) | 芯片动态功耗估计方法、装置、处理器芯片及服务器 | |
CN114529002B (zh) | 量子连通图谱的聚团划分方法、装置、终端及存储介质 | |
CN113973061A (zh) | 电路时延预测方法、装置、终端设备和可读存储介质 | |
CN110059880B (zh) | 一种服务发现方法及装置 | |
CN113255933A (zh) | 特征工程和图网络生成方法和装置、分布式系统 | |
CN111783976A (zh) | 一种基于窗口梯度更新的神经网络训练过程中间值存储压缩方法和装置 | |
Surynek | At-most-one constraints in efficient representations of mutex networks | |
CN118012657A (zh) | 微服务系统的根因定位方法、装置、可读介质和电子设备 | |
CN109189346B (zh) | 一种数据处理方法及装置 | |
US20240054369A1 (en) | Ai-based selection using cascaded model explanations | |
CN116910083A (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 |