Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

搜索
1 2 3 4
查看: 37983|回復: 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即可- _" Q! y. b' m
在HSPICE中利用PRINT寫來計算元件的(Vin-Vout)/I即可用awaves畫出元件的Ron電阻
) b* R1 W" K" N要特別注意一點的是,如果mos是內建的,那要留意外部電感的電流大小會"間接"決定mos的大小,或者mos是外接式的,那你直接看外部mos所提供的spice model大概就可以了
4#
發表於 2008-4-20 23:18:53 | 只看該作者
喔,嘿嘿,是finster版主啊,對啊就是V=IR啊,真是faint,原來我用錯電壓了,我錯用成Vout/I了怪不得不對呢, 9 k0 N: z6 n. R( W4 [2 O: H
1 U/ `  s: v2 w
谢谢您的解答!
5#
發表於 2008-7-7 00:05:00 | 只看該作者
這個問題剛好是最近一直困擾的問題0 N' {$ j/ P& H' o! t: c( L- ]! \
為何不可以(vout-vin)/I阿( I  g; T9 }. e! I4 w
下面是我寫的spice檔
& v# H/ B1 W" Km1 vin vdd vout vss nch3 w=3.5u l=0.35u& d7 ]$ z2 m' O& G
r1 vout 0 1k9 m7 M0 F) G- _% f& F
在.print部份; J9 ?: }9 `1 @" l! M+ h2 g! @2 v$ w
是要寫 "v(vin)/v(vout)" "(v(vin)-v(vout))/i(r1)" "(v(vin)-v(vout))/i(m1)"呢
2 R& ?& x) \' p0 T4 `可否幫忙解答?
% v" g4 x7 s) Athanks
6#
發表於 2008-7-7 09:52:23 | 只看該作者
原帖由 dogst 於 2008-7-7 12:05 AM 發表
6 X! z$ P  U; {這個問題剛好是最近一直困擾的問題
$ p4 M* U( m; y* `5 [8 y為何不可以(vout-vin)/I阿
8 q9 l" O2 d6 D下面是我寫的spice檔
6 i8 ?. b: \( r4 K; K2 [m1 vin vdd vout vss nch3 w=3.5u l=0.35u
  i! x% {( z2 h* v) N1 f0 j4 S0 @1 [r1 vout 0 1k, P, U7 g1 L" T9 H
在.print部份0 \- V' {, @, S+ @. h% k
是要寫 "v(vin)/v(vout)" "(v(vin)-v(vout))/i(r1)" " ...

/ X% z8 n/ s, K) w1 h4 X& w! `: ]; a3 g
7 w* H3 [% C8 f4 W' u3 G% J" e

9 f( ^6 }; ?8 C% d* D; F建議你不要加r1 vout 0 1k
3 Q& O2 z$ x! I6 E因為你要對NMOS作計算ron,加了r1後,電流會對r1產生一個電壓,如此一來會壓縮到m1的vout電壓
& e: {1 t- Z; h. m/ B+ R建議的寫法為
5 D; I/ W! k* K$ im1 vin vdd vout vss nch3 w=3.5u l=0.35u m=1
2 S9 T1 n& J2 u, ?vvin  vin   vss    vss
' B) o2 R, I0 m, |/ C. ?3 z- nvvout vout  vss    vss4 b! z  c8 n$ L9 D- c! k3 Z1 c
.dc vvin 0.001 3.3 0.1" J% M$ X+ e4 i$ B- h
.print PAR('(v(in))/abs(i(m1))')
5 N2 i1 f% @  u5 W  O4 j.print i(m1)
7#
發表於 2008-7-7 15:37:14 | 只看該作者
嗯嗯  有沒有加電阻  真的有差  謝謝2 U1 l1 j( u7 M7 n
可是又有一個問題(不好意思 問題真多 多多包含)0 l* C4 }: c9 n# P
vvdd   vdd   0  3.0v 8 k3 H  w9 p( y
vvss   vss   0  0v
/ @+ [7 L1 _/ N! R+ |. avvin   vin   0  0v
5 \0 U4 E/ |! Dvvout  vout  0  0v
, v* G! L; F8 k1 Hm1   vin   vdd   vout  vss  nch3  w=3.5u   l=0.35u ( v7 z; L1 d2 n
.print a=par('(v(vin)-v(vout))/i(m1)') b=par('v(vin)/i(m1)')
+ ^7 Y7 T5 X6 k0 E6 Q% q: \: f8 D就是在vout的部份 有沒有設成0好像結果差很多耶  為何會這樣呢
; S3 h- K$ U1 ~. V0 I& n( r5 V) l還有在量Ron部份時  到底是要par('(v(vin)-v(vout))/i(m1)')還是要par('v(vin)/i(m1)')
5 K) e' N4 ~. ?: C' ~% v! R因為版主在回覆時  兩者都有提到  可是還是不清楚2 d' X; D4 ]. O$ l& ]* m
可否幫忙解答?
' j  b$ a3 s$ ]6 ~Thanks
8#
發表於 2008-7-7 17:25:19 | 只看該作者
不好意思,一時之間沒留意到1 m- d& V' z' S  W) P
應該是
+ p1 u$ d& ^9 G.print PAR('(v(vin)-v(vout))/abs(i(m1))')
- {8 S. ?8 i" J& J$ R1 W* X要加abs則是因為電流有流進流出的問題,進而會產生正負符號的緣故,故而加了abs可以變成是正的5 l! z4 H" ?+ c6 s  c
另外,vout的部份,因為你是作.DC的sweep,而且是對NMOS,所以,source端一定要加最低電位(也就是0V)然後對drain作dc sweep) }  }0 c" J- j- b5 J
反之若是PMOS,則是要加最高電位(亦即VDD)
! n# r: F9 F1 {* k  {+ Z8 E9 U這是因為PMOS和NMOS兩者對VSS和VDD有不一樣的變化
9#
發表於 2008-7-7 18:04:27 | 只看該作者
順便來請教各位大大' t& P& z- S2 Q8 t6 T
有在其他書上看到
" [, T: }% K; t' M' }; k+ p.print dc RON=par('1/LX8(mn1)')
2 Z$ `' w3 f# Q& f) J( U這個指令似乎也能看RON的電阻值
* o* T% z( U! }不過不太了解這個指令的意思?
10#
發表於 2008-7-7 20:41:52 | 只看該作者
原帖由 finster 於 2008-7-7 05:25 PM 發表 . ?' W. q9 l) ]
不好意思,一時之間沒留意到
- X. C& k2 A& M3 ?應該是% n9 R5 O' L5 U- e' C0 F; i
.print PAR('(v(vin)-v(vout))/abs(i(m1))')* l/ E7 m+ P- K6 ?" s8 d
要加abs則是因為電流有流進流出的問題,進而會產生正負符號的緣故,故而加了abs可以變成是正的2 M5 |/ y% y  M! e) }! Y) ?
另外,vout的部份,因為你是作.DC的swe ...
" U7 s6 R2 z- R5 w  ?  ?% W. D
  P8 l6 V% o1 `% s" n
* e- z* P$ W% ?7 I/ t9 z/ q
嗯嗯  原來如此
- U& C6 j, }" l* I) @" L; h1 `7 Q意思也就是說 要寫成下面這樣子  對吧!' x1 i$ S; `: ^) |
nmos : m1 vin vdd vout vss ........  .print par('(v(vin)-v(vout))/abs(i(m1))')
7 c, O+ ]( Q& A9 v; [pmos : m1 vout vss vin vdd ........  .print par('(v(vin)-v(vout))/abs(i(m1))')
3 D+ P( h: R( a+ R2 k+ P
1 `+ y, y7 J$ v) D. f  K$ y* _$ k2 m那如果是transmission gate的話# H1 j2 ]6 n( e' g
vvdd   vdd   0   dc   3.0V' J: r. g" v* [- m* X& u8 `
vvss   vss   0   dc   0.0v
8 \* P! m7 f6 Dvvin   vin   0   dc   0.0v
7 {6 t4 g5 E9 K" L* Om1   vin   vdd   vout  vss  nch3  w=3.5u   l=0.35u
$ t: o5 K0 o3 ]" hm2   vout  vss   vin   vdd  pch3  w=3.5u   l=0.35u  
' b0 \$ Y! b0 p7 f那麼在.print部份的話  要怎麼寫6 J2 z3 K6 ?: w6 q) ?+ A
因為他不像nmos或者pmos一樣  只有m1的電流可以除
& v5 a4 v7 H7 V0 N/ ~- E這樣怎麼求Ron
. `* p  o! [/ z9 k6 q9 x* m( c可否請大大解釋疑惑% y; v/ H$ M0 e' Q( T3 j5 `
謝謝
11#
發表於 2008-7-8 09:33:51 | 只看該作者
可以是各別算出Ron,再運算$ L7 a( P0 R3 q# N$ e& W; H
.print r_n=par('(v(vin)-v(vout))/abs(i(m1))')
9 Z  u& f2 b0 @2 \3 P3 j. K3 H0 [.print r_p=par('(v(vin)-v(vout))/abs(i(m2))')
1 p1 J0 P! ^8 X' z.print r_pn=par('(r_n*r_p)/(r_n+r_p)')
  R6 R# P2 j( H- u- b0 \6 t9 e
" m" Z! q: `  Q- ?' K1 I另外一種方式則是將電流相加再作運算
) c4 X: z% `2 @. m% s3 Y.print i_pn=par('abs(i(m1))+abs(i(m2))')
% T; {5 V% g# P3 O  t! @6 H; }2 f: Z.print r_p=par('(v(vin)-v(vout))/i_pn')
12#
發表於 2008-7-10 21:40:18 | 只看該作者
大大  我用了你的方法  可是結果怎麼跟書上畫的不一樣呢
* `8 y! ^; M- F& B' `以下是我的SPICE檔8 w: t5 L7 N2 s! g; h

+ v$ @1 s, F/ f! w5 i( f5 qvvdd   vdd   0   dc   3.0V
0 {( M. M1 r% p8 Qvvss   vss   0   dc   0.0v
8 I0 X! C9 N6 V' U* ovvin   vin   0   dc   0.0v: e* j6 ~6 K! H" u' z2 ^
m1   vin   vdd   vout  vss  nxxx  w=3.5u   l=0.35u
! d2 k/ U% D' `  Y& \+ cm2   vout  vss   vin   vdd  pxxx  w=3.5u   l=0.35u  m=4 , E% A8 m! N1 C( Y
  [# h: @: C  D% z/ ]/ o

  {- ^- D! t0 |  P% c以下是用 .print i_pn=par('abs(i(m1))+abs(i(m2))')  r_p=par('(v(vin)-v(vout))/i_pn')
! }/ F! z; a5 ^4 ~7 v
- \2 a5 N+ N$ s: B) T8 E3 s.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)')
! S% a; l/ l2 j7 K7 r% L' {
- Q5 W. Y; y. \# u, R2 m( L: m5 f" T
' b3 V; P; n1 f; E3 N1 G為何兩個結果會不一樣呢4 c. X% {( _7 O+ f4 D4 \8 W3 Y& f, a
而且很納悶的是第二個方法為何要(相乘)/(相加)7 k4 i$ _' _  w. _1 ?- n6 f9 u
2 N7 @$ z6 v+ \$ i& t# t
可否請大大幫忙解答' `; a6 e9 {, Y9 d4 u' R% j" N
Thanks

本帖子中包含更多資源

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

x
13#
發表於 2008-7-11 00:20:41 | 只看該作者
第一個方法為何要(相乘)/(相加)???
1 N& g4 Y5 ~: [0 [* f2 P你要計算transmission gate的電阻,而transmission gate就是PMOS和NMOS兩者並聯,要求並聯電阻的阻值,當然是(相乘)/(相加),這是很基本的電阻公式計算
& S% P1 E- f( D9 X' w) {' h/ R2 `4 ~所以,我先計算出各別PMOS和NMOS的阻值再作計算
% ]: l5 K) l5 C8 U
# x+ N% x3 R; o! G' |, y/ d$ J至於兩種方法為何會不同, |/ Q7 q' j" ]# v) @0 E
照理說應該要相同才對,不過,我倒是很好奇為何你的電阻計算出來是負的
0 L; s6 S  z2 w% G5 [. g這點很不合理) a" H5 V$ s# f. `
難道是你的VOUT沒有設對嗎??
14#
發表於 2008-7-13 12:05:56 | 只看該作者
如果我改成下面這樣
, ~  V8 t4 K7 U% V8 i* Z.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)')
  C3 ^- N+ c: r7 L9 [# d- `電阻就會變正的
8 n' @% C0 u  L; G9 ]/ t" s可是不管怎麼看  還是覺得不太對9 S  l: p, j6 o+ r6 f; _" p) F
+ @7 G# ^+ w3 A- @
以下是我的spice檔
3 K; y5 H- u6 t! \/ j  B+ bvvdd   vdd   0   dc   3.0V* t$ ^! j& S; ?5 e" j- D
vvss   vss   0   dc   0.0v/ ~0 h2 B% H# V/ v, a0 O
vvin   vin   0   dc   0.0v6 j, {# t( w% B, _
+ T' c/ t" b0 Z/ D/ ?
m1   vin   vdd   vout  vss  nxx  w=wsize   l=lsize 3 y9 I1 O2 x' ]; g
m2   vout  vss   vin   vdd  pxx  w=wsize   l=lsize  
7 N) k8 X& a$ h8 {! y# [. l3 X* @/ ]. E: m+ t, a* y  Y4 C, O
*r1    vout  0     1k
3 x" U/ f( P1 ~3 S9 u.dc vvin 0v 3.0v 0.05v    c0 A# q; [7 F( l) ]
.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)')
: J$ x% `+ a. c5 K' \4 I.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)')
2 q6 C2 x0 O" T' \4 o* |& U4 o) Q5 W; Y3 J9 v" j
.end
% \; W- [6 c2 D0 A! I: k: @" X5 l1 U  o/ ~
希望大大幫我檢查一下  看看是否有錯
9 Z' o: ^! l7 s) X還有一個問題  就是為何不能用 v(vout)-v(vin) 而一定要用 v(vin)-v(vout) 呢# b* D+ g9 B; I3 Y

+ y6 t. A" t, z$ o. H可否幫忙解答
+ x( X( ~+ m: s  C: SThanks
15#
發表於 2008-7-13 15:48:16 | 只看該作者
sorry  上面打錯了
1 o8 @1 U$ a6 _+ W- @4 z應該是  rn=par('(v(vin)-v(vout))/abs(i(m1))') rp=par('(v(vin)-v(vout))/abs(i(m1))')  rpn=par('(rn*rp)/(rn+rp)') 才對
$ D0 B1 c4 Y: {- j; w$ y
5 r$ W, D! k5 |" h9 _還有想要請問一下   跑出來的模擬圖  要怎樣看電阻值呢
% F. ~( A. g/ b) a0 N/ z也就是說 NMOS 跟 transmission gate 的部分  要怎樣看
4 d. F0 C; W$ v  `可否教導一下
* G6 x' B, @; ~& J7 @( @Thanks
16#
發表於 2008-7-14 11:23:44 | 只看該作者
附圖Noname1應該就你說書上的圖吧
: m! O2 P+ e6 P( ^. \/ h( I7 i6 F4 i# N/ v
下面是我測試的transmission gate,而附圖Nonmame則是PMOS/NMOS/和PMOS+NMOS的電阻疊圖* h0 U' H" |# i$ i
mp   in     vsa       vddah vddah  P_33_G2 L=0.35u W=5u M=1
% Y& A: ?+ G7 n! u# N/ ymn   in     vddah     vsa     vsa    N_33_G2 L=0.35u W=5u M=10 E7 O( F+ _; ]) ^2 d
vvsa      vsa       0    0
: r& ]; @2 o. O& U8 Ovddah  vddah  0    vddah- C! {' x/ {8 F3 \) l" w
vin    in     0    0
( S* g4 X# k+ S0 |6 ~# d8 ^* g.dc vin 0.05 3.295 0.005
4 h7 M% x6 Y2 D; S: g$ B.print r_p=par('(v(vddah)-v(in))/abs(i(mp))')# C( h" U' N) ?7 Y/ ~- `
.print r_n=par('(v(in))/abs(i(mn))')
! z) g$ n! s$ w, _0 `4 a+ S.print r_pn=par('(r_p*r_n)/(r_p+r_n)')
. I, A! G, ?, a3 G8 U; P書上的圖是把PMOS和NMOS各別的電阻畫出來之後,再把兩個電阻並聯計算畫出來,其中,要計算PMOS電阻,一端要接VDDAH,而要計算NMOS電阻,另外一端則是接VSA

本帖子中包含更多資源

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

x

評分

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

查看全部評分

17#
發表於 2008-7-14 22:39:06 | 只看該作者
感謝版主這麼有耐心教導我: B' k7 v' e5 T, n2 _
這下子  我對開關又懂更多了
, g, `# |4 u. |1 B5 W3 f& F* n  rThanks
18#
發表於 2008-7-25 11:23:31 | 只看該作者
原帖由 hiyato 於 2008-7-7 06:04 PM 發表 6 I8 F' f5 _9 u- q$ W9 l6 s: U$ }
順便來請教各位大大  Y0 }9 f) Q+ J9 |2 a
有在其他書上看到& t/ T7 |6 {# k5 q6 [
.print dc RON=par('1/LX8(mn1)')
) C9 O- H$ _6 A: g這個指令似乎也能看RON的電阻值( j, b+ u; G  a
不過不太了解這個指令的意思?

7 B+ A( m. N( n' R' N* v1 V
8 a% v7 `8 n- }# [$ ]" V7 S5 GLX8(mn1)是hspice自带的一个function,可以用gdso(mn1),表示mn1的电导的大小,正好是电阻值的倒数,用它替换更直观和简单。+ e( T, j( j- X/ I9 n
.probe Ron=par('1/gdso(mn1)')
19#
發表於 2008-7-25 11:25:54 | 只看該作者
PMOS和NMOS组成的CMOS switch 电阻值写成
' G2 }9 ]9 ^# H.probe Ron= par('1/(gdso(mn1)+gdso(mp1))') 就OK了
20#
發表於 2008-12-2 15:05:30 | 只看該作者
原帖由 finster 於 2008-7-14 11:23 AM 發表
8 a1 X6 g( @2 S9 l8 k/ p附圖Noname1應該就你說書上的圖吧
, Y6 T# I4 A5 }; _1 {. Y- }- Q* a3 K. J/ }" L3 R
下面是我測試的transmission gate,而附圖Nonmame則是PMOS/NMOS/和PMOS+NMOS的電阻疊圖+ Y, s& c: x- G; k# f
mp   in     vsa       vddah vddah  P_33_G2 L=0.35u W=5u M=1
& k1 s! c3 s& S5 G  Xmn   in     vddah      ...

8 A& W9 m- f( T, Q) S3 V- V* j( m; ]* Y! m$ e  R9 D9 s& I8 ~& z4 v( J
9 x! N) g, L% a. K+ J* B
為何2種方法跑出來不一樣??
# ]  T0 ]' }% U  O* S
9 y' }7 O$ O$ v5 T9 j.print pmos_Ron=par('(v(vdd)-v(Vin))/abs(i(M1p))')
" I9 \/ s: \7 G$ s4 M# V: K.print nmos_Ron=par('(v(Vin))/abs(i(M1n))')
- C8 c( M' C. q# E: ~) q.print TG_Ron=par('(pmos_Ron*nmos_Ron)/(pmos_Ron+nmos_Ron)')7 S4 Z( q2 L/ |/ W! z" t7 [

$ E6 L4 o  |( j5 _2 H.print pmos_Ron=par('1/gdso(M1n)')+ B- h2 H; ]3 E( v8 {. Y- G: ?
.print nmos_Ron=par('1/gdso(M1p)')  G0 [1 v2 X& N
.print TG_Ron=par('1/(gdso(M1n)+gdso(M1p))')
1 q0 w$ C& N: c; ]" G  O1 ^) H4 v- A4 e& x4 h0 K) A
我只PO上TG的RON圖形出來,$ x: j9 k& u5 Q' h1 e  Q: x  `
上圖是用前三行指令跑出來的RON(2點電壓相減除以電流)
- l) m3 ]% a. N& ]下圖是用後三行指令跑出來的RON(直接用電導倒數)- B, ]( k; T" @; K0 S) r7 i& {7 @; x
為何跑出來的圖形不一樣,理論上應該是一樣的啊7 t# Y5 c/ M$ c2 d0 L: F
能否請各位大大位我解答

本帖子中包含更多資源

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

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

本版積分規則

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

GMT+8, 2024-9-27 08:59 PM , Processed in 0.219012 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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