Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

搜索
1 2 3 4
查看: 37987|回復: 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即可! j7 A4 C; ]/ K8 c& v
在HSPICE中利用PRINT寫來計算元件的(Vin-Vout)/I即可用awaves畫出元件的Ron電阻+ j5 K/ V' A, }- t3 W4 ~, Q
要特別注意一點的是,如果mos是內建的,那要留意外部電感的電流大小會"間接"決定mos的大小,或者mos是外接式的,那你直接看外部mos所提供的spice model大概就可以了
4#
發表於 2008-4-20 23:18:53 | 只看該作者
喔,嘿嘿,是finster版主啊,對啊就是V=IR啊,真是faint,原來我用錯電壓了,我錯用成Vout/I了怪不得不對呢,
  |3 [: g3 Q8 i2 T1 f5 w" y7 o
谢谢您的解答!
5#
發表於 2008-7-7 00:05:00 | 只看該作者
這個問題剛好是最近一直困擾的問題
4 }8 K& \' n+ y% \# E$ _為何不可以(vout-vin)/I阿
% j* G2 R: r! b下面是我寫的spice檔
" V& {+ e; b' S: e" Qm1 vin vdd vout vss nch3 w=3.5u l=0.35u
$ }+ h8 P8 n1 A8 ]7 P0 wr1 vout 0 1k
% @+ _' f9 |- X. x在.print部份! W5 ^& Y$ L7 C; G$ v1 H3 K7 X
是要寫 "v(vin)/v(vout)" "(v(vin)-v(vout))/i(r1)" "(v(vin)-v(vout))/i(m1)"呢
/ \+ O$ |1 ^0 t可否幫忙解答?& x! T9 i8 Y' E" g4 s) x
thanks
6#
發表於 2008-7-7 09:52:23 | 只看該作者
原帖由 dogst 於 2008-7-7 12:05 AM 發表 ) h; Q6 j/ O( U1 U# y% p
這個問題剛好是最近一直困擾的問題
) `: [* Q, E' D& G1 D6 k為何不可以(vout-vin)/I阿
% i* M. e/ k& b9 K下面是我寫的spice檔5 s; x4 I% G# k/ U" g
m1 vin vdd vout vss nch3 w=3.5u l=0.35u: {! j, X1 C3 m7 B6 q# L
r1 vout 0 1k
' Z1 _% q% s' N9 k在.print部份- m7 _7 T) n: K* i( r
是要寫 "v(vin)/v(vout)" "(v(vin)-v(vout))/i(r1)" " ...

5 M: l1 p' a2 v+ i" X6 N: v* M) U- g- c
" N) H  z8 w& J

2 Z& n# i" D/ a- B! H% ~. J建議你不要加r1 vout 0 1k
8 ~$ P1 d2 t2 ~8 r4 ~9 v: y因為你要對NMOS作計算ron,加了r1後,電流會對r1產生一個電壓,如此一來會壓縮到m1的vout電壓% d5 X' {+ p$ ]3 |* S
建議的寫法為
4 K; `8 j" V" v8 @2 Y2 gm1 vin vdd vout vss nch3 w=3.5u l=0.35u m=1
% X! [9 E" a! J0 ^; ~  f# P) u# tvvin  vin   vss    vss1 R$ P$ P1 N0 v: O- k6 t
vvout vout  vss    vss
! k- x8 k0 P: K9 E. q0 g5 \2 l" E.dc vvin 0.001 3.3 0.17 B- m7 f2 ~0 v6 P
.print PAR('(v(in))/abs(i(m1))')
0 K! V& k; P: y1 s.print i(m1)
7#
發表於 2008-7-7 15:37:14 | 只看該作者
嗯嗯  有沒有加電阻  真的有差  謝謝
* m" M( z' o, X6 c+ R5 s可是又有一個問題(不好意思 問題真多 多多包含)' |2 j8 H* a" T  t3 d. @6 C% u
vvdd   vdd   0  3.0v
& i! [2 n$ K  {3 Y8 d1 o' H0 svvss   vss   0  0v - `% q+ l1 L- j; t- U
vvin   vin   0  0v
6 N, t2 c4 t  f8 v  b3 Ivvout  vout  0  0v
0 A" D- X- m7 _3 C5 `m1   vin   vdd   vout  vss  nch3  w=3.5u   l=0.35u
: ^- _. Q; }# G3 @6 \$ S: p. I) Z$ K3 Q.print a=par('(v(vin)-v(vout))/i(m1)') b=par('v(vin)/i(m1)')1 W0 C3 v' ~( l6 Y8 a, ^3 h
就是在vout的部份 有沒有設成0好像結果差很多耶  為何會這樣呢
' l! I1 @/ A6 M# h: u- }, j( G+ L還有在量Ron部份時  到底是要par('(v(vin)-v(vout))/i(m1)')還是要par('v(vin)/i(m1)')
4 ^' D8 r2 w# P4 ^; i8 j0 {因為版主在回覆時  兩者都有提到  可是還是不清楚1 ^' Z; i) e$ K: q! l, c$ Z- p
可否幫忙解答?& f: r, w$ Z2 R! t# s. s( |
Thanks
8#
發表於 2008-7-7 17:25:19 | 只看該作者
不好意思,一時之間沒留意到
( _3 R+ W7 P# k5 y0 N應該是
) |7 [5 `5 d! R* O.print PAR('(v(vin)-v(vout))/abs(i(m1))')
) P2 H9 {! w$ z8 t! w要加abs則是因為電流有流進流出的問題,進而會產生正負符號的緣故,故而加了abs可以變成是正的
9 M, [. `* M* w, e, J. G2 g另外,vout的部份,因為你是作.DC的sweep,而且是對NMOS,所以,source端一定要加最低電位(也就是0V)然後對drain作dc sweep- c" w, [0 T$ d/ \6 U
反之若是PMOS,則是要加最高電位(亦即VDD)- e$ A, f8 K" S6 D
這是因為PMOS和NMOS兩者對VSS和VDD有不一樣的變化
9#
發表於 2008-7-7 18:04:27 | 只看該作者
順便來請教各位大大
: d- B- `# Q5 L7 g有在其他書上看到
4 p: U" |( v; J& o9 Y# F0 p.print dc RON=par('1/LX8(mn1)')
0 j0 y$ ]9 z, p7 Q, }3 C' l0 D這個指令似乎也能看RON的電阻值
" V+ H; Y+ Z# H9 S不過不太了解這個指令的意思?
10#
發表於 2008-7-7 20:41:52 | 只看該作者
原帖由 finster 於 2008-7-7 05:25 PM 發表
4 {" S. c5 x8 a% e' r不好意思,一時之間沒留意到) K$ {0 l( u0 z" f: p
應該是- a4 f$ o. x* P# ~$ R
.print PAR('(v(vin)-v(vout))/abs(i(m1))')  n4 q6 H2 r0 u. K3 p
要加abs則是因為電流有流進流出的問題,進而會產生正負符號的緣故,故而加了abs可以變成是正的+ C1 t6 Y3 c6 J' F8 J9 h0 @
另外,vout的部份,因為你是作.DC的swe ...
% A6 P/ r1 q% |' `( W: P8 _+ L& p

) L) }: W6 ?* n/ |# ~' J) m. ?' [4 d1 {
嗯嗯  原來如此! A7 h' m' h: K* I
意思也就是說 要寫成下面這樣子  對吧!
: p* d7 k2 C6 C& X) K4 G( gnmos : m1 vin vdd vout vss ........  .print par('(v(vin)-v(vout))/abs(i(m1))')
  Y7 k" `  \- R: Hpmos : m1 vout vss vin vdd ........  .print par('(v(vin)-v(vout))/abs(i(m1))')/ W* _& |3 \  ]
* R4 d9 c* a) X- o: |
那如果是transmission gate的話- h" C5 U6 I% L( s8 Y/ o: R* ?
vvdd   vdd   0   dc   3.0V$ m% o5 n' n9 t8 k2 {- {
vvss   vss   0   dc   0.0v
" d/ x( y3 ^/ O- ]+ N6 r' yvvin   vin   0   dc   0.0v
1 b# W% n0 M! H. g2 }m1   vin   vdd   vout  vss  nch3  w=3.5u   l=0.35u ; C) A, }" J5 \9 P  N
m2   vout  vss   vin   vdd  pch3  w=3.5u   l=0.35u  
1 C8 q( C! e3 V0 H那麼在.print部份的話  要怎麼寫
8 a( p! v8 O8 x) p6 ]  V因為他不像nmos或者pmos一樣  只有m1的電流可以除
& h& ]  i8 A- K$ C這樣怎麼求Ron, j& v2 b' ~+ R: |
可否請大大解釋疑惑
+ o' d% M. F7 l& M) H謝謝
11#
發表於 2008-7-8 09:33:51 | 只看該作者
可以是各別算出Ron,再運算4 }# E7 O0 ]- \9 {1 D2 L# ]
.print r_n=par('(v(vin)-v(vout))/abs(i(m1))')
% F9 y4 a) l. D' q, ~.print r_p=par('(v(vin)-v(vout))/abs(i(m2))')
$ C% S& L0 T7 i1 `.print r_pn=par('(r_n*r_p)/(r_n+r_p)')2 F$ [" o2 n( ]3 C+ \# H

$ X) W) v4 E+ o) k" C% |  Y另外一種方式則是將電流相加再作運算
! m7 a2 g% T3 d: r* ?/ w/ Z.print i_pn=par('abs(i(m1))+abs(i(m2))')
( _( v% v+ D! M0 o8 ?3 y% @$ `.print r_p=par('(v(vin)-v(vout))/i_pn')
12#
發表於 2008-7-10 21:40:18 | 只看該作者
大大  我用了你的方法  可是結果怎麼跟書上畫的不一樣呢5 q, V, P8 Y7 P7 G3 ^
以下是我的SPICE檔
5 `1 c) ?# |& _/ e% g9 C% g$ U0 {$ F  V6 k3 k4 U. u
vvdd   vdd   0   dc   3.0V- ], T8 x$ @  F6 U9 F' _7 Q
vvss   vss   0   dc   0.0v) ^6 O) h/ a# U# b+ f: m" w
vvin   vin   0   dc   0.0v$ k8 a! Q6 d, t" V4 {
m1   vin   vdd   vout  vss  nxxx  w=3.5u   l=0.35u ; g! G" z# E- |4 z/ Z/ o
m2   vout  vss   vin   vdd  pxxx  w=3.5u   l=0.35u  m=4 6 N$ V9 e7 P( M+ k8 m. ^$ x4 @
8 ~  a' w6 `8 r& i4 U9 h$ n- J5 O1 s, R

