一种提高集成电路模拟器运行速度的方法

文档序号:6612881阅读:323来源:国知局

专利名称::一种提高集成电路模拟器运行速度的方法
技术领域
:本发明属于集成电路模拟
技术领域

背景技术
:从电视机、手机、电脑到航天飞机、卫星,集成电路技术对人们生活及科学进步的作用令人瞩目。几十年来,集成电路单块芯片上集成的晶体管数目成指数规律上升。集成电路复杂度的增加使得集成电路的设计必须依靠EDA技术,集成电路模拟技术正是EDA中的关键技术之一。随着集成电路从中、小规模到大规模、超大规模、甚大规模乃至片上系统芯片的发展,电路模拟技术也经历了多个发展阶段。电路模拟技术的每一次飞跃都得益于应用更先进的数学方法和计算机软件技术来满足越来越复杂集成电路的规模和速度需求。集成电路模拟技术通过建立电路模型,采用数值分析技术和计算机软件工程技术开发电路模拟工具。借助集成电路模拟工具可以在集成电路生产之前对电路行为进行仿真、功能进行验证。电路模拟器的主要功能是在计算机上求解各种电路的数学模型(微分代数方程组),从而得到电路当中各个位置的电压、电流等未知量。这样,求解非线性方程组就成为一个不可避免而且十分重要的问题,这类问题来源于电路当中的非线性器件,诸如二极管、三极管等等,正确的求解这些非线性方程是电路模拟器能否正常、稳定工作的关键。迭代方法是使用最为广泛的方法,直到现在,这方面的理论研究和实际应用仍然非常活跃,这里面涉及到初始值和收敛域、收敛速度等诸多问题。Newton-R叩hson方法及其各种变型是求解非线性方程组的经典方法,它也是一种迭代方法。其优点在于收敛速度快,数值稳定性好,但是这类方法通常对迭代初始值的选取比较敏感,不具有大范围收敛性,这些问题可以通过选择阻尼因子,利用同伦算法改进初始值等方法在一定程度上得到解决。参考资料,使得lF(Xt+A《)l达到最小,令x^=x4+c^《,这个迭代过程称为下降Newton方法,c^称为第A:步迭代的阻尼因子。(4)限制指数因子电路模拟中经常遇到未知量的指数函数,在计算残差时很容易产生溢出错误,因此需要选取合适的因子^限制未知量的增长,5称为限制指数因子,如果新的点^+似4的某些分量是指数函数的自变量,5应该保证这些分量的函数值不会发生溢出错误。
发明内容本发明提出一种提高集成电路模拟器运行速度的方法,涉及一种新的搜索阻尼因子的方法。阻尼因子能够改善Newton-Raphson方法的收敛性,因为它能确保每步迭代的残差都会变小,选取阻尼因子相当于求解下面的一维搜索问题+=+《)|,精确的求解这个问题并不容易,通常用下面的近似方法求解(参见文献[2]):(1)取《=1。(2)计算=&+c4(3)如果||尸(^+1)||>|尸^)|,a=a/2,转(2);否则,w=a,停止。一旦某一个a使得残差变小,搜索马上停止。实际上,这样的搜索过于粗略,残差下降的幅度有限,甚至很有可能保持不变,这种情况在电路模拟当中经常发生。另一方面,由于电路模型的特殊性,方程中经常出现指数函数,这就需要在求解线性方程组得到《后首先进行限制指数因子^的搜索,通常这个因子是小于1的,它只是确保新的点在计算指数函数时不会产生溢出错误,但是并不能保证残差变小。这样从a=5出发再进行一维搜索,如果S<1,那么这样的搜索很可能漏掉一些使得残差变小的点,因此有必要在更大的范围内进行一维搜索。此外,考虑到效率也是电路模拟当中的一个重要因素,因此还需要考虑一次搜索的计算量。每次搜索都需要重复计算由不同a得到的残差,在电路模拟器中,这相当于更新所有的未知量并且重新提供方程,因此每步都进行一维搜索的方法并不可取,尤其是对于收敛性较好的方程,一维搜索得到的新残差不一定比再进行一次迭代得到的新残差小,而它们都需要更新变量和提供方程。综合以上,本发明提出针对电路方程的带阻尼因子的Newton-Raphson方法,如图1所示,具体歩骤如下(1)计算当前非线性方程组的残差,并通过残差的变化判断Newton迭代是否收敛以及是否搜索阻尼因子;(2)搜索阻尼因子,把Newton方向上的步长一次减半,直到残差不再减小为止,如果残差不减小,则增大步长,计算残差,得到阻尼因子;(3)所有变量沿着Newton方向改进阻尼因子对应的步长得到新的值,以此建立线性方程组,求解新的Newton方向;(4)搜索新的Newton方向对应的限制指数因子,回到(1)计算残差。图l本发明提出的搜索阻尼因子的流程图2本发明提出的搜索阻尼因子的具体方法步骤图3RTLINV电路图4ECLGATE电路图5RCA3040电路具体实施步骤采用修正节点分析方法(ModifiedNodalAnalysis)建立电路方程。首先需要从源文件确定电路连接拓扑关系并保存这些信息,在每次迭代提供方程时,提取在A点电路中每个器件的参数和输入输出变量的关系,从而算出当前的函数值F(xJ和它的残差,根据残差判断迭代是否收敛,同时记录下出现在指数函数当中的变量,以便在搜索限制指数因子的时候确定新的点会不会产生溢出错误。如果没有达到收敛条件,先根据步骤(3)判断是否需要搜索阻尼因子,在判断和搜索结束后,对电路中的每个节点,通过连接关系和电流守恒(KCL)建立守恒方程,同时可以利用有限差分方法近似的计算FO)对各个变量的偏导数,建立BCR(BranchConstitutiveRelation)方程,得到Jacobi矩阵F'(xJ。由于这是一个稀疏矩阵,因此在计算时用十字链表存储。为了确保数值稳定性,使用LU分解的方法来求解线性方程组尸'(&)《=-F(xJ。在计算限制指数因子5时,从《中寻找所记录的出现在指数函数的变量,如果其中某些变量的变化超过了一定的限度,导致计算指数时产生溢出错误,那么通过减小5使得这些变量的变化也减小,函数值不至于在14+1=^+&^点产生溢出,保证迭代能够正常进行。以上过程的具体步骤如下-(1)选取初始值x。ei",残差改进量L残差改进下界r0,迭代前残差^=00,搜索前残差。=00,迭代后残差r,阻尼因子《=1,限制指数因子5=1,搜索次数M1;M2,/=0,A=0;(2)如果&满足收敛条件,停止;否则r叫lF(X』,^=二-1;(3)如果P&,令/=0,a=5/2,转(4);否则,转(10);(4)计算x^:Xw+arfw,n=r,r叫lF(x"卜(5)如果r<n且/<M,,a=a/2,_/=7+1,转(4);否则,转(6);(6)如果y=0,令《=2《,转(7);否则,a=2a,转(9);(7)计算&=!+,n=r,r=|F(x4)|;(8)如果r<n且7'<M2,a=2a,_/=/+l,转(7);否贝lj,a=a/2,转(9);(9)计算x4=xM+a《一,r=l尸(x』;(10)令"=门(11)求解线性方程组F(JCJ《--F(XJ;(12)搜索限制指数因子5,令x^=xA+<5^,A=A+1,转(2)。通过上述新的搜索阻尼因子的方法提高了求解电路当中的非线性方程组的收敛性和求解速度。用RTLINV电路(图3),ECLGATE电路(图4),RCA3040电路(图5)作为例子,验证给出方法的有效性,其结果见表l。表l三个测试电路的结果比较<table>tableseeoriginaldocumentpage7</column></row><table>从表可以看出,新的阻尼因子搜索方法有效的节约了运行时间,改进了Newton-Raphson方法的收敛性,从而提高了电路模拟器的运行速度。权利要求1、一种提高集成电路模拟器运行速度的方法,其特征是通过设定搜索阻尼因子的条件和扩大搜索阻尼因子的范围,使得Newton迭代收敛性得到改善,从而提高求解非线性方程组的速度。2、根据权利要求1所述的一种提高集成电路模拟器运行速度的方法,其特征在于该方法使用了如下步骤-(1)计算当前非线性方程组的残差,并通过残差的变化判断Newton迭代是否收敛以及是否搜索阻尼因子;(2)搜索阻尼因子,把Newton方向上的步长一次减半,直到残差不再减小为止,如果残差不减小,则增大步长,计算残差,得到阻尼因子;(3)所有变量沿着Newton方向改进阻尼因子对应的步长得到新的值,以此建立线性方程组,求解新的Newton方向;(4)搜索新的Newton方向对应的限制指数因子,回到(1)计算残差。全文摘要在电路模拟中,经常会遇到求解非线性方程组的问题,经典的Newton-Raphson方法及其各种变型是解决这类问题的有效途径,下降Newton方法就是其中之一。本发明是一种提高集成电路模拟器运行速度的方法,目的在于提高下降Newton方法的收敛性和求解电路方程的效率,其基本思想是针对下降Newton方法提出新的搜索阻尼因子的方法,通过迭代过程中残差的变化设定搜索条件和扩大搜索范围,可以加快电路模拟器求解电路方程的速度,满足超大和甚大规模集成电路模拟的要求。文档编号G06F17/50GK101414314SQ20071016365公开日2009年4月22日申请日期2007年10月17日优先权日2007年10月17日发明者强刘,周振亚申请人:北京中电华大电子设计有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1