一种提升电路仿真速度的方法

文档序号:49484 发布日期:2021-09-28 浏览:33次 >En<

阅读说明:本技术 一种提升电路仿真速度的方法 (Method for improving circuit simulation speed ) 是由 周振亚 吴大可 程明厚 阳杰 刘强 于 2021-07-22 设计创作,主要内容包括:一种提升电路仿真速度的方法,包括以下步骤:遍历电路网表,对电路进行超图分割,生成多个子电路以及顶层电路;对所述子电路和顶层电路调用并行弧长算法,加速支流分析的过程。本发明的提升电路仿真速度的方法,能够在合理的仿真时间内解决整个大规模非线性代数系统而不失去精度,以更大的容量和完全的精确性解决直流分析问题。(A method for improving the simulation speed of a circuit comprises the following steps: traversing the circuit netlist, carrying out hypergraph segmentation on the circuit, and generating a plurality of sub-circuits and a top-level circuit; and calling a parallel arc length algorithm for the sub-circuit and the top-level circuit to accelerate the process of branch analysis. The method for improving the circuit simulation speed can solve the problem of direct current analysis with larger capacity and complete accuracy without losing the accuracy of the whole large-scale nonlinear algebraic system in reasonable simulation time.)

一种提升电路仿真速度的方法

技术领域

本发明涉及集成电路仿真

技术领域

,特别是涉及集成电路仿真中的直流分析方法。

背景技术

类SPICE电路仿真器是目前应用最广泛的计算机辅助电路设计工具其提供了多种分析类型,从不同的角度评估设计人员的电路,其中直流(DC)分析是最基本且最重要的任务之一,因为求解电路的直流工作点是先于任何其他模拟任务之前的一项必要工作,为暂态分析提供了初始解决方案,并确定了交流分析中所有非线性器件的线性化、小信号模型。

现有的直流分析,包括,步进方法(gmin,source…)和类似ptran的方法(ptran,dptran,ptranplus,dptranplus…),其中,步进法存在不连续问题,而类ptran方法存在奇怪的振荡现象(不是真正的振荡,而是从两种或两种以上的状态跳跃)。如果一个电路同时存在以上两个问题,通常无法解决这种现象。

而随着超大规模集成电路(VLSI)技术的飞速发展,电路特征尺寸大大缩小,特别是在版图提取后,器件的数量容易达到数百万个。这使得类SPICE的电路仿真器在计算直流工作点时开销巨大。保持SPICE仿真精度的并行直流分析正成为处理大型电路的电路仿真器的关键部分。

在超大规模集成电路的器件级仿真中,直流分析是最基础也是最重要的一部分。随着集成电路的复杂性不断增加,在合理的仿真时间内解决整个大规模非线性代数系统而不失去精度,正变得越来越具有挑战性。本发明提出提升电路仿真速度的方法,基于BBD(Bordered Block Diagonal,带边框块对角线)形式分区的快速并行弧长(arclength)算法,称为PALBBD,以更大的容量和完全的精确性解决直流分析问题,采用新的带校正器的跳过策略,以进一步加快直流分析的速度。

发明内容

为了解决现有技术存在的不足,本发明的目的在于提供一种提升电路仿真速度的方法,基于BBD(Bordered Block Diagonal,对角块加边)矩阵结构的并行弧长(arclength)算法,能够在合理的仿真时间内解决整个大规模非线性代数系统而不失去精度,以更大的容量和完全的精确性解决直流分析问题。

为实现上述目的,本发明提供的一种提升电路仿真速度的方法,包括以下步骤:

遍历电路网表,对电路进行超图分割,生成多个子电路和顶层电路;

调用并行弧长算法,对所述子电路和顶层电路进行并行直流分析。

进一步地,所述遍历电路网表,对电路进行超图分割,生成多个子电路和顶层电路的步骤,还包括,

对划分的每个子电路中的独立电压和电流源进行分组并标记;

