Chip123 科技應用創新平台

標題: 用HSPICE跑analog simulation出現time step too small的錯誤 [打印本頁]

作者: d8731502    時間: 2006-8-16 02:39 PM
標題: 用HSPICE跑analog simulation出現time step too small的錯誤
用HSPICE跑simulation出現time step too small的錯誤+ ]7 t2 r5 Z; u7 `
我的電路大多是Analog的,不知道各位先進是否有遇過' J9 o' Z9 Q1 u: E! E, Z
要如何解決?
+ s+ d' p: P5 q0 r+ ]# A' U3 L' U0 Q5 j  J
[ 本帖最後由 sjhor 於 2007-4-16 05:18 PM 編輯 ]
作者: ahoku    時間: 2006-8-29 08:19 PM
標題: reply
你要在電路某一節點,設初始點,才有辨法收歛
作者: d8731502    時間: 2006-9-14 12:43 PM
我的節點,有數十萬點,應該不會叫我全部都設初始值巴,  W, n2 p3 O$ D5 q6 N" v
但是若是某幾點,我要如何看出是哪些點勒?
作者: liangshangquan    時間: 2007-1-18 01:08 PM
加一两个点就可以收敛了
作者: ryanchen    時間: 2007-1-24 10:42 AM
標題: 回復 #3 d8731502 的帖子
.lis 檔案裡面會顯示哪些點的 DC value 不收斂, 可以從這些下手
, s- }& {" ?+ J/ X8 g不然就加大 dc interation, 在 option 中加 ITL1=400 (defaul 200)
' d# Z+ g9 l* Q8 J& I, |再不行再加 DV= 0.5 ~ 5 範圍的值4 Y2 b- o& t" m# I
再不行收斂也可以加 GMINDC =x , x =little larger than 1.0e-12, 但這會影響電路準確度算是最後手段; o  Q4 V2 m- w3 }, L
個人經驗請參考, 其實 HSPICE Manual 有詳細說明這個問題以及如何解決, 是最好的 database
作者: timlai    時間: 2007-3-29 02:12 AM
可以試試 .option cshunt=?f
) Q0 Y# G; \# P0 [我個人經驗 10f to 50f, 但對電路準確性有點影響
. }8 k2 Q& N! q& _* h2 w1 S
, [* l" H5 j' k7 _又或在 .tran <tprint> <tstop>的那個 tprint 用比較小的值,或許有幫助
作者: billywei    時間: 2007-5-15 01:47 PM
我當初在跑大電路的時候有遇到過類似的問題
5 X" C' e* {! h+ T1 Y+ w結果沒有人可以幫我..= =
* g# M  ?7 O; s1 C最後自己去翻Hspice的手冊: o' ], e3 S$ n9 B( ^  c$ E1 D
終於找到我要的解答
+ `( v1 R8 ^, C( x) L/ \2 i你在.tran xx xx 後面加上一個uic指令
8 \% h1 E0 [6 r) e5 M& S& ]) h也就是說 修改後換變成
: f  s; g/ `0 ?3 L- d.tran xx xx UIC
) L) h7 |8 p( I5 R) y, R  Z8 x希望對你有幫助
作者: d8731502    時間: 2007-5-17 11:21 AM
在加上.tran xx xx UIC之前% ?7 o- L- j' }" o" S
是否需要先產生.ic的電路initial value的檔案??
作者: kungchu    時間: 2007-5-17 01:45 PM
關於HSPICE中UIC的資訊:
/ T; G, V6 l3 |7 f* g2 W0 T! \% W節錄一本手冊(很舊的手冊)中的兩段與UIC可能會比較相關的資訊(應該可以在.dc .ic與.tran的章節找到相關的資訊)..& [2 t# i6 S  n  ?/ o
1.A transient analysis first calculates a DC operating point using the DC equivalent model of the circuit (unless the UIC parameter is specified in the .TRAN statement)2 Q. w: [7 T& g- ]: j
在暫態分析一開始會先計算直流操作點(在.tran無UIC的描述時),) A% F: I# b1 T9 k; C7 l% ]! I
應該在暫態分析開始後就利用之前計算出的直流操作點做為初始值進行模擬
' V: U/ Q) o/ v/ p4 f5 f& M2.If UIC is included in the .TRAN statement, a transient analysis is started using node voltages specified in an .IC statement.+ @# {! q' w& z9 K& x
在.tran有UIC的描述時,暫態分析開始後就會使用.IC描述中所給的值作為初始值.
( w( M* S; f! y8 l(UIC與.IC應該是有相關性的)
) r. E9 t0 X4 }6 F- [# o( s$ p
0 e# o/ j0 |* t# k以上,. }' O# U' q% E; I% G3 \0 j
提供給您參考,6 t7 M! T. q/ M, F
希望對您有幫助.
作者: hycmos    時間: 2007-5-17 05:18 PM
经常的事情,会出现的.细心调整.7 ^0 E9 h( J# c  z. c
比如itl,gear,ic等等都是有关系的.
作者: billywei    時間: 2007-5-22 05:11 PM
關於Hspice手冊上擷錄的部份
) s; @8 S( K; j+ Z我手邊剛好有電子檔9 B! S# C6 L, ?
你可以下載來參考- r" n" A5 t2 V( x& k1 q' e+ Z1 `
不會的再提出來吧$ U7 U7 H( n! R+ ]+ T
(頁數很多..要有耐心)
作者: wjx197733    時間: 2007-5-25 09:23 AM
有时候用uic也是不行的。     ; K( [, k  y( F5 ^' S
最根本的还是要检查一下自己的电路是否有问题
作者: young000    時間: 2007-5-30 07:10 PM
情況允許的話,用 specter 跑看看,先確定不是電路架構的問題,不然花時間下去也是浪費...
作者: super    時間: 2007-5-31 12:45 PM
1. 要設個初始值 給他收斂& R0 ^0 X- k/ y+ \. X8 f2 E  O
2. 電路有問題
: g  W' K2 r# E) H* A! {8 b/ o- S我記的和gear 這東西沒有關西 也和step沒有關西
作者: awei9977    時間: 2007-6-15 03:08 PM
我自己最近碰到的例子是
0 D: P, d. J# o7 g8 p就算我用以前的解決方式 就是加 初值   .IC  或 再 .TRAN  加  uic
8 T% c1 |" F$ [/ m但還是不能解決; a* t$ y) b& S8 i; D
我最後發現  .OPTION runlvl=2  就可解決" {( M7 H1 c( J  t- p+ b4 F
我相這都是演算的問題  多嘗試 多試試喽) [# f, {& t; S9 t! Y, {( W/ i
希望對你有幫助
作者: ianme    時間: 2007-6-19 03:13 PM
runlvl是跑的精度的問題吧?而且這項功能好像只出現在2006.09之後。
作者: morix    時間: 2007-6-21 02:32 PM
我之前在設計的時候也都有碰到這種問題。
% \: o% [$ d4 Q/ Q* F" o: q多半就是給有問題的節點初始電壓,或者是掛個50fF的電容在節點上。6 G3 V1 x* C. U* o& Z9 g' |' e
但電路大的時候這些方法就不太有用了,& C1 s4 r" n$ R# y
我上google找到人家提供的方法是在option處加上:
6 O: A0 j/ f# S
  s0 H+ _3 q6 d8 \# |5 u( g# k.options
4 ]5 L' j# U" @& v, Q1 K2 f* T$ H+              RELTOL = 0.01
9 `! L# i4 e; z3 U" t+              ABSTOL = 1.0e-9
  p& y+ B2 j: h) |+              VNTOL  = 1.0e-4
0 f' {& x1 d0 Q$ U$ O2 Z+ z' ?3 U0 t+              LVLTIM = 1
( J+ m+ k8 R2 O  v+              METHOD = GEAR
, D* P( h. N2 F" y2 a* j' S+              MAXORD = 2% ^/ c1 @6 \6 B# |
+              TNUM   = 9999 *"pick big number": \4 l/ Q/ D4 Y2 D' p0 p( [  A: K
+              ITL4   = 100$ z$ w) G6 F3 k# g" R
" E3 `+ {7 [- H. w; v8 s6 e9 s
我加了以後就真的能收斂了∼試試看吧!
作者: young000    時間: 2007-7-22 07:04 PM
Hspice manual 的 Simulation and  Analysis User Guide 裡面就要還算清楚的描述...
  F8 V4 Q- [+ ]0 Z7 i( t
3 b, V/ n5 q  ?8 D/ y" a. ~4 D至於 UIC,請先詳細了解  UIC  的使用方式再來確定如何使用,小心不要鬧出大笑話 ( d5 S2 C- Z5 C- I, r7 I: k
% f" B$ S* n  f# ^3 m
敝人就曾經看過 UIC 使用不當, 導致錯誤的模擬以至於設計出問題,一個 designer 如果連正確的 simulation tool 都無法好好掌握,如何能確保設計出來的電路可以實現?
作者: ted628    時間: 2007-7-27 03:17 AM
根據 The SPICE Book 上的說法,最有效的解法是 ITL4 加大。最大值是 100。8 ]$ ?0 |% F' W& b
" _# l, ^' ?, E
樓上有提供 google 來的 option,裡面有修改 TOL,個人是覺得先改 ITL4,真的不行才改 TOL,TOL 一改,對模擬所需時間影響不小。
作者: hvpower    時間: 2008-8-30 09:30 PM
有時候還可以換一個HSPICE版本試試
& E. O. S2 Q+ U* q6 ^2 v. w" `  W  l7 `4 @! K
07和08版本的收斂性比03的好點
作者: yalon    時間: 2008-8-30 10:28 PM
unconverge 有時候 跟 spice model 也有一點關係.6 I7 A' N- S3 v" }( u
所以得花點心思下去看.+ F; h% j+ e7 D  y5 D
/ M, |/ p+ U; d$ G% T( ?2 i4 |, s
  不過直接給 .ic 是最快的方式. 只是要小心.
作者: halfmoon    時間: 2008-9-3 10:46 AM
可以在POWER電源由LOW拉到工作電壓有時也可以解...
作者: isscc    時間: 2008-9-13 12:45 AM
.tran (star) (stop); e) N2 J6 ?0 D7 o$ {% t. y
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
一般在双稳态电路中容易出现不收敛的情况,9 X) t- G) F* j2 r
检查电路中的双稳态电路(latch, DFF等),可以给这些双稳态电路设初值(UIC)。
" L' F9 N0 a: Z6 w" f% J) M另外,双稳态电路在上电时都应该有reset信号将其置于某一确定的状态
& n8 g$ s7 D* U如果你的电路中有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.
: `2 }6 Z( U" C: j" G2.Use MOS ACM=1,ACM=2,or ACM=3 source and drain diode calaulation to automatically generate parasitics.
7 g! B- s0 G9 F9 w8 I3.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).! W5 i( [9 o' }8 {3 I# j3 e
4.Check your options .! O# ?$ e0 G: z( M5 g
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: W8 ]! E5 A9 r' W: y, x0 R
加上
* k5 m. r* X# X2 O# \1 v8 g.options nomod probe& G; i& |" m' {' l% c' B3 K9 i
+gmindc = 1.0E-4) T. M) O9 W/ `. T- ?. l8 ~/ `0 X
結果可以
! K7 K2 N7 i9 c+ U. L& {' }5 p$ e: `
後來使用hspice 2008
9 i3 u: r4 W. M& o4 h! @加上
+ x6 U# Q3 E5 @7 O" a. v/ U.OPTION runlvl=2
6 w( X' M! s8 z& E2 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", 精度略有下降
9 R7 H% |1 |8 ?& n最根本的是check一下电路,看有没有floating的节点,有的话修正或加个大电阻到地。
作者: nooby_wang    時間: 2009-5-5 05:39 PM
这个问题产生的原因很多, 有的是因为.tran设置的精度太小.9 l$ v. [7 u# j, n1 Q  w, T, ?
还有一次我碰到这个问题是用#22楼同样的方法, 设置VDD时不是直接给定某一值(例如VDD=1.8v), 而是用PWL 给定VDD的值(从0 到1.8v),是个ramp的过程 .
作者: kuohsi    時間: 2009-5-6 08:53 AM
0. Check circuit topology and connectivity.5 B) c' B, l6 Y7 k* l/ [
This item is the same as item 0 in the DC analysis.& y& s" h; a$ ~5 O) l
) P+ ]% F: r- O8 p
1. Set RELTOL=.01 in the .OPTIONS statement.# ~# \: c) Y3 h9 R* J! r3 w$ s
Example: .OPTIONS RELTOL=.01
/ i/ s4 n* _5 H% P# q) j4 U+ ^0 x* ?: b+ ^  z5 ]+ M
2. Reduce the accuracy of ABSTOL/VNTOL if current/voltage levels allow it.3 a* I% X& l! J$ j7 I% s5 |$ v, ]
Example: . OPTION ABSTOL=1N VNTOL=1M
! K! ?# Q2 r# q9 _% s* b
( ^4 c/ w4 j. j. A2 n3. Set ITL4=500 in the .OPTIONS statement.5 i7 }( z* Z$ a3 V- d) G
Example: .OPTIONS ITL4=5006 T; H* U# c2 A. `$ _
4 X7 c* Q: f9 a, E9 U8 Y
4. Realistically Model Your Circuit; add parasitics, especially stray/junction capacitance.
; n, ~4 J# e  x) e
5 i  s+ L! m% L/ C3 k5. Reduce the rise/fall times of the PULSE sources." e8 }# o$ Q8 @2 E# S/ J
Example: VCC 1 0 PULSE 0 1 0 0 0# B0 {  e- \& Q+ w0 \2 r, v
becomes VCC 1 0 PULSE 0 1 0 1U 1U; _6 h& w& x- }: C4 o
0 z  H% A4 O3 }9 V4 b5 X
6. Use the .OPTIONS RAMPTIME=xxx statement to ramp up all of the sources.4 f" g0 T  v% J* A( y' @7 E7 d
Example: .OPTIONS RAMPTIME=10NS( L' M7 ?2 I: \3 f  ^
9 K# _5 t3 R7 n7 Q# b
7. Add UIC (Use Initial Conditions) to the .TRAN line.
; b8 |0 f3 a% z! T+ OExample: .TRAN .1N 100N UIC, \1 N  k: Y4 C2 B" b, [
& t# H; j( }0 u' b7 S
8. Change the integration method to Gear (See also Special Cases below).
7 x# ?6 M* e$ \% sExample: .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時不確定的node
, m1 o4 O+ g1 Z8 f/ s加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等是有可能降低仿真精度的,使用时要特别注意;
6 `: c) Z/ @( w3 c6 }在电源给一个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
我之前也遇過類似的問題: k7 u: p6 h1 Y( b+ U1 V
baker 的書(舊版的)有提到收斂問題主要是調整 ABSTOL VNTOL RELTOL 這三個參數* u4 s; @0 F8 l# k6 F2 C1 ?, I
這些參數是絕對電流容忍度 結點電壓容忍度及相對容忍參數
! G. \) E* e6 v根據spice的版本有不同的default值 $ U5 T7 _" D* b2 {
設置可以改變疊代的次數 ITL  P: \6 m+ T/ h' U4 Q
2007似乎是default到100(ITL=100)
8 e" C$ q1 \. B0 {再來就是電路上的問題7 z; G9 t) h- l6 n7 L% ?* u
可能是變容比值或增益造成不收斂點' L% {' f+ b0 }' x+ n
可能要檢查一下回授的參數; r* N! R# }, ?& [% N
UIC好像沒有明顯的作用(誤?)/ X7 T2 b4 p7 n  m  e, Y& j( H

+ t9 Z- x* T& o1 M6 ?, x0 c2 `+ K+ {$ t8 |) L
以上是小弟一點點的經驗: V0 j% r6 u( y% ?* ]5 u
景供參考
作者: jackrabbit    時間: 2010-7-6 06:35 PM
以個人的經驗, 我會建議參數下越少越好8 ?: |" e5 C! L5 g, V' \: ?5 g! p
如果一個電路必須加了一堆參數才能模擬出結果, 我會覺得這個電路不夠robust( X, c( d8 O  M
我也試過用iteration什麼的加了一堆, run一個簡單的DFF 接成的除頻器都可以掉clock或跑出glitch...
/ n. n' h  K5 W$ F  ]% q從此之後我就保持option只設定accuracy 跟 method 兩樣, 頂多再設個小數幾位之類的~9 U7 b1 I) z! I5 ]3 A( U
& g$ c# U; R. h
當不收斂發生的時候, 我第一個會建議的是加trigger source
. \- Z0 ~  H9 x3 M1 Kpower 用ramp (快或慢都可以試看看), 有多組power就多設幾個試試, power直接給DC很容易不收斂的!!
+ U9 `- n# m0 g& y有power-down訊號的可以寫pwl 去toggle它, 也會有幫助+ D0 \6 H8 d/ N4 O( K" t/ k1 A
再來, probe current 很容易不收斂, 可以先拿掉看看; 減少floating/unconnected nodes, 這好像都跟演算上會扯到無窮大有關, r$ T; J* V2 ^9 o. i% j0 g
再不行的話, 加initial condition, 去寫 .ic/ .nodeset 等等+ A5 R3 G; i" X# W$ ]7 e
這些試過都不行....我會先把電路拆成小block run過, 確保都正確動作後, 再check system 接線有沒有問題
2 f( n1 O+ n7 \# c最後, 才會去試下參數..../ ?; R" g+ e9 X8 L
以個人經驗, 通常加trigger source 還有不probe current, 幾乎可以解決掉八成不收斂的問題2 m$ u7 V" f7 n% b  D9 K' u
記住, spice說timestep too small只是告訴你不收斂, 不是真的把timestep加大就可以跑!!
作者: cyan215    時間: 2011-11-2 11:15 AM
原來是不收斂的問題~( D2 `+ q" A$ ^4 I
4 H- A2 O; c* S* l" ~+ V, i0 c
參考版上大大的資訊試試看~
作者: kmchen3089    時間: 2011-12-26 12:26 AM
Dear all * p6 K( N6 R2 D9 j' {. ^& ~
My name is Kuan Min Chen( @1 l, ]' i7 t+ A3 [
I am analog designer from Taiwan Hsinchiu
/ i& ]. w4 \4 n& }+ |To help junior analog designers in Taiwan,( Z) F' M! [6 I& K$ E% R1 R
I provide my experience (about 10 years) to share with you about issue of time step too small !( }* w5 F8 g* v+ k
Part 1 about issue of time step too small by Kuan Min Chen
' }# d0 m1 A. b8 l
+ K( T# i6 f8 G' Q1. first 用HSPICE跑analog simulation出現time step too small 有可能發生在t=0 (initial state)
0 v2 j4 a8 I7 `3 n( t or when t=t1 (t1 is less than hspice simulation stop time)  ,而為何出現time step too small
9 X1 n) _/ p3 m! Z 之訊息,為因為 Hspice 只是一個計算器, 它對電路建立K.C.L & K.V.L equation matrix & use Newton-Raphson algorithm to solve the root of matrix equation,+ C2 \& ^+ r) m5 O
且它會對很多時間點做計算,且比較相臨時間點間之電壓或電流值之差距 ,如數學上,若一曲線8 o  Y! M; @; c4 I! x0 c" U
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 值仍然較大,
, Y/ Y* }. U5 O8 o4 p故Hspice再減小dt value, 可是因為y(t)在t=ta發生不連續, 故Hspice即使將dt值弄到很小很小 ,而delta_y 值仍然較大,故Hspice放棄了,而認定此曲線1 ]5 y6 Y1 c$ ^$ [7 p
y(t)在t=ta發生不收斂, 而因為Hspice將dt值弄到很小很小, 故出現time step too small之訊息(because dt is dynamic time step value),且因為Hspice認為電路有連續時間之特性so Hspice不跑了,總之出現time step too small 代表發生不收斂# v( m4 m/ J9 ~/ N9 n! Y# q# [

/ c+ u2 W7 f3 m0 c6 G2 .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 1999
- j/ l4 z% ?. g- H* S4 O) s) u1 E( G) T; K9 N% J( Y
3. 將GMINDC 及cshunt值調大雖然有助於收斂,但GMINDC 及cshunt為原本電路中不存在的東西,故GMINDC 及cshunt值調大,則模擬結果越不可信
5 t, ^9 p& B& b; @+ [7 h3 b! h9 s1 X/ ?5 [' O; @
4設定 .OPTION runlvl 中runlvl值越低雖可解決不收斂,但模擬結果越不可信,9 \1 X+ {, }5 P4 r# \0 H& B
Hspice預設runlvl=3 而runlvl值小於3模擬結果越不準確,) A1 C/ T( e  u. @
runlvl值大於3模擬結果越準確
( z" y& R% g: ?6 W5 o4 k1 C& A* s+ J+ `% b
  b& r6 a6 a$ c5.有時不收斂是因為Fab所提供之spice model有問題, 越便宜之Fab的spice model越有問題; H3 z$ j( P% M% w) D
,因為便宜沒好貨,若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
# e  T& W* c% i4 F% n) j% J. N( ^+ s0 l. n3 I- B1 t1 X  z1 w

# b5 }8 ]" I7 F4 Q* v6 POWER電源由LOW升高到工作電壓有時也可以解,(指如 vdda vdda 0 pwl(0ns 0v 100ns 0v 200ns 1.8v),則在0ns~100ns之時間內因為節點狀況皆相同,故在t=0處會收斂可跑,但不代表在t=1000ns處會收斂
3 D, j) p$ R4 w. h& ]; _) B) v" P# z' U
7檢查電路中的雙穩態電路(latch, DFF等),because 雙穩態電路在t=0處 ,because雙穩態,故Hspice易猜錯, solution is to先將雙穩態電路(latch, DFF等)reset
# {) a, B9 R/ R5 y8 d( v9 `* ~, F; s8.有時稍微改變vdd and temperature value 則可解決收斂問題,4 _, v- W; [7 \9 ^
如原本要vdd=1.8v ,temp=60 but不收斂,則試vdd=1.82v ,temp=62# |3 Z. b+ _/ m" X/ S7 Y
Or vdd=1.78v ,temp=58 等組合
, c5 {2 O4 K! D! Z/ R( j- g7 V7 D  ?3 u2 G% O% q* `
9.set initial condition to the critical node of your ckt ,對t=0處之收斂問題有些幫助4 ], ?6 z  R' W/ b* O' B* l3 M  L- l
但不是萬能的,因為若你的電路太大且結點太多時,
! m! ]0 e, _% \5 ^# [我的經驗是將你跑過成功之檔案之initial state file存起來,
* G  e7 g7 j3 M  n, U& c% ~讓無法收斂之檔案去呼叫該initial state file, 且由hspice *.lis file
" n! }) Y7 Q: i! A! y  z內,其會顯示那些節點有問題而再去改存起來之initial state file. N% Y6 w( a$ S: t& j# h8 z0 Y- ~- {
內之那些節點之value ,而如此多試幾次, n2 G9 Y  o2 n* g# a2 y! _" I
' K: q/ V2 @; u  B. i
10增大疊代次數ITL4有一定程度之幫助,但在Fab所提供之spice model有不連續問題時,7 j  ]; ]# S$ |( [. B- v& S: S
還是沒用 ,因為若本身即為離散點,則試多少次還是發生離散' d" q) ^" _0 G& J
! P: c& N1 v6 R1 s
11 注意你對電路之所有輸入及控制及工作電壓及溫度之設定是否正確或是否合理,* x; f% a! K5 P! P0 b4 E( o2 ]
記住Hspice 只是一個計算機,它只是幫你解K.C.L & K.V.L equation,
8 e+ [( t) o  u" x而你的電路架構及對電路之所有輸入,及控制及工作電壓及溫度之設定之不同,即等同於你製造出之K.C.L & K.V.L equation之不同,  若你製造出之equation本身就無解,
! z) K# b- d- T; e則Hspice發生不收斂,且不跑了是理所當然的, 記住Hspice 只是一個計算tool
' X4 p2 M' O! M# x1 T* Y: o- W- `: D2 i. _" b$ x
12.活用上述之2~11點之心得則可以解決大多數之不收斂問題
# w1 D( D9 ?5 ^: q. M5 u7 d5 G3 n- V' J! O7 O" H  ]/ V5 Q
希望此文對於台灣之類比設計之入門者有所幫助
作者: e2000    時間: 2012-1-4 02:33 PM
下.IC或者給某個節點一個電壓值6 ~6 N: e; P9 l% x8 L
不然就是改變電容值,或者是像某些大大說的變time step就可以了
: \: o% M8 X0 o8 R使用手冊上面有針對不收斂的問題解決辦法
作者: chris020    時間: 2013-3-21 09:10 PM
你沒說你電路是什麼,1 G6 \: D' i3 e1 G( O1 k3 J
像是ring osc ,SR-latch等..有回授的..要給初始條件




歡迎光臨 Chip123 科技應用創新平台 (http://www.chip123.com/) Powered by Discuz! X3.2