Chip123 科技應用創新平台

標題: 請問Hspice-transient分析的疑問與FFT,感恩!感謝!麻煩了! [打印本頁]

作者: henry90176    時間: 2009-7-21 12:59 AM
標題: 請問Hspice-transient分析的疑問與FFT,感恩!感謝!麻煩了!
小弟我在模擬一個簡單MOS switch取樣電路的解析度時有一個疑問,
8 L8 Y) P: x  ~3 d4 h5 K1 Y+ i以下是我的CODE:
- y; r5 X6 B; F4 ^6 jvclk vclk gnd! pulse(0 1.2 0.125n 0 0 0.125n 0.25n)
0 j: d' d2 e: P  v- f6 b! C) wvclkb vclkb gnd! pulse(1.2 0 0.125n 0 0 0.125n 0.25n)) }" V* h4 t8 a' z# n9 l5 ]: [
vinp vinp gnd! sin(0.8165v 0.2835v 0.125g)& K4 m( n' ^! U& B! t. Z% C
vinn vinn gnd! sin(0.8165v 0.2835v 0.125g 0 0 180)
" d' [) d. N$ M! R.tran 0.25n 8.1875n
  S- C$ a6 k, D2 w2 T& T.fft v(voutp,voutn) start=0.1875n stop=8.1875n np=32 freq=0.125g8 F( L* x! [8 w! K1 i5 }
以上幾行,表示我的CLOCK=4G,
* t' L1 L8 B' e* s# I8 m5 W想請問各位前輩".tran 0.25n 8.1875n"這一行的取點間格對嗎?是0.25n嗎?,
6 ]0 J2 ~2 ~7 I! f+ x6 y% k" ^那如果我取 ".tran 0.0001n 8.1875n" 又會有什麼影響?- ~) C- K1 ^& e! m% U: a# }& Z
我有爬文看過相關的討論,結果發現.tran的取點間格,都是為sampling time,但我這裡有了一個疑問了!為什麼?
% \, U: x$ P5 m0 n/ c/ y7 e6 h以我的認知,m*Tin=n*Tsample這個規則是指做DFT的Data要符合,所以與transient分析無關,
9 |( b# d# |0 ~5 E. @: q& G$ ?只要我.fft v(voutp,voutn) start=0.1875n stop=8.1875n np=32 freq=0.125g此行下的間格讓做DFT的DATA時間間格為0.25n
- C( r5 \9 l7 Y2 Y就好,但是我問過別人也看過其它討論,似乎得不到相關的答案,/ N+ p0 p% j4 u& U5 E; h) x
當然,如果結果沒差,就沒差了,但是重點在於若此電路為一與時脈有關之電路,我發現.tran 0.25n 與.tran 0.0001n 將會有很大的差別,因為我去跑transient的結果發現,因為取點的關係,spice會將clock當做一有Tr與Tf斜斜上升的波,並非我原本設定的漂亮方波,7 ?; t) `: @8 L  K* k
造成嚴重的distortion在clock-edge處發生!  p7 F( T; R) |5 Z7 B, t, _$ ~$ k
我的問題是,做transient分析時,取點的間格大小不是不會影響電路嗎?只是取出此電路輸入一訊號後,在絕對時間的x(second)某點的值6 }( Y1 n% k; ?$ X+ @
,所以只要我取到的絕對時間相同,那跟我取的間格不是無關了嗎?! e' f4 P0 C/ S1 L" H
我有去做過與時脈無關之電路的模擬,的確與取點的間格無關,某點某時的電壓值是固定的,
! Q( A6 ]0 r0 ~; P6 j0 s但...那與時脈有關的電路呢?
; a  A9 r0 ]8 }, T& G7 i我覺得spice-transient的運算似乎是把某時的時脈電壓取出,而在沒取到的點做一線性方程計算出值,再內差出所需DFT-DATA-TIME的值,再代入運算得頻譜,但!我的CLOCK並非如此糟!: x, }' ]& K; a; Q8 g8 X" k: u% w
寫了一大堆..在於這個問題困擾了很久,所以才上來請教各位前輩,在此先再感謝!
& H1 F  C% c2 S/ S不知道以上所說對不對?
3 _6 l7 q8 G9 g* {/ N5 h, l# ]還有,若真的與transient分析取點間格無關,那我又要取多細呢?是否與我提供的時脈品質有關呢?
, w; Z) d5 W0 V2 X2 p& j感謝!!!感恩!!!9 k, @) b0 @  {

( @* T% o3 @- ?7 I" l; p[ 本帖最後由 henry90176 於 2009-7-21 01:00 AM 編輯 ]
作者: finster    時間: 2009-7-21 11:18 AM
我個人比較不建議你使用SPICE中的FFT指令& u/ }0 |+ t) z$ |8 C" N5 m4 k
我之前也曾用過SPICE中的FFT指令,結果出現的waveform和值都很奇怪,試過好幾種設定,但一直不甚正確& C$ S* `+ A0 }( P* V; n. x8 o
後來,我是把SPICE的結果用.print或者用.measure的方式把結果存成.txt檔,然後再用MATLAB去計算FFT,結果其waveform和值就正確了8 S4 y6 I& g) n1 _
SPICE中的FFT我不知道其用法有何特殊之處,但我曾問過不少使用過SPICE的FFT的同事,回答皆是難用又不確定其正確性
3 S/ g9 M( `+ x' z: A故而,建議你別困在SPICE中的FFT
作者: hyseresis    時間: 2009-7-21 01:27 PM
同意版主看法,HSPICE的FFT真的不好用,我的經驗是HSPICE的FFT跟MATLAB的FFT相比較
( L) R* m: x* e; ^2 BMATLAB的FFT其SNR好很多,但是前提是你HSPICE所print出來的數值要正確.
$ e2 C1 ], W$ A0 s4 \相關的MATLAB code跟如何取點其實網上很多.
* W; F$ p. p0 V目前也正在學習,可以互相學習,交流.
作者: henry90176    時間: 2009-7-23 12:29 AM
感謝 finster 和 hyseresis 前輩,恩,經過我與學長和老師討論的結果也是如同各位說的一樣!
! W! O' G. [9 P, H( J我想,不應該在這邊打轉太久,感恩!
# R$ N% A/ `" h8 E....只是我在這邊就浪費一個星期...感謝!
作者: chungming    時間: 2009-7-23 11:52 PM
我試過spectre FFT or PSD function和matlab跑出來的值是幾乎一模一樣的# S; v* W4 A9 t8 k
用spectre或hspice因為其模擬軟體計算方式需要一些較特殊的方式給訊號頻率, D# Z7 @& B& R8 g% v9 E
才能得到正確的數值
6 [: |2 G8 @; Z; s- O可以參考:. d* H! h. m0 X& y
http://www.edaboard.com/viewtopic.php?t=166042&highlight=
作者: henry90176    時間: 2009-7-24 12:25 AM
感謝 chungming 前輩,原來還有一個這麼好的論壇,只不過是英文的...2 p9 Q& S0 x8 d6 i2 u+ T% C
恩..後來我有模擬出來了!改善後的頻譜結果跟transient看到的東西感覺連接的上了,感恩!




歡迎光臨 Chip123 科技應用創新平台 (http://free.vireal.world/chip123_website/innoingbbs/) Powered by Discuz! X3.2