|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
在大家用软件仿真的时候总会碰到不收敛这个问题...
, m9 F" @3 r- z) r; a* K这个问题.有时候解决起来很麻烦...有的情况下根本没办法解决...
# w2 m' o; x$ O& Y# b3 W今天看到这篇文章,我就把它转下给大家共享下...
M/ X6 g$ m& I) `% k1 a5 k4 UHE HE...下面是以HSPICE为例.其实也是和别的SPICE内核的软件一样...
, q0 ~8 g# ^3 [* w希望对大家有帮助...6 n9 X* z5 }7 W4 {0 a. |" [2 A
用hspice仿真电路,不收敛怎么办?
, ?, m" p2 ^& t9 q! g+ wHspice仿真电路不收敛,说白了就是就是计算机解矩阵解不出来了。
3 |4 {3 t# K/ P2 I不收敛的原因可能有三个方面造成
$ h3 j3 |( S' W* T(1).hspice的计算上面.以上换算法,换options都是根据这一点来的。一般说来,这样的情况占绝大多数/ o2 @9 N, {( Q4 r; a6 g
(2).Model的问题。比如产生负的电导,或者模型不连续性造成。
/ j2 w0 s2 F- q" N. E: s$ m(3).电路本身问题
! F8 r" J, ~. O: b) |6 I7 L) o 比如网表不完整,有悬空点;反馈不正确(不一定都不收敛,hspice的parser 部分对这种情况只给warning,不给error message)等等。电路本身的问题属于设计上的了,具体只能自己分析。对于hspice运行通过,功能性能都过的去,一般多运行些corner 情况, worstcase情况或者做 MonteCaro分析,有问题的话应该可以抓出,没问题的话,流片后出问题概率也不大
# B6 M1 j0 m8 E4 F5 W( W A; Z7 {0 T解决的办法可以通过以下各种手段.
0 j9 @* r2 l3 a0 m! u8 O7 M( m(1).换个算法: _$ v- T6 b; G7 p6 t S
hspice提供两种基本算法,Gear和Trap.学过数值分析的应该明白这两种解方程的方法。默认值是Trap,遇到不收敛问题一般先换个算法看看,更改为Gear.方法是加一个:
2 c: Y1 k9 T' h' b# _8 L- i4 h0 U.options method="gear"
+ j" H5 N, z8 R/ F9 w6 p 不过这个换算法能解决的情况不是很多。假如画出解方程的那个图形来看,是需要恰好避开那个不收敛的点才能解决。因此有一定凑巧性。
5 O' |* Z- X z9 r' l: L(2.)改变tolerance.2 k! O0 u8 T: J. Y+ e
计算机解方程时,都是设定一个容忍度。这个容忍度可以是叠代次数,可以是精确度,可以是计算时间,而且还可能和accuracy配合起来,有大概20个tolerance可以更改。根据不同的需要,看一下需要改哪个。hspice有个附带的options table,非常好用。# g7 f8 Y2 B# R/ w, ~5 d
(3).改变步长
3 l! [. ^. H. A+ ?# r; b$ a 相信大家看到的最多的是intenal timestep too small这个提示。内部时钟间隔太小。这个timestep不是所设定的分析step,不过那个step也是timestep的一个因子.影响timestep的因此很多,有12个之多。(比如数值变换平缓时,timestep自动取的大些以增快仿真时间)更改timestep的方法也可以查上述options列表.2 H8 S9 b' W& I( p0 {/ I( s
(4).改变初始条件1 t, j, I) ?( i7 W
用.ic设定。方程解不出来,就改变一下条件。使用得当一般不会影响结果.& D( A( Y5 p3 Y* U" F' p
(5).在一些节点加很大的电阻(不影响电路性能),来改变节点方程。这种方法不会影响电路的模拟结果。
2 y% J! W' w- X$ V- X! C. `- D(6).在.option 语句中加入改善收敛的语句。比如对收敛精度降低迭代次数加大等。其中的参数有RELVDC,RELH,CONVERGE,DCON等。
. M3 h4 Z6 s# r. L, f% k3 f 在hSPICE的手册里有很多改善的措施,可以看DC or AC中CONVERGENCE那部分。HSPICE在模拟的速度,精度,收敛性三方面进行折衷。
. l+ N6 L5 y" T/ l 其中常用的是: 对每个节点都加一个很大的电阻或电容。4 f; V0 d% s6 x) d( L7 U( S
.OPTION GSHUNT="1E-11" CSHUNT="1E-11": \+ B$ b5 T4 V7 t) w( X* f. C0 J! a/ h
等。 但这会降低模拟精度。3 B( Y+ V# t" N; l. O; E1 ]
(7). 改变电源的波形。在电路起动时让恒流源缓慢上升。在HSPICE中也有这样的OPTION,不过你可以自己来改。在不影响电路的情况下这种方法对收敛的改善最好。
' I# J8 e) Z% ^7 U7 G(8).改变电路- z6 a) o+ J/ ?8 ]" e- P/ n
去掉或者替换一些没什么用的部分。可以加个非常小的电阻比如1u欧姆(等于加了个节点,方程维数多了一个)。
4 Q" f! r. Z$ y. J& |& }4 w3 t |
|