5 m6 ^! M% D' h" H, m. C! s7 Y& }以下是用 .print i_pn=par('abs(i(m1))+abs(i(m2))')  r_p=par('(v(vin)-v(vout))/i_pn')- D* _& I% B0 r7 H! ?$ H
9 `% M# q, b# l# b- ^# g2 @. ~
.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)')3 m: ^/ q" F  R* p$ q: Q' x1 ^1 O
. }7 |% b7 g$ E6 b" N
6 L, P& K0 ]% x' R
為何兩個結果會不一樣呢
. j( u; A% ?) c而且很納悶的是第二個方法為何要(相乘)/(相加)2 F5 X& u( K; b1 t/ N4 b. k
& g1 _6 c  i& }3 J
可否請大大幫忙解答4 h) R7 |7 W9 P& \
Thanks

本帖子中包含更多資源

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

x
13#
發表於 2008-7-11 00:20:41 | 只看該作者
第一個方法為何要(相乘)/(相加)???
. N0 t! R( `1 n4 H, D# Y, [你要計算transmission gate的電阻,而transmission gate就是PMOS和NMOS兩者並聯,要求並聯電阻的阻值,當然是(相乘)/(相加),這是很基本的電阻公式計算
" X6 C, Q+ }" y: C所以,我先計算出各別PMOS和NMOS的阻值再作計算
0 ~$ q# C( ?' j" E3 |3 w1 \. w' R/ C, W
至於兩種方法為何會不同
7 l2 q, g: M, J+ h# ^照理說應該要相同才對,不過,我倒是很好奇為何你的電阻計算出來是負的5 _! w& N  w, T0 V- ?
這點很不合理) N, X8 h$ A2 t$ Q+ ^. \
難道是你的VOUT沒有設對嗎??
14#
發表於 2008-7-13 12:05:56 | 只看該作者
如果我改成下面這樣
1 i2 s2 F+ q3 g  r7 t.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)')
( i. x, S1 q/ s! e電阻就會變正的
! s2 C  q( y: D1 P7 ]0 g6 B1 \1 {可是不管怎麼看  還是覺得不太對
" {  e: |0 S) T) L7 X  S
0 H( K# G' C& C2 G2 }( o以下是我的spice檔( p, Z# K' p0 \% o& D
vvdd   vdd   0   dc   3.0V
# K& q; f! Y  _1 |9 C% L% g+ jvvss   vss   0   dc   0.0v6 H- }2 x2 a( u- k( `: k! C" ?
vvin   vin   0   dc   0.0v
8 e- t# d: Z* G0 n" B/ T0 y4 v+ U9 F0 J# ^
m1   vin   vdd   vout  vss  nxx  w=wsize   l=lsize 8 u* ~* R$ P1 z2 g! i
m2   vout  vss   vin   vdd  pxx  w=wsize   l=lsize  9 }9 k9 @7 c8 z% y
9 [! E6 C9 A1 Q& R: T. a
*r1    vout  0     1k6 U5 Z) l' T- f! `- c# B/ E
.dc vvin 0v 3.0v 0.05v  
& m8 p; f/ v6 o- O& V+ s.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)')
. E4 T* ^1 b( s.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)')
3 }( r0 n& d! j8 s
  V/ `$ d# I; k2 O% w+ W8 D8 S.end3 n8 R' J6 E+ }
' `& I6 U' K. P: R, S- {
希望大大幫我檢查一下  看看是否有錯# k* C' k5 m2 m2 P5 Q
還有一個問題  就是為何不能用 v(vout)-v(vin) 而一定要用 v(vin)-v(vout) 呢
0 \: A7 P% B% o+ w7 d8 r' j+ u# _
可否幫忙解答% I3 ^, b0 ?& T' r
Thanks
15#
發表於 2008-7-13 15:48:16 | 只看該作者
sorry  上面打錯了% P' u" }; z% d0 M' x9 F' ^
應該是  rn=par('(v(vin)-v(vout))/abs(i(m1))') rp=par('(v(vin)-v(vout))/abs(i(m1))')  rpn=par('(rn*rp)/(rn+rp)') 才對
4 b% l$ A: {, [+ ^, A8 y
% S# j  i8 Z" m0 r- I' e還有想要請問一下   跑出來的模擬圖  要怎樣看電阻值呢
1 m$ t; z8 m% {6 s9 w+ F: V; i也就是說 NMOS 跟 transmission gate 的部分  要怎樣看! B; R& g; Q7 `6 y, [& v! ^
可否教導一下1 R( h* o* B  E1 C" f$ m
Thanks
16#
發表於 2008-7-14 11:23:44 | 只看該作者
附圖Noname1應該就你說書上的圖吧
% a( h) z1 L5 s0 J
, \* T- l. T* h7 [下面是我測試的transmission gate,而附圖Nonmame則是PMOS/NMOS/和PMOS+NMOS的電阻疊圖8 w1 y% ?2 V! C" f' `
mp   in     vsa       vddah vddah  P_33_G2 L=0.35u W=5u M=1
2 C. ^# p1 d( d: cmn   in     vddah     vsa     vsa    N_33_G2 L=0.35u W=5u M=1
6 N7 y# E; I' I1 e1 n. _( z% M$ M( dvvsa      vsa       0    0
  f0 @; A7 _2 c$ f% ~; q8 O7 a; d/ Dvddah  vddah  0    vddah& U& l! H* m6 x( A
vin    in     0    0; U4 f9 D9 T: c4 \8 k& j9 c  i& c
.dc vin 0.05 3.295 0.005 : }9 ]$ {0 g0 f" F( V
.print r_p=par('(v(vddah)-v(in))/abs(i(mp))')' c* M; _, ]0 F4 V# C0 {2 o9 }
.print r_n=par('(v(in))/abs(i(mn))')" x+ W6 j/ j1 j6 `' D
.print r_pn=par('(r_p*r_n)/(r_p+r_n)')2 o/ G. y, j/ U' ~- a, E6 H
書上的圖是把PMOS和NMOS各別的電阻畫出來之後,再把兩個電阻並聯計算畫出來,其中,要計算PMOS電阻,一端要接VDDAH,而要計算NMOS電阻,另外一端則是接VSA

本帖子中包含更多資源

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

x

評分

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

查看全部評分

17#
發表於 2008-7-14 22:39:06 | 只看該作者
感謝版主這麼有耐心教導我& U1 y- p# o" |; |
這下子  我對開關又懂更多了* ~: A( W$ s1 w9 z  L! R3 ]
Thanks
18#
發表於 2008-7-25 11:23:31 | 只看該作者
原帖由 hiyato 於 2008-7-7 06:04 PM 發表
, t, i& ~/ l6 ?; {# _- P% l7 ^順便來請教各位大大
% ~2 ^) \+ z# }' V2 P( l- c有在其他書上看到
, ~) N& ~: k2 e* }5 Q# ]  O/ M.print dc RON=par('1/LX8(mn1)')
$ {9 \( n7 F5 q這個指令似乎也能看RON的電阻值; w; C- H2 f6 z) L: g
不過不太了解這個指令的意思?
1 j' E8 H3 D5 J# c! W* |
7 G* Z! c0 k0 X/ B" @
LX8(mn1)是hspice自带的一个function,可以用gdso(mn1),表示mn1的电导的大小,正好是电阻值的倒数,用它替换更直观和简单。
5 }0 k3 r& H: C: d+ }& H.probe Ron=par('1/gdso(mn1)')
19#
發表於 2008-7-25 11:25:54 | 只看該作者
PMOS和NMOS组成的CMOS switch 电阻值写成
9 O. d4 N2 ~% r; {' d2 a9 a1 @.probe Ron= par('1/(gdso(mn1)+gdso(mp1))') 就OK了
20#
發表於 2008-12-2 15:05:30 | 只看該作者
原帖由 finster 於 2008-7-14 11:23 AM 發表
( y. E! S0 I9 p5 L+ e. ?9 X附圖Noname1應該就你說書上的圖吧% g9 w+ S: I9 _/ G# A% `

  r( W+ F- O  [; {下面是我測試的transmission gate,而附圖Nonmame則是PMOS/NMOS/和PMOS+NMOS的電阻疊圖
' |0 D. Q! O& g6 ~0 Mmp   in     vsa       vddah vddah  P_33_G2 L=0.35u W=5u M=1
, [9 _& k" n6 Q' Smn   in     vddah      ...

- _$ N& I* f! W5 |9 ~' w  _2 }% W! z' Q+ q

2 F' T, Q7 {% r6 o( t; U: V  F為何2種方法跑出來不一樣??
$ x- I* u- a0 n( x% ^& J
! F& c; j3 K9 A8 W) n$ U.print pmos_Ron=par('(v(vdd)-v(Vin))/abs(i(M1p))')1 X0 L* _% D! S0 K& H: `
.print nmos_Ron=par('(v(Vin))/abs(i(M1n))')/ ^/ {$ P0 F% B  R# N8 C
.print TG_Ron=par('(pmos_Ron*nmos_Ron)/(pmos_Ron+nmos_Ron)')) `8 O  m( S+ g2 o- G# B

" c2 t6 E# W& X4 }3 }4 U.print pmos_Ron=par('1/gdso(M1n)')
& j& Y! b7 R8 q9 s.print nmos_Ron=par('1/gdso(M1p)')* D3 r- I' K) O# l" P6 \" ^  d7 n# [1 z
.print TG_Ron=par('1/(gdso(M1n)+gdso(M1p))') + P* I0 [# q6 B3 }- A" i

) L, \5 O4 ?" f* v我只PO上TG的RON圖形出來,$ S4 D3 q/ w" `# }7 ^
上圖是用前三行指令跑出來的RON(2點電壓相減除以電流)
& f# W8 D- S% ?6 U+ M) M- ]下圖是用後三行指令跑出來的RON(直接用電導倒數)# C2 u  ?! s# K  v) x+ ^9 g. d$ y) Q
為何跑出來的圖形不一樣,理論上應該是一樣的啊
3 z) f5 T  s2 m+ v$ a能否請各位大大位我解答

本帖子中包含更多資源

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

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

本版積分規則

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

GMT+8, 2024-9-27 09:14 PM , Processed in 0.207012 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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