一种提高电路仿真运行速度的方法.pdf

上传人:v**** 文档编号:5740338 上传时间:2019-03-15 格式:PDF 页数:8 大小:288.21KB
返回 下载 相关 举报
摘要
申请专利号:

CN200810241097.X

申请日:

2008.12.30

公开号:

CN101770531A

公开日:

2010.07.07

当前法律状态:

驳回

有效性:

无权

法律详情:

发明专利申请公布后的驳回IPC(主分类):G06F 17/50公开日:20100707|||实质审查的生效IPC(主分类):G06F 17/50申请日:20081230|||公开

IPC分类号:

G06F17/50

主分类号:

G06F17/50

申请人:

北京华大九天软件有限公司

发明人:

刘强

地址:

100102 北京市朝阳区利泽中二路2号A座2层

优先权:

专利代理机构:

代理人:

PDF下载: PDF下载
内容摘要

本发明属于集成电路计算机辅助设计的领域。牛顿迭代是所有电路仿真器求解非线性方程组所采用的基本方法,出于效率上的考虑,牛顿迭代的多种变型在实际当中得到了广泛的应用,诸如修正牛顿迭代、阻尼牛顿迭代等等,提高牛顿迭代的效率也是仿真器加速的关键因素之一。本发明针对牛顿迭代过程当中计算牛顿方向的步骤,提出了一种新的确定LU分解次数间隔的方法,提高了计算牛顿方向的速度,能够优化计算牛顿方向和牛顿迭代的效率。

权利要求书

1: 一种提高电路仿真运行速度的方法,其特征是通过电路仿真器确定修正牛顿迭代的LU分解间隔次数,通过动态控制牛顿迭代过程中LU分解的次数优化牛顿迭代的效率,从而达到提高电路仿真运行速度的目的。
2: 根据权利要求1所述的一种提高电路仿真运行速度的方法,其特征在于每间隔一定次数重新计算电路矩阵,进行LU分解,而间隔次数是动态控制的,其中确定间隔次数的步骤如下: (1)取初始值x 0 ,间隔次数M=1,迭代次数k=0; (2)计算函数值F(x k )和F’(x k ),保存所花费的时间t f ; (3)如果满足收敛条件,停止,否则执行(4); (4)如果M整除k,执行(5),否则执行(7); (5)求解F’(x k )d k =-F(x k ),保存所花费的时间t s ; (6)计算使得 最大的M,执行(8); (7)利用已有的LU分解计算d k ; (8)x k+1 =x k +d k ,k=k+1,执行(2)。

说明书


