CN101770532A - 一种提高电路仿真器收敛性的方法 - Google Patents
一种提高电路仿真器收敛性的方法 Download PDFInfo
- Publication number
- CN101770532A CN101770532A CN200810241099A CN200810241099A CN101770532A CN 101770532 A CN101770532 A CN 101770532A CN 200810241099 A CN200810241099 A CN 200810241099A CN 200810241099 A CN200810241099 A CN 200810241099A CN 101770532 A CN101770532 A CN 101770532A
- Authority
- CN
- China
- Prior art keywords
- convergence
- limexp
- damping factor
- newton iteration
- variable
- 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.)
- Pending
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明属于集成电路计算机辅助设计的领域。半导体器件,诸如二极管、MOS管等等,是进行晶体管级电路仿真的常用器件,几乎所有半导体的器件模型中的电流和电压都存在指数函数的关系。指数函数是一个增长速度很快的函数,在牛顿迭代的过程中经常出现函数值过大甚至溢出的情况,从而导致迭代过程很难收敛。在Verilog-A当中,可以使用limexp避免这种问题,本发明为限制指数函数增长,改善半导体器件仿真的收敛性提出了一种新的方法。
Description
技术领域
本发明属于集成电路计算机辅助设计领域。
背景技术
牛顿迭代是电路仿真工具的求解器所使用的的基本方法,它从未知变量的一组初始值出发,循环的执行以下步骤,,直到未知变量满足收敛条件:
(1)计算F(xk)和F’(xk),求解F’(xk)dk=-F(xk),
(2)xk+1=xk+dk,k=k+1。
晶体管级电路仿真所使用的几乎所有半导体器件,诸如二极管、MOS管等等,它们的模型当中都存在指数函数的关系,由于指数函数是一个增长很快的函数,如果它的参数在某一步牛顿迭代突然变大,那么函数值将会急剧增长,甚至出现溢出,这对于牛顿迭代的收敛性是没有好处的。Verilog-A标准中规定了limexp这条语法,其功能是计算某个变量的指数函数值,同时能够改善牛顿迭代的收敛性,这一功能通常是通过限制其参数的增长来实现的,这相当于使用阻尼牛顿迭代。所谓阻尼牛顿迭代,是指执行牛顿迭代的步骤(2)时,为牛顿方向dk乘以一个实数a,然后更新未知变量xk,即xk+1=xk+adk。
发明内容
本发明提出了一种新的实现limexp,提高牛顿迭代收敛性的方法,并给出了其具体实施方式。
在牛顿迭代过程中,limexp的参数可能突然变大,这将导致函数值过大甚至出现溢出错误,从而大幅度降低牛顿迭代的收敛性。为了减弱limexp对收敛性的影响,通常的方法是使用阻尼牛顿迭代,对limexp的参数作限制,不能让其在牛顿迭代过程中变得过大。在计算xk+1=xk+dk,也就是用牛顿方向dk更新未知变量的过程中,如果发现某个变量更新后的大小超过了一定的限度M,那么使用作为阻尼因子来限制这个变量的增长,这样得到的阻尼因子是一个实数。
使用一个实数作为阻尼因子相当于缩短了用牛顿方向改进未知变量的步长,所有的未知变量的改进都由于阻尼因子而变小了,因为改进的步长变小了,那么迭代到真解所需要的步数必然增加,也会延缓收敛速度。也就是说,这种做法对变量增长的限制过于苛刻,并不是所有的变量都只能用很小的阻尼因子作改进。实际上,对于不作为limexp参数的变量而言,它们不会引起函数值的突然增长或者溢出,也就不存在对收敛性的影响,因此是不需要阻尼因子的。而且在一个实际电路当中,作为limexp参数的变量毕竟是少数,所以很有必要对不同类型的变量选择不同的阻尼因子。
本发明提出的计算混合阻尼因子的方法就是对这种想法的实现。对那些不会导致函数值突然增长的变量,可以共同使用一个较大的阻尼因子,而对其它作为limexp参数的变量,根据变量的变化对limexp函数值增长的影响,分别为每个变量计算阻尼因子。这样每次在牛顿方向上改进变量时,如果变量与limexp无关,则使用公用的阻尼因子改进该变量,因为公用的阻尼因子比较大,所以这些变量的收敛性不会受到其它变量过小的阻尼因子的影响,能够正常的收敛;如果变量是limexp的参数,则使用该变量对应的单独的阻尼因子对变量作改进,这样能够保证结果在一个合理的范围,不会因为过大的残差影响迭代的收敛性。与实数阻尼因子不同,这种是一种混合阻尼因子。
附图说明
图1带有混合阻尼因子的牛顿迭代流程
图2搜索阻尼因子的流程
具体实施方式
采用修正节点分析方法(Modified Nodal Analysis)建立电路方程。在每次迭代提供方程时,提取在xk点电路中每个器件的方程,从而算出当前的函数值F(xk)和它的残差,根据残差判断迭代是否收敛,同时记录下所有作为limexp参数的变量编号。如果没有达到收敛条件,则计算F′(xk),求解F′(xk)dk=-F(xk),得到牛顿方向,为了确保数值稳定性,使用LU分解的方法来求解线性方程组。然后搜索混合阻尼因子,在牛顿方向上利用混合阻尼因子改进未知变量,进行下一步牛顿迭代。带混合阻尼因子的牛顿迭代的流程图如图1所示。
假设方程组一共有n个未知变量,用xkj表示第k步牛顿迭代时未知变量的第j个分量,这个过程中搜索混合阻尼因子的方法如下:
(1)j=0;
(2)判断xkj是否作为limexp的参数,如果是,执行(3),否则,执行(4);
(3)用普通牛顿迭代的方法更新变量,即计算xk+1,j=xkj+dkj,执行(6);
(4)计算a=log(|xkj|+1);
(5)如果dkj>a,那么xk+1,j=xkj+a,否则xk+1,j=xkj+dkj;
(6)j=j+1,如果j<n,执行(2),否则停止;
以上过程的流程图如图2所示。
Claims (3)
1.一种提高电路仿真器收敛性的方法,其特征在于对limexp的每个参数添加不同的阻尼因子,从而改善牛顿迭代的收敛性。
2.根据权利要求1所述的一种提高电路仿真器收敛性的方法,其特征在于利用混合阻尼因子完成阻尼牛顿迭代。
3.根据权利要求1或2所述的一种提高电路仿真器收敛性的方法,其特征在于所述搜索混合阻尼因子的步骤如下:
(1)j=0;
(2)判断xkj是否作为limexp的参数,如果是,执行(3),否则,执行(4);
(3)用普通牛顿迭代的方法更新变量,即计算xk+1,j=xkj+dkj,执行(6);
(4)计算a=log(|xkj|+1);
(5)如果dkj>a,那么xk+1,j=xkj+a,否则xk+1,j=xkj+dkj;
(6)j=j+1,如果j<n,执行(2),否则停止。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810241099A CN101770532A (zh) | 2008-12-30 | 2008-12-30 | 一种提高电路仿真器收敛性的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810241099A CN101770532A (zh) | 2008-12-30 | 2008-12-30 | 一种提高电路仿真器收敛性的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101770532A true CN101770532A (zh) | 2010-07-07 |
Family
ID=42503389
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810241099A Pending CN101770532A (zh) | 2008-12-30 | 2008-12-30 | 一种提高电路仿真器收敛性的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101770532A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112989755A (zh) * | 2021-04-20 | 2021-06-18 | 北京华大九天科技股份有限公司 | 一种集成电路分析中进行整体回代求解和收敛性判定方法 |
CN112989738A (zh) * | 2021-04-12 | 2021-06-18 | 北京华大九天科技股份有限公司 | 一种电路仿真中牛顿迭代的收敛判定的改进方法 |
CN113032718A (zh) * | 2021-03-29 | 2021-06-25 | 北京华大九天科技股份有限公司 | 解决电路仿真中牛顿迭代算法死循环的方法 |
CN113255268A (zh) * | 2021-05-21 | 2021-08-13 | 北京华大九天科技股份有限公司 | 一种电路仿真中瞬态分析不收敛的检测及修复方法 |
-
2008
- 2008-12-30 CN CN200810241099A patent/CN101770532A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113032718A (zh) * | 2021-03-29 | 2021-06-25 | 北京华大九天科技股份有限公司 | 解决电路仿真中牛顿迭代算法死循环的方法 |
CN112989738A (zh) * | 2021-04-12 | 2021-06-18 | 北京华大九天科技股份有限公司 | 一种电路仿真中牛顿迭代的收敛判定的改进方法 |
CN112989755A (zh) * | 2021-04-20 | 2021-06-18 | 北京华大九天科技股份有限公司 | 一种集成电路分析中进行整体回代求解和收敛性判定方法 |
CN112989755B (zh) * | 2021-04-20 | 2021-08-10 | 北京华大九天科技股份有限公司 | 一种集成电路分析中进行整体回代求解和收敛性判定方法 |
CN113255268A (zh) * | 2021-05-21 | 2021-08-13 | 北京华大九天科技股份有限公司 | 一种电路仿真中瞬态分析不收敛的检测及修复方法 |
CN113255268B (zh) * | 2021-05-21 | 2022-05-24 | 北京华大九天科技股份有限公司 | 一种电路仿真中瞬态分析不收敛的检测及修复方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101539958B (zh) | 一种标准单元库和集成电路的设计方法和装置 | |
CN100414552C (zh) | 估计电路时钟树的抖动并合成抖动意识和偏差意识时钟树 | |
CN102646103B (zh) | 检索词的聚类方法和装置 | |
CN106202835A (zh) | 包含沟道高级寄生元件的场效应晶体管小信号等效电路模型 | |
CN101770532A (zh) | 一种提高电路仿真器收敛性的方法 | |
CN102508977B (zh) | 用于模拟电路移植的电路优化方法和装置 | |
CN102314522A (zh) | 一种模拟集成电路设计优化方法 | |
CN102841953A (zh) | 一种基于宏设计集成电路版图的方法 | |
CN103150441A (zh) | 一种软硬件协同仿真的验证平台及其构建方法 | |
CN108073771B (zh) | Fpga静态时序分析方法 | |
CN104090999B (zh) | 一种sram中mos角模型的制作方法 | |
Torun et al. | A Bayesian framework for optimizing interconnects in high-speed channels | |
CN101770531A (zh) | 一种提高电路仿真运行速度的方法 | |
CN107357776A (zh) | 一种相关词挖掘方法及装置 | |
CN105373527A (zh) | 一种省略恢复方法及问答系统 | |
CN104750610B (zh) | 基于占优度的消息传递并行程序变异体约简方法 | |
CN102411663A (zh) | 面向电路微调加速电路仿真的计算复用方法、设备和系统 | |
Ządek et al. | Improving efficiency of FPGA-in-the-loop verification environment | |
CN104598662B (zh) | 电路设计的移植方法和系统 | |
CN109726466B (zh) | 一种基于机器学习训练模型的器件缓冲方法 | |
CN107292066A (zh) | 一种基于ads和hspice的加密混合模型si仿真方法 | |
CN111579961B (zh) | 确定芯片电性特征的方法、设备和计算机可读存储介质 | |
CN101414314A (zh) | 一种提高集成电路模拟器运行速度的方法 | |
CN108038312B (zh) | 集成电路半定制后端设计时序预算方法 | |
CN106339515B (zh) | 差分电路及其参数化单元的生成方法及生成系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20100707 |