Hspice仿真不收敛问题
- 格式:doc
- 大小:38.00 KB
- 文档页数:6
PSPICE仿真流程(2013-03—18 23:32:19)采用HSPICE 软件可以在直流到高于100MHz 的微波频率范围内对电路作精确的仿真、分析和优化。
在实际应用中,HSPICE能提供关键性的电路模拟和设计方案,并且应用HSPICE进行电路模拟时,其电路规模仅取决于用户计算机的实际存储器容量。
二、新建设计工程在对应的界面下打开新建工程:2)在出现的页面中要注意对应的选择3)在进行对应的选择后进入仿真电路的设计:将生成的对应的库放置在CADENCE常用的目录中,在仿真电路的工程中放置对应的库文件。
这个地方要注意放置的.olb库应该是PSPICE文件夹下面对应的文件,在该文件的上层中library 中的.olb中的文件是不能进行仿真的,因为这些元件只有.olb,而无网表。
lib。
4)放置对应的元件:对于项目设计中用到的有源器件,需要按照上面的操作方式放置对应的器件,对于电容,电阻电感等分离器件,可以在libraries中选中所有的库,然后在滤波器中键入对应的元件就可以选中对应的器件,点击后进行放置.对分离元件的修改直接在对应的元件上面进行修改:电阻的单位分别为:k m;电容的单位分别为:P n u ;电感的单位分别为:n 及上面的单位只写量级不写单位.5)放置对应的激励源:在LIBRARIES中选中所有的库,然后键入S就可以选中以S开头的库。
然后在对应的库中选中需要的激励源.激励源有两种一种是自己进行编辑、手工绘制的这个对应在库中选择:另外一种是不需要自己进行编辑:该参数的修改可以直接的在需要修改的数值上面就行修改,也可以选定电源然后点击右键后进行对应的修改。
6)放置地符号:地符号就是在对应的source里面选择0的对应的标号.7)直流电源的放置:电源的选择里面应该注意到选择source 然后再选定VDC或者是其它的对应的参考。
8)放置探头:点击对应的探头放置在感兴趣的位置处.6 对仿真进行配置:1)对放置的项目的名称进行设置,也就是设置仿真的名称.2)对仿真进行配置:对仿真的配置主要是对两个对应的选项进行操作,Analysis中的对应操作:这个里面主要对应analysis type 以及的操作,对应扫描频率,需要注意MEG的频率单位.在configuration Files里面要注意category 中应该选择library,在filename 中选择对应的IC的库文件,选定后再选择add as global 按键,然后点击确认就可以了。
SIMPLIS中POP仿真不收敛时怎么处理
SIMPLIS中POP仿真不收敛时怎么处理
IMPLIS 中有一个特有的分析模式——POP 分析,即Periodic Operating Point,周期性工作点分析,仿真是从电路的稳定工作状态开始的,因此比Transient 分析速度更快,另外,在进行小信号分析前,先进行POP 分析确定电路的稳定工作点,再进行AC 分析。
有时工程师会发现电路在Transient 分析时是正常的,但是一进行POP 分析
就会发现不收敛,此时应该先查看Transient 分析时电路大概是什么时候进入稳定工作状态的,以便在进行POP 分析前设置仿真参数时作为参考。
当POP 不
收敛时,可以先尝试更改触发条件Trigger conditions,也可将Conditions 中的Max Period 和Advanced 选项中的Iteration limit 值改大一些,再进行仿真看看。
如果仍然不能收敛,再检查电路的LC 等的初始条件是否设置正确。
LC 等的初始条件应设置为稳定工作状态附近的值,可通过Transient 仿真后
选择Simulator/Initial Conditons/Back-annotate 查看。
注:一定要保证此次的Transient 仿真结束时电路已经进入稳定工作了。
如果始终不能收敛则,可能是电路本身参数设定等的问题,导致无法进入稳
定工作状态,请仔细检查电路。
仿真中遇到的问题及解决方法《仿真中遇到的问题及解决方法》在进行仿真工作时,难免会遇到各种各样的问题。
这些问题可能来自于仿真软件本身的限制,也可能来自于我们对仿真工作的理解不够深入。
针对这些问题,我们需要及时找到解决方法,以保证仿真工作的顺利进行。
本文将就仿真中常见的问题及其解决方法进行探讨。
1. 起因分析在进行仿真工作时,我们可能会遇到仿真模型不收敛、仿真结果不稳定、仿真时间过长等问题。
这些问题可能源于仿真模型本身的复杂性,也可能源于仿真软件的设置不当。
为了及时解决这些问题,我们需要从问题的起因进行分析。
1.1 仿真模型不收敛仿真模型不收敛是仿真工作中常见的问题之一。
当我们对某个系统进行仿真时,如果模型不收敛,就意味着我们无法得到有效的仿真结果。
这可能是因为模型中存在着过多的非线性元素,或者仿真软件的收敛条件设置不当。
解决方法:我们可以尝试简化模型,去除一些不必要的非线性元素,或者对模型进行优化。
我们可以调整仿真软件的收敛条件,增加迭代次数或调整收敛阈值,以尝试解决收敛问题。
1.2 仿真结果不稳定有时候,我们可能会发现仿真结果不稳定,即使在相同的输入条件下,仿真结果也会有较大的波动。
这可能是因为系统本身存在着不稳定性,或者仿真软件的数值计算精度不够高所导致。
解决方法:针对仿真结果不稳定的问题,我们可以尝试对系统进行稳定性分析,找出系统不稳定的原因所在,并对系统进行改进。
另外,我们还可以通过提高仿真软件的数值计算精度,或者调整相关参数来提高仿真结果的稳定性。
1.3 仿真时间过长在进行大型系统的仿真工作时,常常会遇到仿真时间过长的问题。
这可能是因为系统的复杂性导致仿真计算量过大,或者仿真软件的计算效率不高导致的。
解决方法:针对仿真时间过长的问题,我们可以尝试对系统进行分解,将复杂系统分解为若干子系统进行仿真,以减少计算量。
另外,我们还可以尝试优化仿真软件的计算设置,提高计算效率,从而缩短仿真时间。
2. 解决方法的选择在面对各种仿真问题时,我们需要灵活运用各种解决方法,以便快速解决问题将仿真工作进行下去。
用hspice仿真电路,不收敛怎么办?Hspice仿真电路不收敛,说白了就是就是计算机解矩阵解不出来了。
不收敛的原因可能有三个方面造成(1).hspice的计算上面.以上换算法,换options都是根据这一点来的。
一般说来,这样的情况占绝大多数(2).Model的问题。
比如产生负的电导,或者模型不连续性造成。
(3).电路本身问题比如网表不完整,有悬空点;反馈不正确(不一定都不收敛,hspice的parser 部分对这种情况只给warning,不给error message)等等。
电路本身的问题属于设计上的了,具体只能自己分析。
对于hspice运行通过,功能性能都过的去,一般多运行些corner 情况,worstcase情况或者做MonteCaro分析,有问题的话应该可以抓出,没问题的话,流片后出问题概率也不大解决的办法可以通过以下各种手段.(1).换个算法hspice提供两种基本算法,Gear和Trap.学过数值分析的应该明白这两种解方程的方法。
默认值是Trap,遇到不收敛问题一般先换个算法看看,更改为Gear.方法是加一个:.options method="gear"不过这个换算法能解决的情况不是很多。
假如画出解方程的那个图形来看,是需要恰好避开那个不收敛的点才能解决。
因此有一定凑巧性。
(2.)改变tolerance.计算机解方程时,都是设定一个容忍度。
这个容忍度可以是叠代次数,可以是精确度,可以是计算时间,而且还可能和accuracy配合起来,有大概20个tolerance可以更改。
根据不同的需要,看一下需要改哪个。
hspice有个附带的options table,非常好用。
(3).改变步长相信大家看到的最多的是intenal timestep too small这个提示。
内部时钟间隔太小。
这个timestep不是所设定的分析step,不过那个step也是timestep的一个因子.影响timestep的因此很多,有12个之多。
hspiceD使用手册一、HSPICE基础知识 (2)二、HSPICED的使用 (3)1.选择仿真环境 (3)2.确定model库 (3)3.加载激励 (5)4.Choose Analyses (8)三、HSPICED的注意事项 (9)1.HSPICES的state用于HSPICED需注意 (9)2.HSPICE仿真速度快造成卡机的问题 (10)一、HSPICE基础知识Avant!Start-Hspice现在是Synopsys公司的电路仿真工具,是目前业界使用最广泛的IC设计工具,甚至可以说是标准。
hspice和Spectre这两种仿真器每种都有两个接口,就是hspiceD 和hspiceS(hspice Direct,和hspice Socket),以及spectre和spectreS(Spectre Direct,和spectre Socket)。
"Socket"接口是仿真器的一个比较老的接口。
因为在过去,很多仿真器没有强大的参数化语言,所以Cadence工具所做的就是使用cdsSpice (这个工具有强大的宏语语言,但实际上是一个比较脆弱的仿真器)来充当仿真器。
所有的网表都用cdsSpice的宏语言生成,然后再翻译成目标仿真器的语言——不保留任何参数化的东西。
这种方法是可行的,但是我们没有办法使用主流仿真器的所有特征。
大约1999年,以IC443为例,引入了"direct"接口的概念,我们就去掉了中间手段而直接用相应的语言生成网表。
这样更快,更有效,并且给出了更强大的读取主流仿真器的接口。
"Direct"接口的仿真工具输出的网表可读性更好,可以在只读模式下仿真,能够执行更高级的运算等等,所以在两大EDA工具提供商的仿真器中,hspiceD和spectre是优选。
我们根据书籍对电路的计算和估算都采用Level 2的MOS Model,与实际的Level 49和Mos9 、EKV等Liabrary不同,这些model要比Level 2的Model复杂得多,因此Designer使用Hspice、Spectre等工具进行仿真,以便得到精确的结果,是必须的。
PSpice仿真中收敛问题研究PSpice是一个全功能的仿真工具,随着版本的不断革新,可以实现严格的电路模拟和电路优化,并成为工业标准工具。
目前所有的电路仿真工具在进行直流分析和瞬态分析时都会遇到不收敛的问题。
PSpice虽然已经采用了最可靠的算法,但仍未能杜绝不收敛问题。
从仿真器采用的算法出发,分析不收敛产生的原因,针对各种原因提出相应的处理方法,最后通过一个存在收敛问题的实际电路,应用文中提及的方法解决了不收敛的问题,证明该文研究的处理方法的有救性和可行性。
1 引言用于模拟电路仿真的SPice(Simulation Program with integrated circuit emphasis)软件是1972年由美国加州大学伯克利分校利用FORTRAN语言开发而成的。
为了能在PC机上运行,MicroSim公司在1983年SPice 2G.6版本的基础上推出PSpice仿真器。
PSpice仿真器经过不断的革新,到2007年已发展到16.0版本,它不是一般意义的教学演示软件,而是为严肃的模拟设计而特性化的仿真器。
在使用仿真器进行DC分析和瞬态分析时,经常会遇到电路设计完全正确,却无法得到仿真结果的情况,也就是不会运行到所设定的终止条件,同时输出文件会给出出错信息,这就是程序不收敛的问题。
该问题是执行仿真中最难解决的问题之一。
PSpice程序虽然采用了最可靠的算法,但仍不能完全避免不收敛现象的发生。
本文就这一难点问题提供一些可供参考的方法。
2 发生不收敛问题的原因在分析过程中不收敛的根本原因是因为软件在电路分析时都是将电路的电流电压问题转换为方程组来求解,这些方程组分为线性方程组和非线性方程组。
线性方程组可以采用直接消元法、高斯消元法和LU分解法等,非线性方程组更多的使用迭代法。
而迭代法不可避免的会产生不收敛的问题。
以PSpice中使用最普遍的牛顿-拉夫逊(N-R)迭代法为例来说明。
对于某一非线性方程,f(x)=0,N-R迭代关系式为;点击图片查看大图当给定一个恰当迭代初值x0,代入式(1)进行迭代,产生一个迭代序列{xk+1),直到xk+1和xk之间差的绝对值小于某个给定的允许误差ε为止。
五、控制语句和option语句1.OPTION语句:.options语句格式:.options opt1 opt2 opt3… opt=x 一般在每个仿真文件中设置options为.options acct list post,也可以设置为.options node opts,其中.option list表示将器件网表、节点连接方式等输入到列表文件,用于debug与电路拓扑结构有关的问题,.option node表示将输出节点连接表到列表文件,用于debug与由于电路拓扑结构引起的不收敛问题,.option acct表示在列表文件中输出运行时间统计和仿真效率,.option opts在列表文件中报告所有的.option设置,.option nomod表示不输出MODEL参数,以便减小列表文件的大小,.option brief=1表示不输出网表信息,直到设置.option brief=0,.protect/.unprotect用于屏蔽网表文件中要保护的信息,.option bypass=1不计算latent器件,.option autostop表示当所有.measure语句完成时,终止仿真,.option accurate=1表示设置为最精确的仿真算法和容差,tstep表示仿真步长值,delmax表示最大允许时间步长,其中delmax=tstep*max,.option dvdt=4用于数字CMOS 电路仿真(默认设置),.option dcca=1在直流扫描时强行计算随电压变化的电容,.option captab对二极管、BJT管、MOS、JFET、无源电容器,打印出信号的节点电容值,.option dcstep=val将直流模型和器件转换为电导,主要应用于“No DC Path to Ground”或有直流通路,但不符合Hspice定义的情况。
2.MODEL OPTION语句:六、仿真控制和收敛Hspice仿真过程采用Newton-Raphson算法通过迭代解矩阵方程,使节点电压和支路电流满足Kirchoff定律。
icepak某个方向的速度方程不收敛
Icepak是一个流体动力学仿真软件,用于模拟流体在电子元件中的热传导和流动。
在使用Icepak进行模拟时,有时会出现某个方向的速度方程不收敛的情况。
这种情况通常是由于模拟中的网格质量不够好或者边界条件设置不合理导致的。
为了解决这个问题,可以尝试以下方法:
1. 对模拟中的网格进行优化,尽可能地使得网格质量更好。
2. 检查边界条件是否设置正确,是否与模拟场景相符合。
3. 调整模拟参数,如时间步长、迭代次数等,尽可能地使得模拟更加稳定。
4. 如果以上方法都无法解决问题,可以尝试重新构建模拟场景或者采用其他仿真软件进行模拟。
总之,当Icepak某个方向的速度方程不收敛时,需要在仔细检查模拟参数和边界条件的同时,也需要从整体上考虑并尝试寻找新的解决方案。
- 1 -。
五、控制语句和option语句
1.OPTION语句:
.options语句格式:.options opt1 opt2 opt3… opt=x 一般在每个仿真文件中设置options为.options acct list post,也可以设置为.options node opts,其中.option list表示将器件网表、节点连接方式等输入到列表文件,用于debug与电路拓扑结构有关的问题,.option node表示将输出节点连接表到列表文件,用于debug与由于电路拓扑结构引起的不收敛问题,.option acct表示在列表文件中输出运行时间统计和仿真效率,.option opts在列表文件中报告所有的.option设置,.option nomod表示不输出MODEL参数,以便减小列表文件的大小,.option brief=1表示不输出网表信息,直到设置.option brief=0,.protect/.unprotect用于屏蔽网表文件中要保护的信息,.option bypass=1不计算latent器件,.option autostop表示当所有.measure语句完成时,终止仿真,.option accurate=1表示设置为最精确的仿真算法和容差,tstep表示仿真步长值,delmax表示最大允许时间步长,其中delmax=tstep*max,.option dvdt=4用于数字CMOS 电路仿真(默认设置),.option dcca=1在直流扫描时强行计算随电压变化的电容,.option captab对二极管、BJT管、MOS、JFET、无源电容器,打印出信号的节点电容值,.option dcstep=val将直流模型
和器件转换为电导,主要应用于“No DC Path to Ground”或有直流通
路,但不符合Hspice定义的情况。
2.MODEL OPTION语句:
六、仿真控制和收敛
Hspice仿真过程采用Newton-Raphson算法通过迭代解矩阵方程,使节点电压和支路电流满足Kirchoff定律。
迭代算法计算不成功的节点,主要是因为计算时超过了Hspice限制的每种仿真迭代的总次数从而超过了迭代的限制,或是时间步长值小于Hspice允许的最
小值。
(1) 造成Hspice仿真不收敛主要有“No Convergence in DC Solution”和
“Timestep too Small”,其可能的原因是:
1.电路的拓扑结构:
电路拓扑结构造成仿真不收敛主要有:电路连线错误,scale、scalm和param语句错误,其他错误可以通过查找列表文件中的
warning和errors发现。
解决的方法是:将电路分成不同的小模块,分别进行仿真;简化输入源;调整二极管的寄生电阻;调整错误容差,重新设置RELV,ABSV,RELI,ABSI,RELMOS,ABSMOS等。
2.仿真模型:
由于所有的半导体器件模型都可能包含电感为零的区域,因此可
能引起迭代的不收敛。
解决的方法是:在PN结或MOS的漏与源之间跨接一个小电阻;
将.option中默认的GMINDC、GMIN增大。
3.仿真器的options设置:
仿真错误容差决定了仿真的精度和速度,要了解你所能接受的容
差是多少。
解决的方法是:调整错误容差,重新设置RELV,ABSV,RELI,
ABSI,RELMOS,ABSMOS等。
(2) 针对仿真分析中可能出现的不收敛情况进行分析:
1.直流工作点分析:
每种分析方式都以直流操作点分析开始,由于Hspice有很少的关于偏置点的信息,所以进行DC OP分析是很困难的,分析结果将
输出到.ic文件中。
对DC OP分析不收敛的情况,解决方法是:删除.option语句中除acct,list,node,post之外的所有设置,采用默认设置,查找.lis 文件中关于不收敛的原因;使用.nodeset和.ic语句自行设置部分工作点的偏置;DC OP不收敛还有可能是由于model引起的,如在亚阈
值区模型出现电导为负的情况。
2.直流扫描分析:
在开始直流扫描分析之前,Hspice先做DC OP计算,引起直流扫描分析不收敛的原因可能是快速的电压或电流变化,模型的不连
续。
解决的方法是:对于电压或电流变化太快,通过增加ITL2来保证收敛,.option ITL2是在直流扫描分析中在每一步允许迭代的次数,通过增加迭代次数,可以在电压或电流变化很快的点收敛。
对于模型的不收敛,主要是由于MOS管线性区和饱和区之间的不连续,Newton-Raphson算法再不连续点处进行迭点计算产生震荡,可以通过增减仿真步长值或改变仿真初始值来保证收敛,如:.dc vin 0v 5v 0.1v的直流分析不收敛,可以改为.dc vin 0v 5v 0.2v增大步长值,.dc
vin 0.01v 5.01v 0.1v改变仿真的范围。
3.AC频率分析:
由于AC扫描是进行频率分析,一旦有了DC OP,AC分析一般都会收敛,造成不收敛的原因主要是DC OP分析不收敛,解决的方法可以参看前面关于DC OP的分析。
4.瞬态分析:
瞬态分析先进行直流工作点的计算,将计算结果作为瞬态分析在T0时刻的初始值,再通过Newton-Raphson算法进行迭代计算,在迭代计算过程中时间步长值是动态变化的,.tran tstep中的步长值并不是仿真的步长值,只是打印输出仿真结果的时间间隔的值,可以通过调整.options lvltim imax imin来调整步长值。
瞬态分析不收敛主要是由于快速的电压变化和模型的不连续,对于快速的电压变化可以通过改变分析的步长值来保证收敛。
对模型的不连续,可以通过设置CAPOP和ACM电容,对于给定的直流模型一般选择CAPOP=4,ACM=3,对于level 49,ACM=0。
对瞬态分析,默认采用Trapezoidal算法,精度比较高,但容易产生寄生振荡,采用GEAR算法作为滤波器可以滤去由于算法产生的振
荡,具有更高的稳定性
七、输入语句
对于.param语句,.param PARHIER=GLOBAL是默认的,使得参数可以按照Top-Down变化,.param
PARHIER=LOCAL,可以是参数只在局部有效。
对于.measure语句,可以采用的模式有rise,fall,delay,average,rms,min,peak-to-peak,Find-When,
微分和积分等。
对Find-When语句,.measure <dc|tran|ac> result find val when out_val=val <optimization options>,对微分和积分语句,.measure <dc|tran|ac> result <deriv|integ> val <options>。
对于.ALTER语句,可以通过改变.ALTER来改变使用不同的库,其中.ALTER语句可以包含element 语句、.data、.lib、.del lib、.include、.model、.nodeset、.ic、.op、.options、.param、.temp、.tf、.dc、.ac语句,不能包含.print、.plot、.graph或其他I/O语句,同时应该避免在.ALTER中增加分析语句
八、统计分析仿真
主要是对器件和模型进行Monte Carlo分析,随机数的产生主要依赖Gaussian、Uniform、Limit分析,通过.param设置分布类型,将dc、ac、tran设置为Monte Carlo分析,用.measure输出分析结果,如:
.param tox=agauss(200,10,1)
.tran 20p 1n sweep MONTE=20
.model … tox=tox …
其中,对Gaussian分析.param ver=gauss(nom_val,rel_variation,sigma,mult),
.param ver=agauss(nom_val,abs_variation,sigma,mult),
对Uniform分析,.param ver=unif(nom_val,rel_variation,mult),
.param ver=aunif(nom_val,abs_variation,mult),
对Limit分析,.param ver=limit(nom_val,abs_variation),如果你拼错Gauss或Uniform、Limit,不会产生警
告,但不将产生分布。
参考文献
1. K. S. Ku ndert, The Designer’s Guide to Spice & Spectre;
2. Synopsys, HSPICETM Simulation and Analysis User Guide;。