Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

搜索
1 2 3 4
查看: 37995|回復: 24
打印 上一主題 下一主題

[問題求助] 如何使用Hspice模擬MOS的導通電阻Ron

  [複製鏈接]
跳轉到指定樓層
1#
發表於 2008-4-19 21:41:29 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
把電晶體當開關使用時,請問大家都是如何用Hspice來模擬電晶體的導通電阻Ron呢?
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂43 踩 分享分享
2#
發表於 2008-4-19 23:21:35 | 只看該作者
同問,同問,最近在仿真bootstrapped switch 不知道如何用Hspice跑出Ron,想問問大家
3#
發表於 2008-4-20 11:19:25 | 只看該作者
利用公式V=IR即可
- }, W  n, t* |6 @" v( j2 @% l5 j在HSPICE中利用PRINT寫來計算元件的(Vin-Vout)/I即可用awaves畫出元件的Ron電阻4 F$ }* |% T( Q( {! D; Z/ t
要特別注意一點的是,如果mos是內建的,那要留意外部電感的電流大小會"間接"決定mos的大小,或者mos是外接式的,那你直接看外部mos所提供的spice model大概就可以了
4#
發表於 2008-4-20 23:18:53 | 只看該作者
喔,嘿嘿,是finster版主啊,對啊就是V=IR啊,真是faint,原來我用錯電壓了,我錯用成Vout/I了怪不得不對呢,
5 R7 N% ]% s9 r+ ?' E+ W
) a6 w5 r( j  S; {谢谢您的解答!
5#
發表於 2008-7-7 00:05:00 | 只看該作者
這個問題剛好是最近一直困擾的問題
; g% m1 l# r( e; h4 a1 b為何不可以(vout-vin)/I阿
# i" y1 ?% x( H# `0 o3 K下面是我寫的spice檔
. N( @8 K/ v! Y" ?, om1 vin vdd vout vss nch3 w=3.5u l=0.35u
- X2 U3 D/ H+ Y3 a6 {r1 vout 0 1k
! i+ L/ n  `- S8 x3 X) f  _在.print部份. E9 _1 `( |6 h/ F: q4 N- w
是要寫 "v(vin)/v(vout)" "(v(vin)-v(vout))/i(r1)" "(v(vin)-v(vout))/i(m1)"呢& M8 g$ [& s, P
可否幫忙解答?1 A$ `! _/ w) Z% W5 h
thanks
6#
發表於 2008-7-7 09:52:23 | 只看該作者
原帖由 dogst 於 2008-7-7 12:05 AM 發表
$ @3 m3 B+ S' h這個問題剛好是最近一直困擾的問題8 A- U0 d" b/ W& S. @/ W% ~7 n- v
為何不可以(vout-vin)/I阿
# C5 t) N6 v, `; t5 Q3 c下面是我寫的spice檔, q/ b" U: H" Z5 a# w
m1 vin vdd vout vss nch3 w=3.5u l=0.35u& `! F# L) T. @4 A% R* G' p
r1 vout 0 1k
5 H) S4 _9 f' v) u5 J在.print部份: F3 x: g8 P# L+ y
是要寫 "v(vin)/v(vout)" "(v(vin)-v(vout))/i(r1)" " ...
4 C! B5 B& O1 [/ F% a

, `* d$ }: o; l; Y: P8 V  w. S
: V# r' D3 J3 E( t0 I) ^: j  D" n( R7 _
建議你不要加r1 vout 0 1k
' J0 [$ I  r/ v. e4 U因為你要對NMOS作計算ron,加了r1後,電流會對r1產生一個電壓,如此一來會壓縮到m1的vout電壓
3 n! d) W$ f( `. J, y3 V建議的寫法為# H6 h+ B- j& Z4 e2 ^( `8 C2 _% i
m1 vin vdd vout vss nch3 w=3.5u l=0.35u m=16 H% g' N+ w1 V1 I% P$ G" W
vvin  vin   vss    vss
6 `0 g3 E$ z" h- U* Zvvout vout  vss    vss
+ p' K0 M- }$ I3 m& W) O% ~$ }.dc vvin 0.001 3.3 0.1
0 c; i( Y4 r- W! p3 l8 x.print PAR('(v(in))/abs(i(m1))')/ ~% X" S! m5 g
.print i(m1)
7#
發表於 2008-7-7 15:37:14 | 只看該作者
嗯嗯  有沒有加電阻  真的有差  謝謝2 r, t% G7 C* O9 r
可是又有一個問題(不好意思 問題真多 多多包含)
$ L+ p8 X& o3 o! |+ Qvvdd   vdd   0  3.0v
; U0 A8 |$ U+ `" U; L: ]vvss   vss   0  0v ' J. R% {) t* L9 r6 h
vvin   vin   0  0v ( L' n6 m4 y6 J4 V$ ]( J  e) |
vvout  vout  0  0v
- _3 k! o, t! T" [m1   vin   vdd   vout  vss  nch3  w=3.5u   l=0.35u 6 A( r" [# _; p- J( W
.print a=par('(v(vin)-v(vout))/i(m1)') b=par('v(vin)/i(m1)')
: v1 S$ u- m) Q% i; C: c, U就是在vout的部份 有沒有設成0好像結果差很多耶  為何會這樣呢3 X# Q$ ~# t; D) y1 ], q/ r
還有在量Ron部份時  到底是要par('(v(vin)-v(vout))/i(m1)')還是要par('v(vin)/i(m1)')& f  n6 E# a$ g5 P/ @; ~
因為版主在回覆時  兩者都有提到  可是還是不清楚% u' r3 O$ v! K9 D- K$ R9 y. k+ A) w: h
可否幫忙解答?
8 [1 M6 e% G! E0 F! FThanks
8#
發表於 2008-7-7 17:25:19 | 只看該作者
不好意思,一時之間沒留意到4 t2 w: x0 `/ t3 T  C
應該是
# r- H% j0 |* ^) t2 F3 R.print PAR('(v(vin)-v(vout))/abs(i(m1))')7 s1 S) s" O7 c2 l; N9 V
要加abs則是因為電流有流進流出的問題,進而會產生正負符號的緣故,故而加了abs可以變成是正的" j9 c6 c. u  z4 S: o- q, W
另外,vout的部份,因為你是作.DC的sweep,而且是對NMOS,所以,source端一定要加最低電位(也就是0V)然後對drain作dc sweep
, f- G) E+ W0 W2 W4 |2 b5 ^反之若是PMOS,則是要加最高電位(亦即VDD)/ y! G! h; ?. }
這是因為PMOS和NMOS兩者對VSS和VDD有不一樣的變化
9#
發表於 2008-7-7 18:04:27 | 只看該作者
順便來請教各位大大
$ Q' K; h+ S# O: j有在其他書上看到( @' O0 u& x1 A
.print dc RON=par('1/LX8(mn1)')4 k9 G" y: p+ w. J
這個指令似乎也能看RON的電阻值
! L; h4 K8 c2 Z2 I不過不太了解這個指令的意思?
10#
發表於 2008-7-7 20:41:52 | 只看該作者
原帖由 finster 於 2008-7-7 05:25 PM 發表
- J, j' O1 {# Z9 }* V不好意思,一時之間沒留意到5 y; @8 v! i) i- a6 Z5 Q- a( m& b
應該是! b* v) i6 K6 y# ]' ^. l; C, @8 ~
.print PAR('(v(vin)-v(vout))/abs(i(m1))'); \9 `1 D# k' g  U; S( K9 x7 o2 u
要加abs則是因為電流有流進流出的問題,進而會產生正負符號的緣故,故而加了abs可以變成是正的
$ k* x' \6 s& M5 t另外,vout的部份,因為你是作.DC的swe ...
" J* X" f- V8 `0 I

; p7 `2 Y: p, F3 v. A" e) k( u, j* @8 u
嗯嗯  原來如此/ f% D) L0 H# o
意思也就是說 要寫成下面這樣子  對吧!4 o" R! Q3 g+ z/ i3 E
nmos : m1 vin vdd vout vss ........  .print par('(v(vin)-v(vout))/abs(i(m1))')
4 ^5 F2 v* \- b3 o3 j& ]% f6 _1 Kpmos : m1 vout vss vin vdd ........  .print par('(v(vin)-v(vout))/abs(i(m1))')6 r! s  s4 b' q
, F2 r# Z& Y! D, V
那如果是transmission gate的話
9 ~9 |2 i3 g" T0 U" P9 A2 Qvvdd   vdd   0   dc   3.0V
* ?0 x6 B: I% hvvss   vss   0   dc   0.0v
2 R/ j6 i( [4 K2 F1 a6 f+ Fvvin   vin   0   dc   0.0v
% U6 Z, R6 E& q8 F, Z) ^4 ^m1   vin   vdd   vout  vss  nch3  w=3.5u   l=0.35u
. K8 B3 Y4 b; q! W9 I/ O: |% P# _m2   vout  vss   vin   vdd  pch3  w=3.5u   l=0.35u  
( A% Y: n3 j3 C8 K! ^7 \6 w那麼在.print部份的話  要怎麼寫
2 u" F. F. e+ [' D: k. F: X  K$ G, d因為他不像nmos或者pmos一樣  只有m1的電流可以除
1 s  _. j0 w: s# f) G# C這樣怎麼求Ron' v! {0 r3 \9 y  D
可否請大大解釋疑惑8 I5 P* P1 r8 W/ I
謝謝
11#
發表於 2008-7-8 09:33:51 | 只看該作者
可以是各別算出Ron,再運算8 _# k* X; t0 D: i6 J+ I
.print r_n=par('(v(vin)-v(vout))/abs(i(m1))')6 r* r3 F4 @5 D- {3 n6 o
.print r_p=par('(v(vin)-v(vout))/abs(i(m2))')
7 h: [: |" A5 X$ y" K.print r_pn=par('(r_n*r_p)/(r_n+r_p)')/ r/ M( g% Q  k8 Y" r* p
6 D& E! X. y4 k( n8 u8 l
另外一種方式則是將電流相加再作運算. G$ R* J& l* N1 s2 j
.print i_pn=par('abs(i(m1))+abs(i(m2))')2 o. y6 j, n$ j, m
.print r_p=par('(v(vin)-v(vout))/i_pn')
12#
發表於 2008-7-10 21:40:18 | 只看該作者
大大  我用了你的方法  可是結果怎麼跟書上畫的不一樣呢1 N+ l$ l7 N+ ~8 W& z
以下是我的SPICE檔
2 }; r1 k& h) G/ r* Z4 W/ \- h) |$ T) ]$ O# _7 Y( d
vvdd   vdd   0   dc   3.0V9 G6 o9 h2 ?& p  g4 }% f1 l$ w
vvss   vss   0   dc   0.0v, @, k/ G, B& @: P+ U/ n, k
vvin   vin   0   dc   0.0v
% Y' d- O# [/ g, l9 }% mm1   vin   vdd   vout  vss  nxxx  w=3.5u   l=0.35u
$ t2 O( B4 w) @+ cm2   vout  vss   vin   vdd  pxxx  w=3.5u   l=0.35u  m=4 # x0 y' D# K  A  R
6 ?7 B9 K# L: Z

$ O( G4 U/ t4 m以下是用 .print i_pn=par('abs(i(m1))+abs(i(m2))')  r_p=par('(v(vin)-v(vout))/i_pn')
* s+ f2 m) a; F0 p9 ^' T
* ]& s- Z& o$ S8 o+ A! |.print rn=par('(v(vin)-v(vout))/abs(i(m1))') rp=par('(v(vin)-v(vout))/abs(i(m2))') rpn=par('(rn*rp)/(rn+rp)')
) ^: @; V: r: X3 _4 i% r3 _7 S8 A2 f8 y5 x! R
( F6 s. o; {8 r7 i
為何兩個結果會不一樣呢
, t: e3 y, T9 b4 R% T而且很納悶的是第二個方法為何要(相乘)/(相加)1 y( q1 d# }3 s

0 E1 p7 E7 j7 k' @* }: z6 i可否請大大幫忙解答
1 x9 {% ~7 E* JThanks

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?申請會員

x
13#
發表於 2008-7-11 00:20:41 | 只看該作者
第一個方法為何要(相乘)/(相加)???+ ^' u% Y( Q: X$ r9 E( q) [
你要計算transmission gate的電阻,而transmission gate就是PMOS和NMOS兩者並聯,要求並聯電阻的阻值,當然是(相乘)/(相加),這是很基本的電阻公式計算+ I! h" r1 J; n$ v$ T# |
所以,我先計算出各別PMOS和NMOS的阻值再作計算7 M2 K3 V+ `! h" U; i: h) X
& v$ T) u% ^+ F; Z1 g9 X
至於兩種方法為何會不同1 p* ~; {( P, w1 T0 b7 O/ v  }
照理說應該要相同才對,不過,我倒是很好奇為何你的電阻計算出來是負的/ \# l2 G) i0 Y. l
這點很不合理: q  Y$ P( B; v7 T% }2 @/ |! F
難道是你的VOUT沒有設對嗎??
14#
發表於 2008-7-13 12:05:56 | 只看該作者
如果我改成下面這樣
4 o6 y; Q" E& m* u.print rn=par('(v(vout)-v(vin))/abs(i(m1))') rp=par('(v(vout)-v(vin))/abs(i(m2))') rpn=par('(rn*rp)/(rn+rp)')1 y/ M: }4 N; k9 w) F
電阻就會變正的
2 \. l3 H( ^! U# T  F# ^可是不管怎麼看  還是覺得不太對- `8 b) W1 I. f/ W  h  e

: v3 z$ B4 p6 j/ A" n/ R. r* G以下是我的spice檔$ Q8 U; U6 S$ O5 i1 _( ~6 _
vvdd   vdd   0   dc   3.0V
! Q: S* h' `( c9 q$ Ovvss   vss   0   dc   0.0v
% z9 v% D% n7 n" C$ Ivvin   vin   0   dc   0.0v
7 g7 y0 D  T" x  j1 r  ^+ D1 T( Q( g9 r5 f4 J  C
m1   vin   vdd   vout  vss  nxx  w=wsize   l=lsize : l* `6 s5 q( Q$ m6 R5 w' h
m2   vout  vss   vin   vdd  pxx  w=wsize   l=lsize  
/ N/ i( a7 _- J' w2 n$ C$ U4 j0 z7 u( V1 o4 e, v
*r1    vout  0     1k3 c% C$ f  R( o: Q; t  `) M/ Y7 w+ w
.dc vvin 0v 3.0v 0.05v  6 t$ I) q4 Y4 i/ t# p
.probe  rn=par('(v(vin)-v(vout))/abs(i(m1n))') rp=par('(v(vin)-v(vout))/abs(i(m1p))')  rpn=par('(rn*rp)/(rn+rp)')
, A! C; a; E# G5 s7 n.print  rn=par('(v(vin)-v(vout))/abs(i(m1n))') rp=par('(v(vin)-v(vout))/abs(i(m1p))')  rpn=par('(rn*rp)/(rn+rp)')
  p4 c: B) `/ g+ N8 @! `9 g( v8 g
( m! s9 W; d" D& |) V& z) W3 ~8 H.end# c3 M2 P8 l, {9 Q( `- Z% U: ^

# m) Y2 t0 n- l, ^6 T- H& ~: Y希望大大幫我檢查一下  看看是否有錯' `% r- ]: E) x# y' `" m, m
還有一個問題  就是為何不能用 v(vout)-v(vin) 而一定要用 v(vin)-v(vout) 呢
1 ^+ q9 t; ^$ Y. @- S$ t4 T, b0 \  p) s, X' m0 P( {3 D9 F. p4 a
可否幫忙解答* h3 ~. p( S$ A7 [0 w# H, r& r
Thanks
15#
發表於 2008-7-13 15:48:16 | 只看該作者
sorry  上面打錯了4 a+ U% S* \; a, l  e
應該是  rn=par('(v(vin)-v(vout))/abs(i(m1))') rp=par('(v(vin)-v(vout))/abs(i(m1))')  rpn=par('(rn*rp)/(rn+rp)') 才對: K' O2 t  J+ x$ Y, m

6 S3 K& B, \) _( S7 ?, P6 y還有想要請問一下   跑出來的模擬圖  要怎樣看電阻值呢, N* b+ j4 p# `2 ^
也就是說 NMOS 跟 transmission gate 的部分  要怎樣看. V" O) \) Z( A
可否教導一下
! x6 p/ x& z- E% K8 G+ X2 [) DThanks
16#
發表於 2008-7-14 11:23:44 | 只看該作者
附圖Noname1應該就你說書上的圖吧, E$ y/ l% X1 m; S( [+ N7 S7 ?
" j0 [1 X' l& h( p7 Y+ m
下面是我測試的transmission gate,而附圖Nonmame則是PMOS/NMOS/和PMOS+NMOS的電阻疊圖
9 I2 \7 E* i/ @8 Xmp   in     vsa       vddah vddah  P_33_G2 L=0.35u W=5u M=1: |. B6 v0 C9 c; x0 p2 x: s
mn   in     vddah     vsa     vsa    N_33_G2 L=0.35u W=5u M=1
; p% p  d2 _! Y* W5 }vvsa      vsa       0    06 P( U+ @, c4 e; P0 r
vddah  vddah  0    vddah1 `  O/ |  l! x6 O! H
vin    in     0    0
' v5 p0 }( v/ ?- I/ `3 {7 z& p.dc vin 0.05 3.295 0.005 . G. R1 M( ~5 G! M( |
.print r_p=par('(v(vddah)-v(in))/abs(i(mp))'); O+ i. _. O' w! j5 u/ c  v
.print r_n=par('(v(in))/abs(i(mn))')
8 Z4 L6 E- a4 D1 X4 w5 {.print r_pn=par('(r_p*r_n)/(r_p+r_n)')
, ~. @  S7 ]  K  U# Z書上的圖是把PMOS和NMOS各別的電阻畫出來之後,再把兩個電阻並聯計算畫出來,其中,要計算PMOS電阻,一端要接VDDAH,而要計算NMOS電阻,另外一端則是接VSA

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?申請會員

x

評分

參與人數 1 +3 收起 理由
blueskyinair + 3 您的回答解決了我對Ron模擬上的疑惑~

查看全部評分

17#
發表於 2008-7-14 22:39:06 | 只看該作者
感謝版主這麼有耐心教導我! k8 K& F/ n/ d  X) Y% n
這下子  我對開關又懂更多了2 X, w; N. X% Z; E3 Z- j
Thanks
18#
發表於 2008-7-25 11:23:31 | 只看該作者
原帖由 hiyato 於 2008-7-7 06:04 PM 發表 5 K( P* D# u- x, K  M
順便來請教各位大大
; L0 ~. [6 b; k) \: q有在其他書上看到
6 u) z  e1 w- j- c! k.print dc RON=par('1/LX8(mn1)')4 d, C( B9 r" F& I9 E, N9 I
這個指令似乎也能看RON的電阻值5 F& E- K: f0 ]$ a$ P. t
不過不太了解這個指令的意思?

7 O9 k2 m" k" t
" @3 [5 O- n. ~+ I. o' \! c7 s  VLX8(mn1)是hspice自带的一个function,可以用gdso(mn1),表示mn1的电导的大小,正好是电阻值的倒数,用它替换更直观和简单。, d) _, C* u' `1 o9 ^
.probe Ron=par('1/gdso(mn1)')
19#
發表於 2008-7-25 11:25:54 | 只看該作者
PMOS和NMOS组成的CMOS switch 电阻值写成
$ z2 y! ~8 k& `7 b1 d.probe Ron= par('1/(gdso(mn1)+gdso(mp1))') 就OK了
20#
發表於 2008-12-2 15:05:30 | 只看該作者
原帖由 finster 於 2008-7-14 11:23 AM 發表
8 k# ~# z  x  m8 L" q附圖Noname1應該就你說書上的圖吧% a9 `7 P0 D; ~. n' N
- s( _( \; i. y5 z" ~0 @# o5 n1 i  {
下面是我測試的transmission gate,而附圖Nonmame則是PMOS/NMOS/和PMOS+NMOS的電阻疊圖
9 i+ `" ^: R. I" m# e+ ]1 Ymp   in     vsa       vddah vddah  P_33_G2 L=0.35u W=5u M=1
/ n) ^) l; a- f% [8 xmn   in     vddah      ...

; O* y2 C2 s( T3 j( k- h+ J; Z" e. B7 c
" ^* l  t9 G4 G  P. D
為何2種方法跑出來不一樣??+ [7 D' Q# o' q, [  f! j

/ g) v9 X% u$ a) C8 z8 W% V4 w$ ^.print pmos_Ron=par('(v(vdd)-v(Vin))/abs(i(M1p))')
' c  A; G7 O# ~% M  Z4 y3 R' b.print nmos_Ron=par('(v(Vin))/abs(i(M1n))')
4 J8 \7 f! T1 Q.print TG_Ron=par('(pmos_Ron*nmos_Ron)/(pmos_Ron+nmos_Ron)'); c( b. r' l7 P. X$ T0 s
9 H  A' v# Y' X# j/ j* i9 Q# J& @
.print pmos_Ron=par('1/gdso(M1n)')9 o& K$ y% T8 r' {3 j5 i: q
.print nmos_Ron=par('1/gdso(M1p)'): [, t3 t, A4 U6 h' C
.print TG_Ron=par('1/(gdso(M1n)+gdso(M1p))')
: e& q+ `* C; g% X) x6 L* @3 y
) ?( u# T2 X4 ?9 o  v2 ~1 H我只PO上TG的RON圖形出來,
- F: q" h& u+ k0 J2 R( _) c上圖是用前三行指令跑出來的RON(2點電壓相減除以電流)# G) B  |8 _  a0 Y# [+ c
下圖是用後三行指令跑出來的RON(直接用電導倒數)- o) N4 f' L9 d" X0 ?- z$ o; X( y
為何跑出來的圖形不一樣,理論上應該是一樣的啊0 x8 t8 t. D, N
能否請各位大大位我解答

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?申請會員

x
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-9-28 01:18 AM , Processed in 0.207012 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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