Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

搜索
1 2 3 4
123
返回列表 發新帖
樓主: d8731502

[問題求助] 用HSPICE跑analog simulation出現time step too small的錯誤

  [複製鏈接]
發表於 2009-11-18 15:33:22 | 顯示全部樓層
有遇到此問題的人都知道這是因為電路在Hspice模擬時發生了不收斂的問題,最簡單的方式就是加上initial value或者是加上一些加速收斂的指式即可…
發表於 2010-7-1 13:44:23 | 顯示全部樓層
小弟是新手 謝謝大家分享經驗
發表於 2010-7-4 19:41:43 | 顯示全部樓層
我之前也遇過類似的問題
: I* H0 L% D9 w/ p$ e) Kbaker 的書(舊版的)有提到收斂問題主要是調整 ABSTOL VNTOL RELTOL 這三個參數/ L" r8 y: i1 ?+ U" R0 Z
這些參數是絕對電流容忍度 結點電壓容忍度及相對容忍參數
% O* W* F9 l2 ]! k根據spice的版本有不同的default值
! T8 |, D4 C: Q7 W" H* @8 J設置可以改變疊代的次數 ITL
" f+ N( \. p$ x! B" @7 W1 z2007似乎是default到100(ITL=100)
/ N' A! n' }& W再來就是電路上的問題5 e+ I% Z! f: u* x# S2 Y
可能是變容比值或增益造成不收斂點
- j6 ^5 r7 \2 o可能要檢查一下回授的參數# V; \' Y& \; ?0 h
UIC好像沒有明顯的作用(誤?)) V2 ?8 {, I" y& `
# x* Y3 e, k; u! a3 ~. @
0 Q) n9 g6 W. [! {  E/ v& @& m0 G
以上是小弟一點點的經驗
# n, H9 t# {. n: i景供參考
發表於 2010-7-6 18:35:26 | 顯示全部樓層
以個人的經驗, 我會建議參數下越少越好
- ~0 K4 _  @3 B/ ~7 l如果一個電路必須加了一堆參數才能模擬出結果, 我會覺得這個電路不夠robust
4 g- L! X5 w; ?5 Y# d我也試過用iteration什麼的加了一堆, run一個簡單的DFF 接成的除頻器都可以掉clock或跑出glitch...
- W, M/ I& j0 h1 `+ g1 ]' l7 H% G5 i: D從此之後我就保持option只設定accuracy 跟 method 兩樣, 頂多再設個小數幾位之類的~8 ^. O" m! O% X2 A' q9 A0 H% F4 x3 w
  D- n! L6 I# e6 k
當不收斂發生的時候, 我第一個會建議的是加trigger source
+ y+ n' A1 l+ n( i$ Q, Wpower 用ramp (快或慢都可以試看看), 有多組power就多設幾個試試, power直接給DC很容易不收斂的!!* }, S4 ^+ P8 Z% k" s8 ^
有power-down訊號的可以寫pwl 去toggle它, 也會有幫助
9 m3 G7 X( X3 ^再來, probe current 很容易不收斂, 可以先拿掉看看; 減少floating/unconnected nodes, 這好像都跟演算上會扯到無窮大有關9 g% Z# [& x9 H4 I' G) B
再不行的話, 加initial condition, 去寫 .ic/ .nodeset 等等" B' y( p2 e! _
這些試過都不行....我會先把電路拆成小block run過, 確保都正確動作後, 再check system 接線有沒有問題; u" v9 D. d. Y) l
最後, 才會去試下參數....# f* _  E. M: `+ ^
以個人經驗, 通常加trigger source 還有不probe current, 幾乎可以解決掉八成不收斂的問題4 S$ V" r/ V- ]  d- ^
記住, spice說timestep too small只是告訴你不收斂, 不是真的把timestep加大就可以跑!!

評分

參與人數 1Chipcoin +3 收起 理由
poseidonpid + 3 好的經驗分享

查看全部評分

發表於 2011-11-2 11:15:00 | 顯示全部樓層
原來是不收斂的問題~
! f$ Q) x6 N- X& x, H* A
$ S4 L0 }) G/ U. y( |參考版上大大的資訊試試看~
發表於 2011-12-26 00:26:55 | 顯示全部樓層
Dear all
7 W* y2 U8 d& ?/ u" X& t( {My name is Kuan Min Chen
" j0 [9 T7 r( ]5 R' V3 }I am analog designer from Taiwan Hsinchiu
, ~" }  [& p; \+ d" z) ^! F  f" HTo help junior analog designers in Taiwan,) t& G$ ~+ Y8 S
I provide my experience (about 10 years) to share with you about issue of time step too small !
- c' l  q/ ?* w& iPart 1 about issue of time step too small by Kuan Min Chen
, N7 F6 r: f7 p4 m2 C/ U6 ]3 D- B. h4 Z6 x
1. first 用HSPICE跑analog simulation出現time step too small 有可能發生在t=0 (initial state)  _( ~: K% N, R
or when t=t1 (t1 is less than hspice simulation stop time)  ,而為何出現time step too small , ]: g4 w  G$ [% u. E
之訊息,為因為 Hspice 只是一個計算器, 它對電路建立K.C.L & K.V.L equation matrix & use Newton-Raphson algorithm to solve the root of matrix equation,
: [* ~! ~$ [. g3 h. L9 N, v% [且它會對很多時間點做計算,且比較相臨時間點間之電壓或電流值之差距 ,如數學上,若一曲線
9 c- B, l9 o6 u3 My(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 值仍然較大,
! @" L* \: |7 ^/ d, W, r5 C; P7 t6 H故Hspice再減小dt value, 可是因為y(t)在t=ta發生不連續, 故Hspice即使將dt值弄到很小很小 ,而delta_y 值仍然較大,故Hspice放棄了,而認定此曲線6 a3 N$ C; H" E! r! K$ Q1 ^: y
y(t)在t=ta發生不收斂, 而因為Hspice將dt值弄到很小很小, 故出現time step too small之訊息(because dt is dynamic time step value),且因為Hspice認為電路有連續時間之特性so Hspice不跑了,總之出現time step too small 代表發生不收斂  m3 E- N% z2 q
8 G1 K2 Z# u& B% W( A' h9 t+ [
2 .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$ e) b  ~( X; V1 @5 ^* F8 \

! p' ]; X/ ~& `9 O3. 將GMINDC 及cshunt值調大雖然有助於收斂,但GMINDC 及cshunt為原本電路中不存在的東西,故GMINDC 及cshunt值調大,則模擬結果越不可信
1 u' }0 Y# T* J; G0 i
, Z6 y. M, k, n8 u) Y3 g; i4設定 .OPTION runlvl 中runlvl值越低雖可解決不收斂,但模擬結果越不可信,; e: Z" x$ B4 {
Hspice預設runlvl=3 而runlvl值小於3模擬結果越不準確,
& L0 ~% D9 H/ ~! L3 wrunlvl值大於3模擬結果越準確
, Y4 w" X! \' m" @1 U6 d. v8 c* m1 H! I( T& ~" i) B% W
5.有時不收斂是因為Fab所提供之spice model有問題, 越便宜之Fab的spice model越有問題) W: r% p+ i$ ~+ P" p
,因為便宜沒好貨,若Fab無法解決,則改跑無收斂性問題之tool如nanosim,但其正確性比hspice差(誤差在10%內)
發表於 2011-12-26 00:27:40 | 顯示全部樓層
Part 2 about issue of time step too small by Kuan Min Chen
2 m  q6 ?, j! D2 c6 C( Y
! Z' j$ Y& T' m: j. B% ]
+ c  D, T' ^  H6 POWER電源由LOW升高到工作電壓有時也可以解,(指如 vdda vdda 0 pwl(0ns 0v 100ns 0v 200ns 1.8v),則在0ns~100ns之時間內因為節點狀況皆相同,故在t=0處會收斂可跑,但不代表在t=1000ns處會收斂
& v0 P/ J7 p9 \( D
7 m) I2 V9 j" s4 z4 R6 E( n/ s  H$ j7檢查電路中的雙穩態電路(latch, DFF等),because 雙穩態電路在t=0處 ,because雙穩態,故Hspice易猜錯, solution is to先將雙穩態電路(latch, DFF等)reset
$ f- G; X* j6 {: d( F4 E& I; C8.有時稍微改變vdd and temperature value 則可解決收斂問題,4 l# A# v& P4 O0 R
如原本要vdd=1.8v ,temp=60 but不收斂,則試vdd=1.82v ,temp=62
4 I0 V2 z) Y2 V# r/ ~" AOr vdd=1.78v ,temp=58 等組合
: v, g6 c" l1 m9 m4 I) m$ a2 c& g9 g6 I$ S
9.set initial condition to the critical node of your ckt ,對t=0處之收斂問題有些幫助) x* v: W; e; x" L/ ^6 B
但不是萬能的,因為若你的電路太大且結點太多時,* l8 t5 p2 e4 o3 i" n
我的經驗是將你跑過成功之檔案之initial state file存起來,4 x; `2 @  [7 d7 R/ [  z4 y- l% P% G
讓無法收斂之檔案去呼叫該initial state file, 且由hspice *.lis file" I) u& t% |9 D. p& w
內,其會顯示那些節點有問題而再去改存起來之initial state file
* O# D  z2 m; C內之那些節點之value ,而如此多試幾次- ?$ L* g# T* T: X4 Y6 h7 c

  ^( L+ h- P& `% r/ b0 A8 e10增大疊代次數ITL4有一定程度之幫助,但在Fab所提供之spice model有不連續問題時,6 c5 V3 I; O! ]' [! w0 U* d; r
還是沒用 ,因為若本身即為離散點,則試多少次還是發生離散( |/ t2 k& p% ~1 S/ s0 M4 m) p/ m
$ i$ t6 t: j6 d* P1 _
11 注意你對電路之所有輸入及控制及工作電壓及溫度之設定是否正確或是否合理,
( K2 U, W! c/ I4 ^2 y$ h% ~. e+ {記住Hspice 只是一個計算機,它只是幫你解K.C.L & K.V.L equation,
& ?& j, Y6 Q  _' c6 G而你的電路架構及對電路之所有輸入,及控制及工作電壓及溫度之設定之不同,即等同於你製造出之K.C.L & K.V.L equation之不同,  若你製造出之equation本身就無解,
0 p- s2 W5 T- X, W  y  b7 i則Hspice發生不收斂,且不跑了是理所當然的, 記住Hspice 只是一個計算tool% _  l- k! K! _

9 D( l) f( W6 Z( g) x5 e; ^; z12.活用上述之2~11點之心得則可以解決大多數之不收斂問題4 ~0 {+ J2 e) J& x' I9 T

# l* C: m, f! ^8 A3 d6 s希望此文對於台灣之類比設計之入門者有所幫助

評分

參與人數 1感謝 +10 收起 理由
lonppupu + 10 讚讚讚!

查看全部評分

發表於 2012-1-4 14:33:11 | 顯示全部樓層
下.IC或者給某個節點一個電壓值3 U2 K$ d6 {% M8 R
不然就是改變電容值,或者是像某些大大說的變time step就可以了: `' ~8 g% Z4 o( Z7 z
使用手冊上面有針對不收斂的問題解決辦法
發表於 2013-3-21 21:10:02 | 顯示全部樓層
你沒說你電路是什麼,
" _% J# z$ q* ?9 K0 l像是ring osc ,SR-latch等..有回授的..要給初始條件
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

首頁|手機版|Chip123 科技應用創新平台 |新契機國際商機整合股份有限公司

GMT+8, 2024-4-18 07:44 PM , Processed in 0.112006 second(s), 16 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表