根据划分的子电路的规模由大到小,对所述独立电压和电流源的分组进行排序;

根据排序后的分组,依次对所述独立电压和所述电流源进行加速。

进一步地,所述调用并行弧长算法,对所述子电路进行并行直流分析的步骤,还包括,

根据电路模型和电路拓扑,采用MNA,形成每一个子电路的雅可比矩阵和右端项,对每一个子电路进行矩阵分解并计算舒尔补;

累加所有舒尔补,形成顶层分区的雅可比矩阵和右端项。

进一步地,还包括,

求解顶层矩阵,获得外部节点的解,并将其发送回每个子电路,获得内部节点解;

根据所有外部和内部节点的解,计算每个子电路的真实外部解和内部解,当子电路收敛,外部节点稳定时,停止更新和计算该分区,跳过分区的NR迭代,继续迭代不稳定分区,直至全部收敛。

为实现上述目的,本发明还提供一种电子设备,包括存储器和处理器,所述存储器上储存有在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行如上文所述的提升电路仿真速度的方法的步骤。

为实现上述目的,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序运行时执行如上文所述的提升电路仿真速度的方法的步骤。

本发明的提升电路仿真速度的方法,具有以下有益效果:

1)容易实现:所提出的算法很容易在现有的类SPICE仿真器上实现,在不改变数据结构的情况下,容易整合到任何类型的仿真器中,因为雅可比矩阵的维度不需要扩大;

2)易用高效:为了提升仿真效率,利用超图分割将原有电路划分为多个子电路,对各子电路并行求解,即合并一个子电路的几个子任务以减少同步次数,同时可以跳过稳定子电路及部分不稳定子电路的模型评估过程;

3)收敛性良好:在解决无法收敛的问题上,弧长法追踪解曲线相比于其他延拓法具有更加显著的效果;

4)确保收敛精度:所提出的算法在加速的同时可以做到非常微小的精度丢失。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,并与本发明的实施例一起,用于解释本发明,并不构成对本发明的限制。在附图中:

图1为根据本发明的提升电路仿真速度的方法流程图;

图2为根据本发明的电路划分及跳过策略示意图;

图3为根据本发明的并行算法及跳过策略原理示意图。

具体实施方式

以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。

实施例1

图1为根据本发明的提升电路仿真速度的方法流程图,下面将参考图1,对本发明的提升电路仿真速度的方法进行详细描述。

首先,在步骤101,遍历网表中的所有元器件,对电路进行超图分割,将电路划分为多个子电路和顶层电路。

本发明实施例中,超图分割,是指依赖耦合节点尽可能少的设定,对大电路进行划分,划分出多个子电路以及顶层电路(也可以是嵌套的,这里只以两层划分为例),顶层电路就是各个子电路的连接关系。

在步骤102,对每个子电路的独立电压源和独立电流源分别进行ramp-up。

本发明实施例中,对于每个子电路的独立电压、电流源分别进行分组并标记;根据子电路的规模由大到小,分别对电压源分组和电流源分组进行排序;根据排序后的电压源分组和电流源分组,分别依次对独立电压、电流源进行ramp-up(从0到原始值的提升),可以使迭代过程从简单的求解逐渐过渡到原始电路的求解。

在步骤103,采用并行弧长算法,对子电路进行并行直流分析。

本发明实施例中,采用非线性直流分析的并行弧长算法,具体可执行为:

1)将求解纯阻抗电路的非线性方程:

F(x)=0,x∈Rm,F(x)∈Rm→Rm

转变为:

H(x,λ)=λF(x)+(1-λ)G·x=0

这里λ是插入的同伦参数,为一维未知变量,G表示一个具有常数项1e-3的关联矩阵,λ和X均为弧长s的函数,其中s满足:

其中,i是未知量的编号,对应i节点的电压或电流;m是未知量的个数。

2)进行predictor(预测器)求解。

本发明实施例中,predictor(预测器)求解可具体执行为:使用前一点和当前点的数据来计算预测步骤的方向V。

