: p, J$ W2 z% F9 {* L0 C.options- |4 @1 S! }: p. s' A Z6 P- f7 g
+ RELTOL = 0.01# {4 h0 v H* B% B5 o% b2 k" b
+ ABSTOL = 1.0e-9 9 `9 |1 o0 X6 ^+ VNTOL = 1.0e-4! L4 n4 Q4 K ~! c
+ LVLTIM = 1, n; P+ D2 u) Q. O
+ METHOD = GEAR 9 d/ T% a7 `; K6 ?, Q9 {+ MAXORD = 2$ j- e- P: d, K4 S6 n: ~
+ TNUM = 9999 *"pick big number"0 Z" [( [# _6 z, k, G( [$ p
+ ITL4 = 100 / |+ K" C) y% `) |" D+ k9 S * P/ V7 r* u/ Q: O, i5 K我加了以後就真的能收斂了∼試試看吧!作者: young000 時間: 2007-7-22 07:04 PM
Hspice manual 的 Simulation and Analysis User Guide 裡面就要還算清楚的描述... % a- n. A- s4 b9 M: _8 P % N1 b: q8 `! w9 ?% x* f4 j$ V9 ]至於 UIC,請先詳細了解 UIC 的使用方式再來確定如何使用,小心不要鬧出大笑話 ; A* b1 v& K/ @6 J* ~" x8 S$ S- q1 v, Q
+ U# h+ g3 T: r% h$ f1 Y
敝人就曾經看過 UIC 使用不當, 導致錯誤的模擬以至於設計出問題,一個 designer 如果連正確的 simulation tool 都無法好好掌握,如何能確保設計出來的電路可以實現?作者: ted628 時間: 2007-7-27 03:17 AM
根據 The SPICE Book 上的說法,最有效的解法是 ITL4 加大。最大值是 100。 6 w. n& y; ?; u5 Z ! \$ O/ n& u' T7 |6 u樓上有提供 google 來的 option,裡面有修改 TOL,個人是覺得先改 ITL4,真的不行才改 TOL,TOL 一改,對模擬所需時間影響不小。作者: hvpower 時間: 2008-8-30 09:30 PM
有時候還可以換一個HSPICE版本試試 9 s2 T( u& U A
0 T. ^2 {% n+ ~: n% ^% F07和08版本的收斂性比03的好點作者: yalon 時間: 2008-8-30 10:28 PM
unconverge 有時候 跟 spice model 也有一點關係. ; N: d( a1 Z+ G$ _0 Z5 B! b所以得花點心思下去看. 8 w1 A8 U1 b6 T5 H3 w' N- z3 G9 Z2 [9 E* X! i7 H
不過直接給 .ic 是最快的方式. 只是要小心.作者: halfmoon 時間: 2008-9-3 10:46 AM
可以在POWER電源由LOW拉到工作電壓有時也可以解...作者: isscc 時間: 2008-9-13 12:45 AM
.tran (star) (stop) 3 u1 n1 E0 J' |( _0 J* ~stat 可以用1u試試看 stop不要太誇張就ok了作者: jerryhao 時間: 2008-10-22 03:39 PM
add UIC, and use GEAR as simulation method.作者: fmgay 時間: 2008-10-22 03:51 PM
一般在双稳态电路中容易出现不收敛的情况, 5 C, k9 j, `+ ]3 f8 V检查电路中的双稳态电路(latch, DFF等),可以给这些双稳态电路设初值(UIC)。 & e2 D c* F: T/ d K4 R另外,双稳态电路在上电时都应该有reset信号将其置于某一确定的状态 9 z5 s; r9 L0 v$ X m4 {: o7 H如果你的电路中有reset信号,先将电路reset。作者: semico_ljj 時間: 2008-10-28 12:59 PM 標題: 回復 13# 的帖子 这个说得很对,有体会!哈哈。。。。。。。。。。。作者: hyseresis 時間: 2008-11-5 06:08 PM 標題: List some probably if nonconvergence... 1.Be sure to check your model parameter units. ) ^0 _' Z7 r( e" y$ u" `' Y6 N2.Use MOS ACM=1,ACM=2,or ACM=3 source and drain diode calaulation to automatically generate parasitics.6 d1 d7 X& y& Q. O9 k2 V
3.Check if you MOS models had subshreshold parameter set? (NFS=1e11 for HSPICE Level 1, 2, 3 and N0=1 for HSPICE BSIM 1, 2, 3 models & Level 28). * m( K+ ?. v; ?9 L* O7 ]4.Check your options .9 p+ X3 B8 P/ M8 n, _. e
5.schmitt Triggers are unpredictable for DC sweep and sometimes for operating point for the same reasons Oscillators and Filp-Flops are use slow transient.作者: semico_ljj 時間: 2008-11-5 08:31 PM 標題: 回復 17# 的帖子 用过,是不错!谢谢总结作者: tshiu 時間: 2009-3-31 09:13 AM
我用hspice 2002) {/ `4 c: R! Q) i3 Q) g
加上# }' A Y% B) \+ e
.options nomod probe9 b3 B. K% O1 ~- P: O4 C0 D$ L3 H
+gmindc = 1.0E-40 u' {* O% I3 G$ a [, A M8 n
結果可以% X! ^9 b: v! x* P" D
3 h0 T) H8 w9 `& C後來使用hspice 2008 & K+ t6 O! p: G4 {: q K1 `" @加上 " L' U0 `2 }$ w.OPTION runlvl=2 3 b9 d" c, X6 V5 Y V$ T也可以作者: e2000 時間: 2009-4-8 01:25 AM
可以降低精確度去試試看,或者是把HSPICE用最新的版本去跑,因為舊版的參數好像容易出現這問題,我遇過這問題,把2004Hspice換成2007的就沒這問題了,再不然就是下.ic或.node去設定初始值讓他收斂。作者: g923964 時間: 2009-4-13 06:40 PM
有時是電路有問題(經驗), 不見得都是.tran 設定上的問題作者: numberto 時間: 2009-4-18 11:26 AM 標題: 回復 1# 的帖子 set "KCLTEST=0", 精度略有下降 ! p+ @3 s: G" e ?9 t! Q: D最根本的是check一下电路,看有没有floating的节点,有的话修正或加个大电阻到地。作者: nooby_wang 時間: 2009-5-5 05:39 PM
这个问题产生的原因很多, 有的是因为.tran设置的精度太小. |3 p( z3 h# O6 I1 ]4 C还有一次我碰到这个问题是用#22楼同样的方法, 设置VDD时不是直接给定某一值(例如VDD=1.8v), 而是用PWL 给定VDD的值(从0 到1.8v),是个ramp的过程 .作者: kuohsi 時間: 2009-5-6 08:53 AM
0. Check circuit topology and connectivity.# j) Y, X+ y0 c. t" }: t) Q* p; U
This item is the same as item 0 in the DC analysis. : b9 r& I" }' L) a2 d6 u 8 K$ v) T) q0 o5 R4 S1. Set RELTOL=.01 in the .OPTIONS statement." Y* ~3 J% N. c1 C: t3 Y
Example: .OPTIONS RELTOL=.01 ! D1 \. g* P. @ F+ Q& K6 K7 }4 f' M) L0 J$ p }/ J2. Reduce the accuracy of ABSTOL/VNTOL if current/voltage levels allow it., I; x( Z; `7 Q/ n- I2 `; ^
Example: . OPTION ABSTOL=1N VNTOL=1M 8 F9 R0 P- o/ n. X& w# ^/ t5 n( g Y" O T1 R0 ?8 Y( i
3. Set ITL4=500 in the .OPTIONS statement. y% G9 H. x4 c3 rExample: .OPTIONS ITL4=500 + h# |8 ~$ Z. v6 B4 V7 W& s! W3 I3 }( z9 f1 E( ~! U
4. Realistically Model Your Circuit; add parasitics, especially stray/junction capacitance.4 [& Y+ B: ?1 ]3 @# e
8 k$ A' Y' e7 y1 @ Q5. Reduce the rise/fall times of the PULSE sources. . l, M- g7 B& RExample: VCC 1 0 PULSE 0 1 0 0 0- P% Q; b* n) ^/ B# [( M
becomes VCC 1 0 PULSE 0 1 0 1U 1U, {/ R: [/ P: a8 P) X8 |
6 m2 o% a0 z1 O7 {1 T
6. Use the .OPTIONS RAMPTIME=xxx statement to ramp up all of the sources.' J1 @. v1 d+ T- ~" o1 ~6 a0 c8 S
Example: .OPTIONS RAMPTIME=10NS ) n% w! K8 D: k8 I1 [2 _/ E( x+ \4 F) M0 L# W' }
7. Add UIC (Use Initial Conditions) to the .TRAN line. 6 j5 M. N2 ~1 V/ g$ V0 f7 \% C7 hExample: .TRAN .1N 100N UIC, `, O$ _0 x; O! R4 G& e
0 S1 v6 n+ O; A) h$ f Y8. Change the integration method to Gear (See also Special Cases below).: g6 x' S# X6 c, ^: a. @: P$ v
Example: .OPTIONS METHOD=GEAR作者: e2000 時間: 2009-5-7 06:28 PM
當你跑放大器尤其是有切換電容的東西的時候或者是有浮接或電路點有某些地方沒給初始值他就會可能發散,我之前也是這樣,把HSPICE04年版本改成07年版本之後這問題幾乎就沒遇過了,之前遇到的時候是在SP檔裡面加上一行字,好像是降低精確度的指令,不然就是給節點初始值看看有沒有辦法收斂。作者: stanleyy 時間: 2009-5-15 10:03 AM
你这是典型的不收敛的问题,建议你修改下或增加下初始条件,再看看结果如何,或直接看帮助文档得了作者: toe 時間: 2009-5-15 10:10 AM
在一些power on時不確定的node8 z1 l( _) R8 X b- A, z, F* g. D; |
加initial value比較有用作者: hitxiaojun 時間: 2009-5-15 01:32 PM
加主要点的初始值,一般情况下就会收敛,sim会没有问题的~作者: minijasmine 時間: 2009-5-30 12:57 PM
time step too small的warning意味着瞬态不收敛。可采取的措施很多:增大叠代次数ITL4、减小.tran 语句中的tstep、给电路中的某些点设置初值、使用method=gear等都是很安全的措施,但有可能会增加仿真时间;而增大gmindc、增加Cshunt、改变lvltim等是有可能降低仿真精度的,使用时要特别注意;! q# l6 D. U: S3 m# j$ F- U
在电源给一个WL,我觉得是解决DC不收敛问题的。作者: freemystyle 時間: 2009-6-3 06:06 PM
其實用gear可以解決不會stable的問題,gear雖然說LTE比較大,但是是最穩定的method作者: u8912017 時間: 2009-11-18 03:33 PM
有遇到此問題的人都知道這是因為電路在Hspice模擬時發生了不收斂的問題,最簡單的方式就是加上initial value或者是加上一些加速收斂的指式即可…作者: jimwang94306 時間: 2010-7-1 01:44 PM
小弟是新手 謝謝大家分享經驗作者: jsp0520 時間: 2010-7-4 07:41 PM
我之前也遇過類似的問題 5 [" h+ f3 r6 w8 _9 dbaker 的書(舊版的)有提到收斂問題主要是調整 ABSTOL VNTOL RELTOL 這三個參數 9 D# X0 `& ^+ p這些參數是絕對電流容忍度 結點電壓容忍度及相對容忍參數: Y( }5 H8 D6 [( b
根據spice的版本有不同的default值 : i$ Y2 S( E$ [. F$ ^
設置可以改變疊代的次數 ITL$ x" ^' y, V6 A6 j5 X+ O
2007似乎是default到100(ITL=100)' V- E# e4 ? ^/ ]
再來就是電路上的問題& z& e1 l3 Q C, D: N7 D
可能是變容比值或增益造成不收斂點 ' F6 L; E3 o3 i可能要檢查一下回授的參數 8 y1 x0 Z w* P" h: YUIC好像沒有明顯的作用(誤?)/ g" l1 y, M5 X) {) O
O' Q- A$ X) {/ P3 ~ . ]+ ~0 J( N$ z以上是小弟一點點的經驗 # u" { ]* y% c: Y景供參考作者: jackrabbit 時間: 2010-7-6 06:35 PM
以個人的經驗, 我會建議參數下越少越好" y. B t/ @! q6 K1 b3 o+ X
如果一個電路必須加了一堆參數才能模擬出結果, 我會覺得這個電路不夠robust0 h1 F. [, @% Z" e) l& W
我也試過用iteration什麼的加了一堆, run一個簡單的DFF 接成的除頻器都可以掉clock或跑出glitch... 6 _" n) f0 f' |1 B8 g; }從此之後我就保持option只設定accuracy 跟 method 兩樣, 頂多再設個小數幾位之類的~; r0 Z9 s2 D# H0 }3 z! c
q" ^) Y: w! I- G4 { C: U! \當不收斂發生的時候, 我第一個會建議的是加trigger source 0 ]" c+ V/ e+ d. \. vpower 用ramp (快或慢都可以試看看), 有多組power就多設幾個試試, power直接給DC很容易不收斂的!!1 \& r3 A( B! Q
有power-down訊號的可以寫pwl 去toggle它, 也會有幫助5 l7 z4 j; H( j6 a4 M/ F1 u. B
再來, probe current 很容易不收斂, 可以先拿掉看看; 減少floating/unconnected nodes, 這好像都跟演算上會扯到無窮大有關 9 d/ i+ U) m6 b- F. b再不行的話, 加initial condition, 去寫 .ic/ .nodeset 等等' u2 W" K3 [; D0 q' p
這些試過都不行....我會先把電路拆成小block run過, 確保都正確動作後, 再check system 接線有沒有問題# o) h- }- X) b; u# f& U
最後, 才會去試下參數.... W$ K$ \5 s) m: {# x! I+ D以個人經驗, 通常加trigger source 還有不probe current, 幾乎可以解決掉八成不收斂的問題 # h* I7 Z# {& a9 f6 T: M: @8 E記住, spice說timestep too small只是告訴你不收斂, 不是真的把timestep加大就可以跑!!作者: cyan215 時間: 2011-11-2 11:15 AM
原來是不收斂的問題~ ' o! o1 `% g& g9 W6 \2 G 3 `1 v& E0 F* }* n參考版上大大的資訊試試看~作者: kmchen3089 時間: 2011-12-26 12:26 AM
Dear all # g P, C5 d# H7 xMy name is Kuan Min Chen& S+ d: w/ z" m* k, |4 I) G1 J# @2 L
I am analog designer from Taiwan Hsinchiu' \( Y( [) E, {: B) T) |
To help junior analog designers in Taiwan,. H' i8 ^: `( B7 a
I provide my experience (about 10 years) to share with you about issue of time step too small ! z# z5 q! t/ p- X& Q7 L2 FPart 1 about issue of time step too small by Kuan Min Chen" G; o" _3 h0 |; U! }
* H) S& x. x, ^7 s
1. first 用HSPICE跑analog simulation出現time step too small 有可能發生在t=0 (initial state)$ L" }9 s3 q3 `6 T. g" E9 ~. i
or when t=t1 (t1 is less than hspice simulation stop time) ,而為何出現time step too small 6 ]! [5 a- W% o0 Z
之訊息,為因為 Hspice 只是一個計算器, 它對電路建立K.C.L & K.V.L equation matrix & use Newton-Raphson algorithm to solve the root of matrix equation,2 p/ Q& _% d/ M9 a" v6 `8 |4 Y; z: `
且它會對很多時間點做計算,且比較相臨時間點間之電壓或電流值之差距 ,如數學上,若一曲線 + m0 {& t; l2 v2 m+ |y(t)在t=ta發生不連續(即不收斂,發生離散點), 則Hspice算完ya=y(ta)後 ,再算yb=y(ta+dt) but Hspice 為減少模擬時間,會先取dt較大時, 而再去比較delta_y=y(ta+dt)- y(ta)之差value, 而若delta_y較大時,則Hspice再減小dt value,(because Hspice “default think” y(t) curve is continuous in mathematic, but because 在t=ta發生不連續, so delta_y 值仍然較大, ; T' ]+ N/ j$ K$ V5 t故Hspice再減小dt value, 可是因為y(t)在t=ta發生不連續, 故Hspice即使將dt值弄到很小很小 ,而delta_y 值仍然較大,故Hspice放棄了,而認定此曲線* [4 v& X" W+ f+ f
y(t)在t=ta發生不收斂, 而因為Hspice將dt值弄到很小很小, 故出現time step too small之訊息(because dt is dynamic time step value),且因為Hspice認為電路有連續時間之特性so Hspice不跑了,總之出現time step too small 代表發生不收斂7 D* f2 ]7 v; K5 N3 u$ Q
/ H- l! j# _8 z- U, Z" b2 .The most effective solution to sove time step too small is to update your Hspice version (越舊的Hspice版本收斂性越差, 如Hspice 2008版本優於Hspice 2004版本, because new Hspice version has updated algorithm to solve 不收斂, 我建議勿使用早於Hspice 2007 之版本,如hspice 2010 version 則幾乎都會收斂(for無電感之電路及 t=any time point) 收斂特性為Hspice 2010>Hspice 2008 >Hspice 2004> Hspice 19996 _$ t4 ~6 N u( v# M# G
1 t) r4 E7 H6 j; Q) |. f
3. 將GMINDC 及cshunt值調大雖然有助於收斂,但GMINDC 及cshunt為原本電路中不存在的東西,故GMINDC 及cshunt值調大,則模擬結果越不可信 & p2 ?" O* y6 I1 u& N! u" o - H( X) `( O" S F; m7 M4設定 .OPTION runlvl 中runlvl值越低雖可解決不收斂,但模擬結果越不可信, 0 R5 E& h: i' zHspice預設runlvl=3 而runlvl值小於3模擬結果越不準確, $ o/ _6 b3 K# z6 i& {6 O; ?runlvl值大於3模擬結果越準確 2 @& F+ _& x- q) f% L0 P9 y / K+ ]3 M6 N( V6 B+ v8 w0 I5.有時不收斂是因為Fab所提供之spice model有問題, 越便宜之Fab的spice model越有問題# h2 u. E' U8 W1 v- _: V3 _
,因為便宜沒好貨,若Fab無法解決,則改跑無收斂性問題之tool如nanosim,但其正確性比hspice差(誤差在10%內)作者: kmchen3089 時間: 2011-12-26 12:27 AM
Part 2 about issue of time step too small by Kuan Min Chen$ d4 x. Y \) v
. N r0 Y3 o) i9 e0 @* B ) h) t% s6 ]- [6 POWER電源由LOW升高到工作電壓有時也可以解,(指如 vdda vdda 0 pwl(0ns 0v 100ns 0v 200ns 1.8v),則在0ns~100ns之時間內因為節點狀況皆相同,故在t=0處會收斂可跑,但不代表在t=1000ns處會收斂 * @9 i# Q! Q! D2 F( _3 G2 R# t: _1 c1 ?) K z5 T
7檢查電路中的雙穩態電路(latch, DFF等),because 雙穩態電路在t=0處 ,because雙穩態,故Hspice易猜錯, solution is to先將雙穩態電路(latch, DFF等)reset 7 G) x) w7 h" Y4 V$ c/ l8.有時稍微改變vdd and temperature value 則可解決收斂問題,4 k( @+ ^7 k* p) y0 N3 t
如原本要vdd=1.8v ,temp=60 but不收斂,則試vdd=1.82v ,temp=621 `2 A/ q- |3 z/ `2 |! g, H
Or vdd=1.78v ,temp=58 等組合 [# [. z' l4 h# y" o* ?8 m
! x5 V! P3 W- M6 d$ C6 \- f+ {
9.set initial condition to the critical node of your ckt ,對t=0處之收斂問題有些幫助 $ f* S- M4 G/ J但不是萬能的,因為若你的電路太大且結點太多時, : q, ?7 _' J* I$ \" v我的經驗是將你跑過成功之檔案之initial state file存起來, ( ?& |* w1 |- f$ W/ A讓無法收斂之檔案去呼叫該initial state file, 且由hspice *.lis file - V" u4 \0 W& R' N* I+ I1 R+ D% p內,其會顯示那些節點有問題而再去改存起來之initial state file 1 R* q1 a# z$ B8 D5 T內之那些節點之value ,而如此多試幾次 . t' B9 X1 K0 u; h 8 {! \2 H2 ^3 o9 C$ o10增大疊代次數ITL4有一定程度之幫助,但在Fab所提供之spice model有不連續問題時,) l0 w* N+ ]* F, v% N u
還是沒用 ,因為若本身即為離散點,則試多少次還是發生離散 $ y" L6 f, V" m0 |% {! f7 i' G; O: B$ E+ Y6 k
11 注意你對電路之所有輸入及控制及工作電壓及溫度之設定是否正確或是否合理, & ~5 ~0 ]1 ]5 C6 r6 K4 R6 U- x' m記住Hspice 只是一個計算機,它只是幫你解K.C.L & K.V.L equation, 2 I. r- u! W7 R7 t) ] x而你的電路架構及對電路之所有輸入,及控制及工作電壓及溫度之設定之不同,即等同於你製造出之K.C.L & K.V.L equation之不同, 若你製造出之equation本身就無解,' I8 B9 h$ w+ T. C r1 ~) _
則Hspice發生不收斂,且不跑了是理所當然的, 記住Hspice 只是一個計算tool) O" Z, a" G5 W/ n( e