CN113486616B - 一种电路仿真中的分块矩阵存储方法 - Google Patents
一种电路仿真中的分块矩阵存储方法 Download PDFInfo
- Publication number
- CN113486616B CN113486616B CN202110824558.1A CN202110824558A CN113486616B CN 113486616 B CN113486616 B CN 113486616B CN 202110824558 A CN202110824558 A CN 202110824558A CN 113486616 B CN113486616 B CN 113486616B
- Authority
- CN
- China
- Prior art keywords
- matrix
- sub
- nodes
- circuit
- storage method
- 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/36—Circuit design at the analogue level
- G06F30/367—Design verification, e.g. using simulation, simulation program with integrated circuit emphasis [SPICE], direct methods or relaxation methods
-
- 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)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Mathematical Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Optimization (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Algebra (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Complex Calculations (AREA)
Abstract
一种电路仿真中的分块矩阵存储方法,包括以下步骤:将每个子电路的节点重新编号和排序,建立节点的子矩阵;根据器件所属的子电路和端口在子电路中的节点编号,在对应的子矩阵中标记非零元位置;计算出每一个子矩阵的舒尔补矩阵并进行合并,生成顶层矩阵。本发明的电路仿真中的分块矩阵存储方法,通过对电路方程组的系数矩阵进行分块,使后续的矩阵计算,包括矩阵分解和回代求解,能够并行的进行,提升了计算效率。
Description
技术领域
本发明涉及模拟电路数值仿真技术领域,特别是涉及一种针对电路划分后方程组系数矩阵的分块矩阵存储方法。
背景技术
电路中的电流遵循基尔霍夫电流定律(KCL方程),任意节点连接的所有支路的总电流和为零。在电路仿真计算的线性方程组Ax=y中,系数矩阵A反映了状态变量x对结果y(主要是节点电流和)的影响。A的维数基本和电路的节点数量保持一致,随着仿真的电路规模的增大,A矩阵也会增大。在电路仿真的矩阵存储和计算中,目前对A矩阵直接存储为一个矩阵,存在多种缺陷。首先,当A矩阵规模增大时,A本身的数据量变大,在计算中需要对和维数相等的向量进行读写操作,同样规模也会变大,造成数据量超过计算机CPU的缓存,导致速度变慢。其次,直接对A矩阵计算难以做到并行处理,不能有效的利用现代计算机的并行能力。
发明内容
为了解决现有技术存在的不足,本发明的目的在于提供一种电路仿真中的分块矩阵存储方法,通过对电路方程组的系数矩阵进行分块,划分成多个子矩阵,并形成一个顶层,分别存储,使后续的矩阵计算,包括矩阵分解和回代求解,能够并行的进行,提升了计算效率。
为实现上述目的,本发明提供的一种电路仿真中的分块矩阵存储方法,包括以下步骤:
将每个子电路的节点重新编号和排序,建立节点的子矩阵;
根据器件所属的子电路和端口在子电路中的节点编号,在对应的子矩阵中标记非零元位置;
计算出每一个子矩阵的舒尔补矩阵并进行合并,生成顶层矩阵。
进一步地,所述将每个子电路的节点重新编号和排序,建立节点的子矩阵的步骤,还包括,按照遍历每个子电路的内部节点,再遍历边界节点的顺序给所有节点重新编号,得到的节点编号的顺序是子电路的内部节点在前,所有的边界节点在后,并且单个子电路的内部节点编号连续。
进一步地,所述将每个子电路的节点重新编号和排序,建立节点的子矩阵的步骤,还包括,每个子电路按重新编号的节点相对顺序,利用所连接的节点建立新的子矩阵。
进一步地,还包括,对于单个子电路产生的子矩阵,
内部节点之间的矩阵元素位于子矩阵的左上角部分;
内部节点与边界节点之间的矩阵元素位于子矩阵的左下角和右上角部分;
边界节点之间的矩阵元素位于子矩阵右下角部分。
进一步地,所述计算出每一个子矩阵的舒尔补矩阵并进行合并,生成顶层矩阵的步骤,还包括,
对每个子矩阵求舒尔补矩阵;
将每个子矩阵的舒尔补矩阵按边界节点的对应关系合并,得到顶层矩阵。
更进一步地,还包括,对形成的所述子矩阵和顶层矩阵,采用稀疏矩阵的压缩存储方式。
为实现上述目的,本发明还提供一种电子设备,包括存储器和处理器,所述存储器上储存有在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行如上文所述的电路仿真中的分块矩阵存储方法的步骤。
为实现上述目的,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序运行时执行如上文所述的电路仿真中的分块矩阵存储方法的步骤。
本发明的电路仿真中的分块矩阵存储方法、电子设备及计算机可读存储介质,具有以下有益效果:
1)通过对电路方程组的系数矩阵进行分块,使得单个矩阵及对应的向量的数据量减少,对计算机CPU缓存的要求减少,从而能够加速计算。
2)通过对电路方程组的系数矩阵进行分块,使后续的矩阵计算,包括矩阵分解和回代求解,能够并行的进行,提升了计算效率。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,并与本发明的实施例一起,用于解释本发明,并不构成对本发明的限制。在附图中:
图1为根据本发明的电路仿真中的分块矩阵存储方法流程图;
图2为根据本发明的一个实施例的电路图;
图3为根据本发明的节点在子矩阵中的编号表;
图4为根据本发明的按电路划分得到的子矩阵1表达式示意图;
图5为根据本发明的按电路划分得到的子矩阵2表达式示意图;
图6为根据本发明的排序方法,得到的具有带状加边结构的原始矩阵示意图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
实施例1
图1为根据本发明的电路仿真中的分块矩阵存储方法流程图,下面将参考图1,对本发明的电路仿真中的分块矩阵存储方法进行详细描述。
首先,在步骤101,对电路节点按电路划分重新编号,建立新的子矩阵。
本发明实施例中,遵循内部节点在前,边界节点在后的规则对每个子电路的节点重新编号。
本发明实施例中,按照遍历每个子电路的内部节点,再遍历边界节点的顺序给所有节点重新编号。
每个子电路根据重新编号的节点相对顺序,利用所连接的节点建立新的子矩阵。
在步骤102,遍历所有器件,根据器件所属的子电路和端口在子电路中的节点编号,在对应的子矩阵中标记非零元位置。
优选地,对形成的子矩阵,采用稀疏矩阵的压缩存储方式。
优选地,将形成的子矩阵,按内部节点和边界节点,在矩阵内部做区分。
其中,可具体执行为:内部节点之间的矩阵元素位于子矩阵的左上角部分,内部节点与边界节点之间的矩阵元素位于子矩阵的左下角和右上角部分,边界节点之间的矩阵元素位于子矩阵右下角。
本实施例中,形成的子矩阵在做矩阵分解和回代求解等计算时,是相互独立的。它们的联系只体现在对顶层矩阵的计算过程中。
本实施例中,矩阵排列时内部节点先编号,排在前面,边界节点编号排在后面,形成2行2列的分块矩阵。分块矩阵中的[1,1]为内部节点之间的元素,用A表示。[1,2]和[2,1]为内部节点和边界节点之间的元素,用B、C表示,[2,2]为边界节点之间的元素,用D表示。
在步骤103,计算每一个子矩阵的舒尔补矩阵并进行合并,生成顶层矩阵。
本发明实施例中,用边界节点个数作为顶层矩阵维数,非零元位置由各个子矩阵算出的舒尔补矩阵做合并得到。
本发明实施例中,先对每个子矩阵求舒尔补矩阵,即D-CA-1B;再将每个子矩阵的舒尔补矩阵按边界节点的对应关系合并,得到顶层的矩阵结构。
本发明实施例中,通过合并子矩阵的舒尔补矩阵形成的顶层矩阵,能够存储所有边界节点间的原始元素,还能够存储所有的子矩阵在做LU分解,完成内部节点之间,内部节点和边界节点之间的元素计算后,对边界节点之间的填充。这相当于整个矩阵LU分解的中间结果。对顶层矩阵继续进行LU分解,即完成了整个电路矩阵的LU分解。
在另一个实施例中,电路和方程系数矩阵的划分不仅限于子矩阵和顶层矩阵两层,单个子电路和对应的矩阵可以继续做划分,从而形成多层的结构。
在另一个实施例中,对于给定电路,仅需要做一次形成矩阵结构的流程,后续的方程计算一般只会修改矩阵中的元素值。
实施例2
下面结合一具体实施例对本发明的电路仿真中的分块矩阵存储方法做进一步的说明。
图2为根据本发明的一个实施例电路图,使用本发明的分块矩阵存储方法,对图2中的电路实施计算,具体可执行为:
假设节点2,节点4为边界节点;节点1,V1,G1,G2,C2属于第1个子电路,节点3,C1,I1属于第2个子电路。
在步骤1,对电路节点按电路划分重新编号,遵循内部节点在前,边界节点在后的规则。每个子电路根据此顺序对所连接的节点进行编号,得到图3中的编号表。
在步骤2,遍历所有器件,每个器件向自己所属的矩阵添加系数。得到图4,图5中的2个子矩阵。作为对比,图6给出了原始方程系数矩阵按照遍历每个子电路的内部节点,再遍历边界节点的顺序给节点编号后,产生的带状加边结构,子块用灰色填充。可以看出子矩阵是原始矩阵按子电路节点的拆分结果。实际操作中并不需要生成图6的原始矩阵。图4,5,6中元素的表达式仅用于标明非零元的器件贡献来源,不代表具体的数值计算方法。
在步骤3,对每个子矩阵算出舒尔补矩阵,合并后得到顶层矩阵。
本发明提出了一种对划分后的电路形成电路方程系数的分块矩阵的方法,经过对电路进行划分,能够把电路节点区分成子电路的内部节点,和多个子电路共有的节点,称为子电路的边界节点。在对电路进行划分后,子电路内部节点和其它子电路的内部节点之间没有器件直接连接,不会在方程中产生系数。如果能够按照遍历每个子电路的内部节点,再遍历边界节点的顺序给所有节点编号,重新排列A矩阵,将形成带状加边(BBD)的矩阵结构。其中内部节点之间的元素形成对角线上的带状矩阵块,连接到边界节点的元素形成下方和右边2个矩阵块。本发明利用对电路节点划分的结果,把整个方程系数矩阵排序后的带状加边的结构拆分成多个子矩阵,并且合并子矩阵的舒尔补矩阵形成了一个顶层矩阵,实现基于划分的分块矩阵存储,进而实现各个子矩阵块相互独立计算,以达到并行计算,提高计算效率的效果。
本发明的一个实施例中,还提供一种电子设备,包括存储器和处理器,所述存储器上储存有在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行如上文所述的电路仿真中的分块矩阵存储方法的步骤。
本发明的一个实施例中,还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序运行时执行如上文所述的电路仿真中的分块矩阵存储方法的步骤。
本领域普通技术人员可以理解:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.一种电路仿真中的分块矩阵存储方法,其特征在于,包括以下步骤:
将每个子电路的节点重新编号和排序,建立节点的子矩阵;
所述将每个子电路的节点重新编号和排序,建立节点的子矩阵的步骤,还包括,按照遍历每个子电路的内部节点,再遍历边界节点的顺序给所有节点重新编号,得到的节点编号的顺序是子电路的内部节点在前,所有的边界节点在后,并且单个子电路的内部节点编号连续;
所述将每个子电路的节点重新编号和排序,建立节点的子矩阵的步骤,还包括,每个子电路按重新编号的节点相对顺序,利用所连接的节点建立新的子矩阵;
根据器件所属的子电路和端口在子电路中的节点编号,在对应的子矩阵中标记非零元位置;
还包括,对于单个子电路产生的子矩阵,
内部节点之间的矩阵元素位于子矩阵的左上角部分;
内部节点与边界节点之间的矩阵元素位于子矩阵的左下角和右上角部分;
边界节点之间的矩阵元素位于子矩阵右下角部分;
计算出每一个子矩阵的舒尔补矩阵并进行合并,生成顶层矩阵;
所述计算出每一个子矩阵的舒尔补矩阵并进行合并,生成顶层矩阵的步骤,还包括,
对每个子矩阵求舒尔补矩阵;
将每个子矩阵的舒尔补矩阵按边界节点的对应关系合并,得到顶层矩阵。
2.根据权利要求1所述的电路仿真中的分块矩阵存储方法,其特征在于,还包括,对形成的所述子矩阵和顶层矩阵,采用稀疏矩阵的压缩存储方式。
3.一种电子设备,其特征在于,包括存储器和处理器,所述存储器上储存有在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行权利要求1至2任一项所述的电路仿真中的分块矩阵存储方法的步骤。
4.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序运行时执行权利要求1至2任一项所述的电路仿真中的分块矩阵存储方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110824558.1A CN113486616B (zh) | 2021-07-21 | 2021-07-21 | 一种电路仿真中的分块矩阵存储方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110824558.1A CN113486616B (zh) | 2021-07-21 | 2021-07-21 | 一种电路仿真中的分块矩阵存储方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113486616A CN113486616A (zh) | 2021-10-08 |
CN113486616B true CN113486616B (zh) | 2022-05-24 |
Family
ID=77942679
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110824558.1A Active CN113486616B (zh) | 2021-07-21 | 2021-07-21 | 一种电路仿真中的分块矩阵存储方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113486616B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114925641B (zh) * | 2022-04-21 | 2024-07-26 | 深圳市比昂芯科技有限公司 | 一种基于谐波平衡的电路仿真方法、装置及存储介质 |
CN114580345B (zh) * | 2022-04-29 | 2022-07-05 | 深圳鸿芯微纳技术有限公司 | 电路仿真方法、装置、计算机设备及计算机可读存储介质 |
CN117077607B (zh) * | 2023-07-26 | 2024-06-18 | 南方科技大学 | 大规模线性电路仿真方法、系统、电路仿真器及存储介质 |
CN117252145B (zh) * | 2023-11-15 | 2024-02-09 | 湘潭大学 | 用于芯片仿真中大规模结构线性方程组的并行求解方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8245165B1 (en) * | 2008-04-11 | 2012-08-14 | Cadence Design Systems, Inc. | Methods and apparatus for waveform based variational static timing analysis |
CN107368451A (zh) * | 2017-06-14 | 2017-11-21 | 清华大学 | 电路状态空间方程计算方法、装置和系统 |
CN110704023A (zh) * | 2019-09-26 | 2020-01-17 | 北京华大九天软件有限公司 | 一种基于拓扑排序的矩阵分块划分方法及装置 |
CN110737870A (zh) * | 2019-09-26 | 2020-01-31 | 北京华大九天软件有限公司 | 一种用于在gpu上合并舒尔矩阵的方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112989755B (zh) * | 2021-04-20 | 2021-08-10 | 北京华大九天科技股份有限公司 | 一种集成电路分析中进行整体回代求解和收敛性判定方法 |
-
2021
- 2021-07-21 CN CN202110824558.1A patent/CN113486616B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8245165B1 (en) * | 2008-04-11 | 2012-08-14 | Cadence Design Systems, Inc. | Methods and apparatus for waveform based variational static timing analysis |
CN107368451A (zh) * | 2017-06-14 | 2017-11-21 | 清华大学 | 电路状态空间方程计算方法、装置和系统 |
CN110704023A (zh) * | 2019-09-26 | 2020-01-17 | 北京华大九天软件有限公司 | 一种基于拓扑排序的矩阵分块划分方法及装置 |
CN110737870A (zh) * | 2019-09-26 | 2020-01-31 | 北京华大九天软件有限公司 | 一种用于在gpu上合并舒尔矩阵的方法及装置 |
Non-Patent Citations (2)
Title |
---|
A Hybrid Approach for Parallel Transistor-Level Full-Chip Circuit Simulation;Heidi K. Thornquist 等;《International Conference on High Performance Computing for Computational Science》;20150418;第102-111页 * |
一种面向微电网实时仿真的分块分层并行算法;王潇 等;《电工技术学报》;20170410;第32卷(第7期);第104-111页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113486616A (zh) | 2021-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113486616B (zh) | 一种电路仿真中的分块矩阵存储方法 | |
US11423285B2 (en) | Buffer addressing for a convolutional neural network | |
US20210406647A1 (en) | Method and apparatus for reducing computational complexity of convolutional neural networks | |
US11461632B2 (en) | Method and apparatus for adapting parameters of neural network | |
US9600763B1 (en) | Information processing method, information processing device, and non-transitory recording medium for storing program | |
CN113255259B (zh) | 一种基于大规模集成电路划分的并行求解方法 | |
TWI740274B (zh) | 用於在使用加法器之多維張量中存取資料之系統、電腦實施方法及設備 | |
JP2024052988A5 (zh) | ||
CN110399591B (zh) | 基于卷积神经网络的数据处理方法和装置 | |
CN112633470B (zh) | 优化神经网络卷积残差结构的方法、系统、设备及介质 | |
US20080126467A1 (en) | Technique for transposing nonsymmetric sparse matrices | |
WO2024007652A1 (zh) | 一种大型稀疏矩阵加速求解方法、系统及存储介质 | |
CN115017773A (zh) | 一种三维网格模型的降维方法、电子设备和介质 | |
CN114207582A (zh) | 具有存储器组织器单元的三维卷积流水线 | |
CN116348882A (zh) | 一种卷积神经网络数据处理方法及其相关设备 | |
JPWO2008026261A1 (ja) | 有限要素法と境界要素法による結合方程式の高速演算処理方法 | |
US6925620B2 (en) | Calculating interconnect swizzling patterns for capacitive and inductive noise cancellation | |
CN112732630A (zh) | 针对深度学习的浮点矩阵乘算子众核并行优化方法 | |
CN104572588B (zh) | 矩阵求逆处理方法和装置 | |
CN115859011B (zh) | 矩阵运算方法、装置及单元、电子设备 | |
US20190392100A1 (en) | Storage medium which stores instructions for a simulation method in a semiconductor design process, semiconductor design system that performs the simulation method in the semiconductor design process, and simulation method in the semiconductor design process | |
CN111047025A (zh) | 一种卷积计算方法及装置 | |
KR102277644B1 (ko) | 가속 회로에 적합한 합성곱 신경망의 Conv-XP 프루닝 장치 | |
CN113326671A (zh) | 一种对电路中线性电阻计算电路方程节点电流的方法 | |
GB2585810A (en) | Buffer addressing for a convolutional neural network |
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 |