一种提高电路仿真运行速度的方法

    【技术领域】

    本发明属于集成电路计算机辅助设计领域。

    背景技术

    电路仿真器是电路设计前端的一个重要工具,它的主要功能是在物理设计之前对电路进行仿真,验证设计思路。其工作原理是在计算机上求解描述各种电路的方程,得到电路当中各个位置的电压、电流等未知量,在仿真的过程中,不可避免要求解非线性方程组。牛顿迭代是求解非线性方程组的常用方法,每一步迭代需要用LU分解的方法求解一个线性方程组,当方程规模很大时,LU分解的将会花费大量的时间,降低了求解的效率。因此,人们创造了很多牛顿迭代的变型,诸如修正牛顿迭代,下降牛顿迭代等等,这些方法有的减少了LU分解的次数,有的提高了牛顿迭代的收敛性,为求解非线性方程组提供了有效途径。

    【发明内容】

    本发明提出了一种能够优化LU分解间隔次数的牛顿迭代方法,并给出了其实际的施行方法。

    牛顿迭代是求解非线性方程组的有效方法,该方法按照下面两步进行循环迭代,直到xk满足收敛条件:

    (1)计算F(xk)和F’(xk),求解F’(xk)dk=-F(xk),

    (2)xk+1=xk+dk,k=k+1。

    可以看出,每一步牛顿迭代都要计算函数值F(xk)和F’(xk),然后求解F’(xk)dk=-F(xk),由于对F’(xk)进行LU分解方法的复杂度是多项式增长的,当电路规模变大时,会导致一步牛顿迭代花费很长时间。为了提高迭代效率,可以事先确定一个间隔次数M,在做完一次LU分解过后,以后的M步迭代中不再更新F’(xk),而使用已有的LU分解求解F’(xk)dk=-F(xk),这样会降低计算dk的精度,但是却减少了LU分解的次数,在间隔M步迭代以后,再更新F’(xk),重新做LU分解,这就是修正牛顿迭代方法。因为LU分解的次数少了,牛顿迭代的效率得到了提高,它按照如下步骤进行循环:

    F′(xk0)dkm=-F(xkm),]]>

    xkm+1=xkm+dkm,m=0,1,...,M]]>

    xk+10=xkM,k=0,1,...]]>

    修正牛顿迭代的一个重要目的在于提高求解速度,而求解速度提高的关键在于间隔次数M,表1是求解的时间和M的关系:

    表1求解时间随M的变化

        M    1    2    4    5    6    8    10    12    时间    162.52    103.97    87.12    88.27    66.35    66.62    64.18    65.22

    从表1可以看出,M在增加到一定程度后不但不会提高求解速度,而且求解速度可能降低。一般情况下,LU分解的间隔次数M是在修正牛顿迭代之前选定的,并且在选定过后不再随着牛顿迭代的进行而变化,这样做很难保证实现选定的M能够使得求解速度达到最优。

    由于固定间隔次数不能充分利用修正牛顿迭代的优点,因此可以考虑采用动态控制间隔次数的方法,使得所确定的间隔次数M能够尽量提高求解速度。另一方面,在对电路作时域瞬态分析时,随着时间的变化,电路方程可能会改变,这时候需要求解不同的非线性方程组,而能够优化不同方程的间隔次数M很可能是不一样的,因此在作瞬态分析的过程中,M还应该随着时间变化。

    对于一个间隔次数为M的修正牛顿迭代,其效率定义为

    e=ln(M+1)W,]]>

    其中W是完成一次牛顿迭代的工作时间,该时间主要花费在两个方面,一是计算当前迭代值xk所对应的函数值F(xk)的时间tf,二是求解F′(xk)dk=-F(xk)的时间ts,因此修正牛顿迭代的效率为

    e=ln(M+1)Mtf+ts,]]>

    在做完一次LU分解后,使得e最大的M将作为间隔次数进行修正牛顿迭代。

    由此,本发明提出确定修正牛顿迭代间隔次数的方法,如图1所示,该方法的步骤为:

    (1)取初始值x0,迭代间隔M=1,迭代次数k=0;

    (2)计算函数值F(xk)和F’(xk),保存所花费的时间tf;

    (3)如果满足收敛条件,停止,否则执行(4);

    (4)如果M整除k,执行(5),否则执行(7);

    (5)求解F’(xk)dk=-F(xk),保存所花费的时间ts;

    (6)计算使得最大的M,执行(8);

    (7)利用已有的LU分解计算dk;

    (8)xk+1=xk+dx,k=k+1,执行(2)。

    【附图说明】

    图1本发明提出的确定修正牛顿迭代间隔次数方法的流程图

    图2RTLINV电路

    图3ECLGATE电路

    图4RCA3040电路

    具体实施步骤

    从输入网表抽取电路关系,采用修正节点分析方法(Modified Nodal Analysis)建立电路方程,在每次迭代提供方程时,提取在xk点电路中每个器件的参数和输入输出变量的关系,从而算出当前的函数值F(xk)和它的残差,对电路中的每个节点,通过连接关系和电流守恒(KCL)建立守恒方程,并利用有限差分方法近似的计算F(xk)对各个变量的偏导数,建立BCR(Branch Constitutive Relation)方程,得到F’(xk),同时保存计算函数值F(xk)和F’(xk)的时间tf,根据残差判断迭代是否收敛。

    本发明采用直接方法以确保数值稳定性。如果当前迭代次数是迭代间隔次数地倍数,对矩阵进行LU分解,然后回代求解,并保存求解时间ts,然后需要计算新的最佳迭代间隔次数;否则直接利用已有的LU分解结果回代得到线性方程组的解,此时不用更新间隔次数。利用线性方程组的解更新位置变量得到下一个牛顿迭代点xk+1。

    如果当前迭代次数是间隔次数的倍数,在进行下一次迭代之前应该重新计算最佳迭代间隔次数。在实际计算当中,M的值不能太大,否则牛顿迭代的收敛性将变得很差,本发明在1~10的范围内寻找最佳的M,根据迭代效率的表达式算出使得e最大的M即可。

    用RTLINV电路(图2),ECLGATE电路(图3),RCA3040电路(图4)作为例子,验证给出方法的有效性,其结果见表2。

    表2三个测试电路的结果比较

    从表2可以看出,新的迭代方法大幅度减少了求解非线性方程过程中LU分解的次数,能够提高电路仿真器的运行速度。

一种提高电路仿真运行速度的方法.pdf_第1页
第1页 / 共8页
一种提高电路仿真运行速度的方法.pdf_第2页
第2页 / 共8页
一种提高电路仿真运行速度的方法.pdf_第3页
第3页 / 共8页
点击查看更多>>
资源描述

《一种提高电路仿真运行速度的方法.pdf》由会员分享,可在线阅读,更多相关《一种提高电路仿真运行速度的方法.pdf(8页珍藏版)》请在专利查询网上搜索。

本发明属于集成电路计算机辅助设计的领域。牛顿迭代是所有电路仿真器求解非线性方程组所采用的基本方法,出于效率上的考虑,牛顿迭代的多种变型在实际当中得到了广泛的应用,诸如修正牛顿迭代、阻尼牛顿迭代等等,提高牛顿迭代的效率也是仿真器加速的关键因素之一。本发明针对牛顿迭代过程当中计算牛顿方向的步骤,提出了一种新的确定LU分解次数间隔的方法,提高了计算牛顿方向的速度,能够优化计算牛顿方向和牛顿迭代的效率。。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1