然后将V_λ和V_x与步长h相乘,再将其与x和λ相加,得到预测解x^k和λ^k。

本发明实施例中,如果预测解不够好,不会重新计算V_λ和V_x,而是减小步长h,重新进行预测。

3)进行corrector(校正器)求解。

本发明实施例中,corrector(校正器)求解可具体执行为:求解方程组:

此时,不需要改变J(x)和F(x)的结构,而是通过NR迭代进行求解:

其中,δλ为λ的变化量,δx为x的变化量

下面结合一具体实施例对本发明的提升电路仿真速度的方法做进一步的说明。

图2为根据本发明的电路划分及跳过策略示意图,如图2(a)所示,B1,B2,…,Bk-1为划分的k-1个子电路矩阵,TOP为顶层矩阵;C1,…,Ck-1及D1,…,Dk-1为连接节点的矩阵。如图2(b)所示,当子电路收敛,外部节点稳定时,这些子电路则不再需要更新和计算,可以绕过这些电路的NR迭代,其余不稳定电路将继续迭代,直到全部收敛。

图3为根据本发明的并行算法及跳过策略原理示意图,下面参考图3,对本发明的并行加速原理进行详细阐述。

本发明的一个实施例中,首先,对每个子电路进行模型评估,根据电路模型和电路拓扑,采用MNA(Modified Nodal Analysis,改进节点分析法),形成每一个子电路的雅可比矩阵和右端项(RHS),对每一个子电路进行LU矩阵分解并计算舒尔补(Schur Compliment)。三个任务被合并为每个子电路的一个任务,并且可以与负载平衡并行完成。这里使用相同的颜色来表示相同处理器上的任务。在此之后,将所有Schur补相加,形成顶层矩阵的矩阵和RHS。求解顶矩阵,以获得外部节点的解,并将其发送回每个子电路,以获得内部节点解。在这里,所有的解都表示以下线性方程的解,而不是同伦函数的解。

有了所有的外部和内部解,δλ便可以计算得出。然后,由步骤3)中δλ和δx公式可以并行地得到每个子电路的真实外部解和内部解。执行循环,从第二次NR迭代起,并行检查每个子电路的跳过条件。如果δλ足够小,并且任何一子电路收敛,例如图3中的B2和B4电路收敛,并且这两个收敛子电路的顶层矩阵的外部解也足够小,那么这两个子电路可以被认为是稳定的,并且可以在下一次迭代时直接跳过。在这里,与传统的模型评估和LU分解的跳过策略不同,

在另一个实施例中,本发明还利用了一种关于替代每个子电路的内部解的额外跳过策略。对于被跳过的子电路,应使用一个校正器来形成顶部矩阵的RHS,以保持精度,因为电流受到外部节点电压的影响。经过证明,使用校正器,精度不会有所损失。

本发明提出了一种新的并行弧长算法,用于直流分析。因为arclength与其他延续方法相比,具有很强的解决不收敛问题的能力。我们利用超图划分得到BBD形式的矩阵结构以实现并行。在本文中,除了现有的跳过策略,我们为每个分区提出了更加高效的跳过策略,以在没有任何精度损失的情况下尽量减少计算量。我们合并了一个子电路的子任务,以减少同步次数,并提出了一种新的跳过策略,并为顶层的电压会或电流更新提供了一个校正器,以确保仿真的精确性。我们的方法不同于其他传统的跳过策略,这种方法可以替换掉稳定的子电路,甚至跳过部分不稳定子电路的模型评估过程。

本发明的一个实施例中,还提供一种电子设备,包括存储器和处理器,所述存储器上储存有在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行如上文所述的提升电路仿真速度的方法的步骤。

本发明的一个实施例中,还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序运行时执行如上文所述的提升电路仿真速度的方法的步骤。

本领域普通技术人员可以理解:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

9页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:数模混合仿真中解决无归属域线型模数冲突的方法及装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类