Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

搜索
1 2 3 4
查看: 37985|回復: 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即可
3 J0 f' v' s9 h# A. R在HSPICE中利用PRINT寫來計算元件的(Vin-Vout)/I即可用awaves畫出元件的Ron電阻
' q! ?4 ?0 `2 F要特別注意一點的是,如果mos是內建的,那要留意外部電感的電流大小會"間接"決定mos的大小,或者mos是外接式的,那你直接看外部mos所提供的spice model大概就可以了
4#
發表於 2008-4-20 23:18:53 | 只看該作者
喔,嘿嘿,是finster版主啊,對啊就是V=IR啊,真是faint,原來我用錯電壓了,我錯用成Vout/I了怪不得不對呢, 8 q5 j' @4 i! v( G3 ]- S
; `! c2 ^1 O% H$ Q0 G
谢谢您的解答!
5#
發表於 2008-7-7 00:05:00 | 只看該作者
這個問題剛好是最近一直困擾的問題
: N9 }; ^% U+ L, b為何不可以(vout-vin)/I阿
( |9 K- E  Y" I2 X9 A下面是我寫的spice檔
, }/ I' c6 @" k- m0 j" H; Mm1 vin vdd vout vss nch3 w=3.5u l=0.35u
/ D% _! I1 |1 H3 w: Y8 o* Y0 k7 P: g  Pr1 vout 0 1k- l) ~. o" f/ Q3 M/ O
在.print部份
6 A: W+ a/ B& C0 |; {3 b* F是要寫 "v(vin)/v(vout)" "(v(vin)-v(vout))/i(r1)" "(v(vin)-v(vout))/i(m1)"呢9 O4 W4 n# @! j1 ~% M
可否幫忙解答?
0 ~; Z7 B# U7 p1 `" s9 c  jthanks
6#
發表於 2008-7-7 09:52:23 | 只看該作者
原帖由 dogst 於 2008-7-7 12:05 AM 發表 4 R. I- `# p  b
這個問題剛好是最近一直困擾的問題
) B. q/ V+ V) X/ b1 z- K" v為何不可以(vout-vin)/I阿) S( q  D2 A' `* M
下面是我寫的spice檔' `- H4 _' I: S* l% R; [
m1 vin vdd vout vss nch3 w=3.5u l=0.35u
9 Y  F( C# h3 l8 R6 P( s0 Lr1 vout 0 1k6 L* b& F5 E& z" q5 Z
在.print部份
5 |& u; S8 ~/ B9 s是要寫 "v(vin)/v(vout)" "(v(vin)-v(vout))/i(r1)" " ...
4 y. `3 |. ]) w, `  w
2 K' o! b& v7 s- T/ \6 h
$ T; X4 w% J* V
6 a- d& g1 ?  X  C( k
建議你不要加r1 vout 0 1k
& J: m# E; u: j5 h; H因為你要對NMOS作計算ron,加了r1後,電流會對r1產生一個電壓,如此一來會壓縮到m1的vout電壓
: @# r" I- _7 O建議的寫法為
' X) |/ o& z! s4 B, ?" K- m0 |6 o: r  Cm1 vin vdd vout vss nch3 w=3.5u l=0.35u m=1
; D" B; Y6 @3 E0 P3 I  r4 J$ zvvin  vin   vss    vss: F5 t4 u; z# z
vvout vout  vss    vss
1 m% j$ x. Z3 Z.dc vvin 0.001 3.3 0.1
' \5 B8 A" T& ~3 ~5 _0 G7 N.print PAR('(v(in))/abs(i(m1))')7 U+ S  i! g" _- P8 h
.print i(m1)
7#
發表於 2008-7-7 15:37:14 | 只看該作者
嗯嗯  有沒有加電阻  真的有差  謝謝
. e" J6 C* C( ?' Q5 X可是又有一個問題(不好意思 問題真多 多多包含)
0 l$ k; w# Y3 G6 nvvdd   vdd   0  3.0v
. ?4 ]: m: S! v+ g, yvvss   vss   0  0v
4 U& |; ], M; r! @1 U( K) `vvin   vin   0  0v
/ k" q! S: z6 R1 E9 v2 g0 F; \vvout  vout  0  0v
% D4 e$ [6 _1 t# L8 T9 v$ Zm1   vin   vdd   vout  vss  nch3  w=3.5u   l=0.35u & D4 f( G* n9 W+ K0 x  o
.print a=par('(v(vin)-v(vout))/i(m1)') b=par('v(vin)/i(m1)')
/ j7 M' @% S, {就是在vout的部份 有沒有設成0好像結果差很多耶  為何會這樣呢( a# P. m7 l1 w8 ?
還有在量Ron部份時  到底是要par('(v(vin)-v(vout))/i(m1)')還是要par('v(vin)/i(m1)')
* a8 V- v3 I, j# E2 q4 @9 W因為版主在回覆時  兩者都有提到  可是還是不清楚
7 k4 I- c% B9 a3 U# ?. U: h可否幫忙解答?
  Q6 V# i0 U) m* FThanks
8#
發表於 2008-7-7 17:25:19 | 只看該作者
不好意思,一時之間沒留意到" ^+ t7 w. _9 o
應該是
8 R8 _  e# M3 Q.print PAR('(v(vin)-v(vout))/abs(i(m1))')
7 X& @9 Q, R# k. [# \0 w要加abs則是因為電流有流進流出的問題,進而會產生正負符號的緣故,故而加了abs可以變成是正的# `5 z+ V9 Z8 n( G, n
另外,vout的部份,因為你是作.DC的sweep,而且是對NMOS,所以,source端一定要加最低電位(也就是0V)然後對drain作dc sweep! u: Q- |- [% z, |# o" u
反之若是PMOS,則是要加最高電位(亦即VDD)
1 k4 w3 A+ }- C) @這是因為PMOS和NMOS兩者對VSS和VDD有不一樣的變化
9#
發表於 2008-7-7 18:04:27 | 只看該作者
順便來請教各位大大
' W' E' ~. f5 l0 k1 u8 D有在其他書上看到/ J* V6 f. T) n* F/ h
.print dc RON=par('1/LX8(mn1)')
) F: E" z+ M2 F2 d這個指令似乎也能看RON的電阻值1 R: j) M& Z5 s4 y1 n3 ~- _
不過不太了解這個指令的意思?
10#
發表於 2008-7-7 20:41:52 | 只看該作者
原帖由 finster 於 2008-7-7 05:25 PM 發表
& g5 u1 h  g, x  \  Q0 F不好意思,一時之間沒留意到
1 a; e$ y$ W5 [  J應該是( V. m( d1 L/ T* \
.print PAR('(v(vin)-v(vout))/abs(i(m1))'); |& Y1 X! f  W# {: K: s& U' u7 A: y
要加abs則是因為電流有流進流出的問題,進而會產生正負符號的緣故,故而加了abs可以變成是正的. p: D1 e* @/ R' @, A
另外,vout的部份,因為你是作.DC的swe ...
  W$ q8 Q" z' E* p

( U- s' _- @* ]( W. v& ^* G% z) _% t
嗯嗯  原來如此
: l) M1 ~7 ~7 g; v意思也就是說 要寫成下面這樣子  對吧!
( R) x+ ^- C/ G# [nmos : m1 vin vdd vout vss ........  .print par('(v(vin)-v(vout))/abs(i(m1))')
0 w. j, x% k. T; bpmos : m1 vout vss vin vdd ........  .print par('(v(vin)-v(vout))/abs(i(m1))')% ^" \2 \, \* ^4 r8 `

0 Q0 C/ C5 ~+ b' l, T那如果是transmission gate的話
/ j- v/ ~6 ?: B2 u6 C* X9 B+ y9 uvvdd   vdd   0   dc   3.0V) z# w, `9 E& G
vvss   vss   0   dc   0.0v
& C( I0 y. V1 O5 o0 Z3 K$ v+ fvvin   vin   0   dc   0.0v
: b0 g" T% [- E% a) b" V8 B: ^m1   vin   vdd   vout  vss  nch3  w=3.5u   l=0.35u ; p" J8 s( U3 [0 _$ F
m2   vout  vss   vin   vdd  pch3  w=3.5u   l=0.35u  
+ U! c+ G5 z5 g# k# j) g. S' n那麼在.print部份的話  要怎麼寫& v; |3 O& J1 L1 a
因為他不像nmos或者pmos一樣  只有m1的電流可以除0 N; ?: A5 H! p& b! J  B6 T
這樣怎麼求Ron
: G. o. }; q2 R7 r4 _  t可否請大大解釋疑惑
  W( C; B' X$ R% V謝謝
11#
發表於 2008-7-8 09:33:51 | 只看該作者
可以是各別算出Ron,再運算
& U9 L" L& y7 ]0 _% H0 G0 R: R" C.print r_n=par('(v(vin)-v(vout))/abs(i(m1))')( U8 p2 m8 d0 X" H) U. N# D; z
.print r_p=par('(v(vin)-v(vout))/abs(i(m2))')
( L6 h8 Q8 B. b6 Z3 z" u! h.print r_pn=par('(r_n*r_p)/(r_n+r_p)')
5 U0 t) b* ^* r" z5 ]; W) E* P/ _% p; Q8 d
另外一種方式則是將電流相加再作運算
6 p  [5 h6 P  _1 q. i/ v, d! e5 i, M.print i_pn=par('abs(i(m1))+abs(i(m2))')
+ l1 W+ N$ r" m( F; r( e.print r_p=par('(v(vin)-v(vout))/i_pn')
12#
發表於 2008-7-10 21:40:18 | 只看該作者
大大  我用了你的方法  可是結果怎麼跟書上畫的不一樣呢( g4 M% i( k8 C! ?! X3 {
以下是我的SPICE檔( r' @' Q1 D4 y

9 I+ b9 \4 J9 q; p) avvdd   vdd   0   dc   3.0V
0 T, o: [" C7 q1 P1 m. V7 Bvvss   vss   0   dc   0.0v
5 Z: K# l! t- H  Mvvin   vin   0   dc   0.0v
% Z5 Z2 w" d: y, om1   vin   vdd   vout  vss  nxxx  w=3.5u   l=0.35u
; W3 m" j! ^7 m1 J# E; Km2   vout  vss   vin   vdd  pxxx  w=3.5u   l=0.35u  m=4
, x4 {) r9 x( T: k( t9 D4 f9 i! h9 x: a$ e

: Y. e4 D1 x) X. e* M: {3 b2 x以下是用 .print i_pn=par('abs(i(m1))+abs(i(m2))')  r_p=par('(v(vin)-v(vout))/i_pn')$ K! ?$ g6 v) _5 m
) Y; K) p! e0 D( g* z
.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)')
$ B# [. E  `8 f
' I8 P6 d2 \6 B3 M" s7 \
: z- _! x2 E5 H, R3 d* \為何兩個結果會不一樣呢
0 f( p: c3 \; r7 }+ j$ A而且很納悶的是第二個方法為何要(相乘)/(相加)* G/ L0 r- A4 F8 |' }. I
: N0 w+ z2 ~# D' |8 \5 M- D+ G2 F: \
可否請大大幫忙解答3 `/ @7 t# @9 o  Y% S
Thanks

本帖子中包含更多資源

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

x
13#
發表於 2008-7-11 00:20:41 | 只看該作者
第一個方法為何要(相乘)/(相加)???
* q: z' L( V% ?* {) R你要計算transmission gate的電阻,而transmission gate就是PMOS和NMOS兩者並聯,要求並聯電阻的阻值,當然是(相乘)/(相加),這是很基本的電阻公式計算& t3 Q$ `1 X3 R" l! `
所以,我先計算出各別PMOS和NMOS的阻值再作計算
/ ?$ m7 r; N5 C$ }" K8 l+ ?% `
0 L3 c7 L8 ?% N$ [$ r3 d2 ^/ C9 X至於兩種方法為何會不同
) l& T2 K# U' ^照理說應該要相同才對,不過,我倒是很好奇為何你的電阻計算出來是負的
) k/ y$ }( r( S2 {" z3 s0 W這點很不合理# P7 H* Y9 B9 w
難道是你的VOUT沒有設對嗎??
14#
發表於 2008-7-13 12:05:56 | 只看該作者
如果我改成下面這樣
- a2 @1 E6 v" k. V.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)')2 v+ `* u- C0 Y8 ~+ C8 u: [
電阻就會變正的9 j  r2 l2 d; O1 R. ^
可是不管怎麼看  還是覺得不太對
) p8 j( D  A% X
6 {% g7 _8 ^) N. D以下是我的spice檔* a& `, L$ C2 P- q5 Z
vvdd   vdd   0   dc   3.0V
, r1 s4 g$ |* I( N& R  `& U: nvvss   vss   0   dc   0.0v
! X9 L, i3 K) M: M4 ivvin   vin   0   dc   0.0v$ C1 U# _* D! q( [- f; o/ G

$ }  ~7 [$ W0 A& C) V& Wm1   vin   vdd   vout  vss  nxx  w=wsize   l=lsize 6 r0 p: c7 W6 G
m2   vout  vss   vin   vdd  pxx  w=wsize   l=lsize  
8 X; L9 {6 Q6 U# b" L* f" e7 r8 R% a" M+ v" n5 }
*r1    vout  0     1k' u+ `0 t+ ]7 L# g6 j  J
.dc vvin 0v 3.0v 0.05v  7 `0 ?8 p% a3 a) h# b1 g7 b
.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)')
6 ~, s/ J" T5 C1 z7 C.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)')
/ m2 ]) q' L. W: J) j2 {* U# p- E2 i# n1 p3 o6 ^
.end3 [, ?+ ?! y1 G$ n  ^+ @3 V
6 Q3 C1 V3 _( U; l
希望大大幫我檢查一下  看看是否有錯
- K& E7 v0 H; N: U" {還有一個問題  就是為何不能用 v(vout)-v(vin) 而一定要用 v(vin)-v(vout) 呢2 n, l6 l. k% _' g" K9 S4 W7 w" [

, d2 y5 K, d$ ~可否幫忙解答
8 d9 W0 A. d& J0 g7 lThanks
15#
發表於 2008-7-13 15:48:16 | 只看該作者
sorry  上面打錯了
4 N+ Z. o, Y8 z& Y  |應該是  rn=par('(v(vin)-v(vout))/abs(i(m1))') rp=par('(v(vin)-v(vout))/abs(i(m1))')  rpn=par('(rn*rp)/(rn+rp)') 才對8 ^/ Y$ b1 B( w$ N& S- e

8 E8 ?5 q$ F. k$ S& R5 a還有想要請問一下   跑出來的模擬圖  要怎樣看電阻值呢3 G  ?. y% H$ o3 h
也就是說 NMOS 跟 transmission gate 的部分  要怎樣看9 m( y. y  p: ^
可否教導一下
- [: K& w- Y6 [Thanks
16#
發表於 2008-7-14 11:23:44 | 只看該作者
附圖Noname1應該就你說書上的圖吧4 j( h- X; d  Y" K: R" h

6 g/ k; j$ M" q! C" Q下面是我測試的transmission gate,而附圖Nonmame則是PMOS/NMOS/和PMOS+NMOS的電阻疊圖. [) R' d7 v* g) P( G
mp   in     vsa       vddah vddah  P_33_G2 L=0.35u W=5u M=1& o9 J. P/ g3 q# ?) G; n  j  F& v
mn   in     vddah     vsa     vsa    N_33_G2 L=0.35u W=5u M=1
7 P3 c6 o% Q. Kvvsa      vsa       0    0- g! x6 ~7 X) D
vddah  vddah  0    vddah; n8 \6 G0 F) C
vin    in     0    0/ Z  x! K1 D& ]* V/ \- x1 K4 o8 x
.dc vin 0.05 3.295 0.005 7 J) H8 t9 \5 Y, O! v
.print r_p=par('(v(vddah)-v(in))/abs(i(mp))')) P  a+ [" T: n3 N
.print r_n=par('(v(in))/abs(i(mn))')
5 j7 n7 h5 h3 }( s.print r_pn=par('(r_p*r_n)/(r_p+r_n)')
. n$ F7 a7 j- N- k- H' a% Q書上的圖是把PMOS和NMOS各別的電阻畫出來之後,再把兩個電阻並聯計算畫出來,其中,要計算PMOS電阻,一端要接VDDAH,而要計算NMOS電阻,另外一端則是接VSA

本帖子中包含更多資源

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

x

評分

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

查看全部評分

17#
發表於 2008-7-14 22:39:06 | 只看該作者
感謝版主這麼有耐心教導我$ t4 s9 N5 M$ l: I+ g
這下子  我對開關又懂更多了% v% J9 R% T) B1 w/ m' l
Thanks
18#
發表於 2008-7-25 11:23:31 | 只看該作者
原帖由 hiyato 於 2008-7-7 06:04 PM 發表
$ A. l+ ~3 [+ J  G, x% D順便來請教各位大大' q: J, v. r( P6 x% w- x9 o
有在其他書上看到7 K( |/ o7 C$ [* c5 n- e* ]# Q: B
.print dc RON=par('1/LX8(mn1)')# H/ Z4 k4 r) }- \; v) N6 t5 w
這個指令似乎也能看RON的電阻值- w4 k, y9 n; [" ~4 h. g/ @0 V9 F, G
不過不太了解這個指令的意思?

3 y& y: h' ]: T6 |* m
" J9 |4 P' ]. C5 g! v- Z" h/ ]LX8(mn1)是hspice自带的一个function,可以用gdso(mn1),表示mn1的电导的大小,正好是电阻值的倒数,用它替换更直观和简单。8 ~' x$ J# c2 q, y4 k
.probe Ron=par('1/gdso(mn1)')
19#
發表於 2008-7-25 11:25:54 | 只看該作者
PMOS和NMOS组成的CMOS switch 电阻值写成5 U- @7 E, T" k8 q
.probe Ron= par('1/(gdso(mn1)+gdso(mp1))') 就OK了
20#
發表於 2008-12-2 15:05:30 | 只看該作者
原帖由 finster 於 2008-7-14 11:23 AM 發表 6 `' s( b$ v9 L; y* U- }
附圖Noname1應該就你說書上的圖吧
5 Q0 A3 {* b7 F& V- b
, y& S0 ^* l9 B3 p8 n% \7 `. h下面是我測試的transmission gate,而附圖Nonmame則是PMOS/NMOS/和PMOS+NMOS的電阻疊圖
6 d* j1 t- d8 w# F# |2 Emp   in     vsa       vddah vddah  P_33_G2 L=0.35u W=5u M=12 c5 c1 ]; N" k6 ?
mn   in     vddah      ...
) F1 P$ [( E) L" h* G. e

2 U7 J7 \  p0 T9 R( `' F6 T+ G) C  Q3 s
為何2種方法跑出來不一樣??
4 q$ s! d9 H/ r5 O! ]
  H7 Z6 c: W$ h, N+ C5 p: Y- ~.print pmos_Ron=par('(v(vdd)-v(Vin))/abs(i(M1p))')  i7 n& F# x& g  A9 w
.print nmos_Ron=par('(v(Vin))/abs(i(M1n))')! e8 M5 w; Y4 T( c5 F. ]( p+ j0 v
.print TG_Ron=par('(pmos_Ron*nmos_Ron)/(pmos_Ron+nmos_Ron)')* s; _2 E5 f6 w; H: d0 h
2 [& p/ T5 _' v
.print pmos_Ron=par('1/gdso(M1n)')" C8 m, O- F$ t& ?- L8 f) @
.print nmos_Ron=par('1/gdso(M1p)')  F7 H6 m; n9 C" ~* g
.print TG_Ron=par('1/(gdso(M1n)+gdso(M1p))') ; q8 h( M9 |- G8 L% ~* t7 w* p7 b

+ V8 L5 n" s5 B9 @我只PO上TG的RON圖形出來,
. p) y, i( F. ^( R, F& C上圖是用前三行指令跑出來的RON(2點電壓相減除以電流)
* }. W4 s, s" t& x! k9 O0 b下圖是用後三行指令跑出來的RON(直接用電導倒數). \8 {3 m! [0 k+ x
為何跑出來的圖形不一樣,理論上應該是一樣的啊; g* W$ }; a5 p
能否請各位大大位我解答

本帖子中包含更多資源

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

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

本版積分規則

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

GMT+8, 2024-9-27 09:08 PM , Processed in 0.204011 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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