Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

搜索
1 2 3 4
查看: 37991|回復: 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即可: `. b* a" P0 ?
在HSPICE中利用PRINT寫來計算元件的(Vin-Vout)/I即可用awaves畫出元件的Ron電阻0 `. E6 V/ n4 L# e+ `) Y' i! T& g
要特別注意一點的是,如果mos是內建的,那要留意外部電感的電流大小會"間接"決定mos的大小,或者mos是外接式的,那你直接看外部mos所提供的spice model大概就可以了
4#
發表於 2008-4-20 23:18:53 | 只看該作者
喔,嘿嘿,是finster版主啊,對啊就是V=IR啊,真是faint,原來我用錯電壓了,我錯用成Vout/I了怪不得不對呢, / L& B1 F: _+ S4 f1 x4 B

" [% W3 _- O4 c# ]9 t' S谢谢您的解答!
5#
發表於 2008-7-7 00:05:00 | 只看該作者
這個問題剛好是最近一直困擾的問題; v  m% J# g# e( o1 C9 F
為何不可以(vout-vin)/I阿
6 l" @$ U9 X- t3 O下面是我寫的spice檔/ O5 |/ e: ]/ [
m1 vin vdd vout vss nch3 w=3.5u l=0.35u3 q# i3 c2 i- B+ a
r1 vout 0 1k
0 v% d" W3 t7 @' C. a1 Q4 {- ^在.print部份& V" \  S7 o, P! |3 B* M
是要寫 "v(vin)/v(vout)" "(v(vin)-v(vout))/i(r1)" "(v(vin)-v(vout))/i(m1)"呢
6 X1 [* X# a; y1 R  d7 \可否幫忙解答?% j% G* B4 O; Y/ Q; t0 T* s5 D% Y
thanks
6#
發表於 2008-7-7 09:52:23 | 只看該作者
原帖由 dogst 於 2008-7-7 12:05 AM 發表 ' i  P# Y8 b  Y9 i+ T7 }! D2 t
這個問題剛好是最近一直困擾的問題! M- J; R& v5 O; p
為何不可以(vout-vin)/I阿  B  t, g1 C% }
下面是我寫的spice檔4 r% O( a/ p' B
m1 vin vdd vout vss nch3 w=3.5u l=0.35u
$ s7 e' M. F' Or1 vout 0 1k
) T( S6 o" ~0 Q% f+ |' O在.print部份+ E) u9 X- D0 c  F
是要寫 "v(vin)/v(vout)" "(v(vin)-v(vout))/i(r1)" " ...

* H" w7 C+ q* B6 I. S0 c
* ^2 s! _" \. b! p! y" G3 n7 W. X3 g0 `
7 u: G2 F; k6 l0 q$ J
建議你不要加r1 vout 0 1k' R4 L6 s0 \- ]& ?: f
因為你要對NMOS作計算ron,加了r1後,電流會對r1產生一個電壓,如此一來會壓縮到m1的vout電壓$ w8 e2 J$ K$ b# I4 J
建議的寫法為
# S) \/ |+ w/ Im1 vin vdd vout vss nch3 w=3.5u l=0.35u m=1  e8 a8 Z1 e6 @9 _' M
vvin  vin   vss    vss
. e- |  s. y# G, {7 F4 evvout vout  vss    vss
3 T# g: w# i2 n& d5 q, c" P5 K.dc vvin 0.001 3.3 0.1& c+ q6 X* e9 Q: u5 z
.print PAR('(v(in))/abs(i(m1))')
  S+ Z% z3 |/ j.print i(m1)
7#
發表於 2008-7-7 15:37:14 | 只看該作者
嗯嗯  有沒有加電阻  真的有差  謝謝& N& V4 Y, F& {, Z4 C' I7 X, R
可是又有一個問題(不好意思 問題真多 多多包含)
5 x1 D  C! y8 c5 X3 F& Xvvdd   vdd   0  3.0v
" @; q, Q' i5 }  `: B) v5 d3 svvss   vss   0  0v
" I" m, Z) g4 {$ r+ ^vvin   vin   0  0v , v9 N) ~7 V( x
vvout  vout  0  0v 8 L. r% B# E: J+ c3 M
m1   vin   vdd   vout  vss  nch3  w=3.5u   l=0.35u 3 o, _# r1 M: a4 ]2 j9 F; Q
.print a=par('(v(vin)-v(vout))/i(m1)') b=par('v(vin)/i(m1)')- s2 Q$ R6 b4 O8 y: w
就是在vout的部份 有沒有設成0好像結果差很多耶  為何會這樣呢4 j' Z% F$ w$ ?& F0 E) l
還有在量Ron部份時  到底是要par('(v(vin)-v(vout))/i(m1)')還是要par('v(vin)/i(m1)')
* K) T" R# I# A# m  Y7 B9 z因為版主在回覆時  兩者都有提到  可是還是不清楚
6 o5 Z3 G  W8 R9 W3 x8 e可否幫忙解答?6 [9 z# A- l0 Z  }7 e
Thanks
8#
發表於 2008-7-7 17:25:19 | 只看該作者
不好意思,一時之間沒留意到8 s6 |; x8 [- d5 H% K2 `4 I
應該是0 t5 y% `8 p) D' E' q) g. [
.print PAR('(v(vin)-v(vout))/abs(i(m1))')) ^) _( {4 h5 O. F  ]! r- J6 j
要加abs則是因為電流有流進流出的問題,進而會產生正負符號的緣故,故而加了abs可以變成是正的
; [: O" x6 E/ C3 V1 z9 b另外,vout的部份,因為你是作.DC的sweep,而且是對NMOS,所以,source端一定要加最低電位(也就是0V)然後對drain作dc sweep
* `# v% z, G/ I反之若是PMOS,則是要加最高電位(亦即VDD)
6 p/ A/ {$ Y2 h" R9 Z這是因為PMOS和NMOS兩者對VSS和VDD有不一樣的變化
9#
發表於 2008-7-7 18:04:27 | 只看該作者
順便來請教各位大大; C' H; b4 l+ X+ o: M% t
有在其他書上看到. x* N3 H% K/ b' Q
.print dc RON=par('1/LX8(mn1)')
$ h& _; J  m) X& f8 s1 V) b這個指令似乎也能看RON的電阻值
" a) _0 i* e- i# A" l2 u& {不過不太了解這個指令的意思?
10#
發表於 2008-7-7 20:41:52 | 只看該作者
原帖由 finster 於 2008-7-7 05:25 PM 發表 : \7 ~) n3 L& G1 h9 \
不好意思,一時之間沒留意到: N0 @/ ]& p8 h% Q# p
應該是
- ~7 M6 X9 ?' [7 h" e6 b" ~0 m% D.print PAR('(v(vin)-v(vout))/abs(i(m1))')
1 @; h" w$ c8 w& y要加abs則是因為電流有流進流出的問題,進而會產生正負符號的緣故,故而加了abs可以變成是正的% L- G$ d4 {, Y. A8 Y  I3 A
另外,vout的部份,因為你是作.DC的swe ...

9 [6 g$ X5 R' \$ k' J! Y+ K/ c" o5 _4 c; C
& h! R* i1 h8 d, G, m9 |9 }5 h
嗯嗯  原來如此" W  _  E8 @" W' J+ X% O, h; D* ?$ m
意思也就是說 要寫成下面這樣子  對吧!
3 b2 a6 |2 g( Wnmos : m1 vin vdd vout vss ........  .print par('(v(vin)-v(vout))/abs(i(m1))')1 C% ]  u) R3 l6 f
pmos : m1 vout vss vin vdd ........  .print par('(v(vin)-v(vout))/abs(i(m1))')
, q* b$ s1 u) O( w# Y
6 Z% Q1 h1 [9 X& W7 B4 @那如果是transmission gate的話
0 g( c6 E! o2 P' C5 M3 vvvdd   vdd   0   dc   3.0V5 l7 I, e" H0 }( Z
vvss   vss   0   dc   0.0v
7 q. j9 L9 {1 P) ^9 Qvvin   vin   0   dc   0.0v( t% e! b. k* {) ~" k/ E0 G
m1   vin   vdd   vout  vss  nch3  w=3.5u   l=0.35u 4 Y" w" D2 g4 G) [) y* V* A
m2   vout  vss   vin   vdd  pch3  w=3.5u   l=0.35u  1 v3 G8 j1 @1 q4 a" M7 F
那麼在.print部份的話  要怎麼寫
7 D! l+ E0 f& H' a3 |因為他不像nmos或者pmos一樣  只有m1的電流可以除
4 P0 }+ l* v( t+ p2 d8 j這樣怎麼求Ron# g5 D- a  r0 N
可否請大大解釋疑惑
1 q9 S# R6 t" T1 r4 C謝謝
11#
發表於 2008-7-8 09:33:51 | 只看該作者
可以是各別算出Ron,再運算
+ _1 N7 r, f$ t/ n8 @: E7 W6 H.print r_n=par('(v(vin)-v(vout))/abs(i(m1))')4 v; t3 k* q7 v: `+ |# \( d  W/ e2 P' u
.print r_p=par('(v(vin)-v(vout))/abs(i(m2))')
0 l. x3 F) S# h6 L.print r_pn=par('(r_n*r_p)/(r_n+r_p)')
. g$ i2 |2 b+ w, n, ~* ?, Y
6 `3 o" ]4 K. V) K0 _另外一種方式則是將電流相加再作運算& E4 V3 S  q7 U! _5 \
.print i_pn=par('abs(i(m1))+abs(i(m2))')) v& ]; m. ?* ^4 d& ^
.print r_p=par('(v(vin)-v(vout))/i_pn')
12#
發表於 2008-7-10 21:40:18 | 只看該作者
大大  我用了你的方法  可是結果怎麼跟書上畫的不一樣呢
' k' E& e* a8 T" X: q+ r1 L; |以下是我的SPICE檔/ B1 }# h+ r' i8 G& D& P+ q

4 t# c1 [7 w; U0 G* M, Fvvdd   vdd   0   dc   3.0V
) S" h: R9 E/ C; U8 w' Uvvss   vss   0   dc   0.0v' n% _0 Y' \7 q) s+ a! y
vvin   vin   0   dc   0.0v
/ }7 d1 M/ C% E6 @7 ~" S% ]m1   vin   vdd   vout  vss  nxxx  w=3.5u   l=0.35u
; i4 H) k9 a" W3 g; Z" v6 K( {m2   vout  vss   vin   vdd  pxxx  w=3.5u   l=0.35u  m=4
7 E# y/ x6 y$ Q
  S& c% l1 U$ {! [3 }
3 e  E5 S- c' x9 U% ?& Q以下是用 .print i_pn=par('abs(i(m1))+abs(i(m2))')  r_p=par('(v(vin)-v(vout))/i_pn')
9 Q/ O0 e4 T( p+ P: `
  b) q' p4 g9 a0 g" H% r" H$ Y.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)')$ h; u( W8 ?' M  s

$ D' s# n3 ~% V
) E0 ~& U. v! }# K9 @為何兩個結果會不一樣呢% D, g) w5 j! }0 X; O4 Y1 J
而且很納悶的是第二個方法為何要(相乘)/(相加)/ j' f: N& n3 w. O

* `# m. R. \1 |7 X可否請大大幫忙解答' G: K8 ^$ G( r- [& e0 [( Y! H
Thanks

本帖子中包含更多資源

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

x
13#
發表於 2008-7-11 00:20:41 | 只看該作者
第一個方法為何要(相乘)/(相加)???( q4 n  n. g4 @8 K) ]! J, R# H
你要計算transmission gate的電阻,而transmission gate就是PMOS和NMOS兩者並聯,要求並聯電阻的阻值,當然是(相乘)/(相加),這是很基本的電阻公式計算. t6 F- Y- s' L5 O* L- N
所以,我先計算出各別PMOS和NMOS的阻值再作計算
! L- A% B, T! ?' @. q% S* i
" z( g7 G4 c7 S, `至於兩種方法為何會不同
5 |* I6 [+ q3 P, e3 O0 A( J照理說應該要相同才對,不過,我倒是很好奇為何你的電阻計算出來是負的8 R7 z7 c+ `4 ^4 b: d. L
這點很不合理
' g5 \+ ~( S0 u4 F5 E7 F7 ?+ ]難道是你的VOUT沒有設對嗎??
14#
發表於 2008-7-13 12:05:56 | 只看該作者
如果我改成下面這樣
  x6 q% u. Y. M* n9 Y/ Y3 b.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)')
. G+ j* F+ {( m5 l電阻就會變正的, c" L1 r) u1 a
可是不管怎麼看  還是覺得不太對
- t/ |. n" y/ a- k3 s1 Y
( k- H' q) c/ q7 B2 {; M. o. k  Y以下是我的spice檔
+ x) g) ~. T0 ^( p# k3 G  I4 tvvdd   vdd   0   dc   3.0V' y& v- Q+ ^4 S! F
vvss   vss   0   dc   0.0v9 k' b8 C: K5 G/ S4 `4 C, i: m, v
vvin   vin   0   dc   0.0v: k) j0 p0 M5 {! p2 [
) g, ?. r; `2 x* q
m1   vin   vdd   vout  vss  nxx  w=wsize   l=lsize
" \( P; t% }! L/ N% B4 T; d. Q* Sm2   vout  vss   vin   vdd  pxx  w=wsize   l=lsize  
; W4 G$ P1 d( @* D& m
* U6 M  u( I( Z8 |7 Z) N; P) f*r1    vout  0     1k
/ _* \3 R, J. e8 h$ b5 I.dc vvin 0v 3.0v 0.05v  
' O' v! |3 ~/ \' a! j.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)')* J3 p* k0 ^5 B5 g6 Z; S( n; M+ 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)')
3 V8 B6 z2 Y( i, \0 H" l1 ]" ?
5 L+ z$ Z; [) N7 v.end1 d0 q( l1 o' ]) ?  F0 [
% U& ]' Y& D0 r5 M
希望大大幫我檢查一下  看看是否有錯
2 R  j: J: c% r" q) V& I8 m還有一個問題  就是為何不能用 v(vout)-v(vin) 而一定要用 v(vin)-v(vout) 呢8 p5 E' k/ G7 w. p, e, g5 Y4 \

4 M% a" @  O& R! N# e/ R可否幫忙解答5 ^( _2 w: U) q# _9 V- q- V
Thanks
15#
發表於 2008-7-13 15:48:16 | 只看該作者
sorry  上面打錯了: R; L( g9 i* z4 H! ~  B& `
應該是  rn=par('(v(vin)-v(vout))/abs(i(m1))') rp=par('(v(vin)-v(vout))/abs(i(m1))')  rpn=par('(rn*rp)/(rn+rp)') 才對$ k1 c+ P, Y3 c- f) s

5 a2 z: g3 N9 R. D! q還有想要請問一下   跑出來的模擬圖  要怎樣看電阻值呢6 [0 D- t& B$ F( W6 R
也就是說 NMOS 跟 transmission gate 的部分  要怎樣看; B" E# T. J% \
可否教導一下
" D9 @5 Y2 @  V3 `1 \Thanks
16#
發表於 2008-7-14 11:23:44 | 只看該作者
附圖Noname1應該就你說書上的圖吧) D! K! I4 |* X1 I- |

5 S: O+ `4 @" \( D* P9 P; C" W下面是我測試的transmission gate,而附圖Nonmame則是PMOS/NMOS/和PMOS+NMOS的電阻疊圖
% A$ w$ x3 c& R' g5 b3 G& Qmp   in     vsa       vddah vddah  P_33_G2 L=0.35u W=5u M=1
5 F6 R! A, L) ]' |8 \mn   in     vddah     vsa     vsa    N_33_G2 L=0.35u W=5u M=1; {! j& R$ @# j- X' d3 f
vvsa      vsa       0    0
  N+ E9 O& K( L* r% Mvddah  vddah  0    vddah
. |7 V6 F9 T* p& Gvin    in     0    0% x. f$ E2 B( ^0 Z6 _- W
.dc vin 0.05 3.295 0.005 ) A4 c% c; f$ x* S# ~
.print r_p=par('(v(vddah)-v(in))/abs(i(mp))')
, G0 m- I, \8 C* ~/ H8 h; f.print r_n=par('(v(in))/abs(i(mn))')
9 T9 w0 N8 O$ {) Q& D# l& m.print r_pn=par('(r_p*r_n)/(r_p+r_n)')( G9 D; h! n1 }  A  K% Z
書上的圖是把PMOS和NMOS各別的電阻畫出來之後,再把兩個電阻並聯計算畫出來,其中,要計算PMOS電阻,一端要接VDDAH,而要計算NMOS電阻,另外一端則是接VSA

本帖子中包含更多資源

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

x

評分

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

查看全部評分

17#
發表於 2008-7-14 22:39:06 | 只看該作者
感謝版主這麼有耐心教導我
' y1 Q( S/ \5 O- i1 H這下子  我對開關又懂更多了
$ A- x" l3 b/ m) Y- p1 C1 }Thanks
18#
發表於 2008-7-25 11:23:31 | 只看該作者
原帖由 hiyato 於 2008-7-7 06:04 PM 發表 2 \0 E" K2 \& C
順便來請教各位大大
0 X& y7 n1 D( k; L( c有在其他書上看到
2 W7 e9 _+ |: O.print dc RON=par('1/LX8(mn1)')' m' p9 K- W: Z
這個指令似乎也能看RON的電阻值
3 `5 q) F. K1 O% _不過不太了解這個指令的意思?

6 t" V# v0 U; |3 A% J* O% e3 k) x  j1 y0 Y" K
LX8(mn1)是hspice自带的一个function,可以用gdso(mn1),表示mn1的电导的大小,正好是电阻值的倒数,用它替换更直观和简单。+ M( P4 j  Z6 q0 G6 `1 ]; b* @
.probe Ron=par('1/gdso(mn1)')
19#
發表於 2008-7-25 11:25:54 | 只看該作者
PMOS和NMOS组成的CMOS switch 电阻值写成% h4 A) G8 l) ~; e; N) ]
.probe Ron= par('1/(gdso(mn1)+gdso(mp1))') 就OK了
20#
發表於 2008-12-2 15:05:30 | 只看該作者
原帖由 finster 於 2008-7-14 11:23 AM 發表
3 X( ^, Y& {( d+ E. R附圖Noname1應該就你說書上的圖吧
$ W' P/ r, u. P: o
/ Z9 G' H# J& `- A下面是我測試的transmission gate,而附圖Nonmame則是PMOS/NMOS/和PMOS+NMOS的電阻疊圖
7 T5 P1 t# N; B1 ?mp   in     vsa       vddah vddah  P_33_G2 L=0.35u W=5u M=1
" U: o" g) U: _' Mmn   in     vddah      ...
9 x6 g( [/ f: P" I/ k  j
9 C; B* Q5 a3 i

3 i) R' i( f. N5 Y2 x為何2種方法跑出來不一樣??2 j- J7 ?' v# `# Z3 c

# C' ]* ^+ L' U( g5 [+ c3 A.print pmos_Ron=par('(v(vdd)-v(Vin))/abs(i(M1p))')! c/ B; Q& n! [4 f; [9 d! u2 s
.print nmos_Ron=par('(v(Vin))/abs(i(M1n))')
. S% r2 X6 d. a/ a.print TG_Ron=par('(pmos_Ron*nmos_Ron)/(pmos_Ron+nmos_Ron)')
, s  ~9 x  [9 A; m9 [1 m
  t! N! n- l6 \5 M, m.print pmos_Ron=par('1/gdso(M1n)')* ^& H6 H$ e$ f% M/ ^, e6 L9 R6 h7 E
.print nmos_Ron=par('1/gdso(M1p)'). [: [, z$ b$ T, U
.print TG_Ron=par('1/(gdso(M1n)+gdso(M1p))') 8 M7 I. a) S2 U( a, j

, Q# y) x/ l6 `" K; g我只PO上TG的RON圖形出來,' N. n" p/ f5 J% N0 |
上圖是用前三行指令跑出來的RON(2點電壓相減除以電流)
: n+ U( ^# z" i7 R" M) X下圖是用後三行指令跑出來的RON(直接用電導倒數)
) _; a5 T( R9 `* Z# D. `0 A$ ~) y: T為何跑出來的圖形不一樣,理論上應該是一樣的啊0 S0 s: P: u4 V& O: n8 y0 M
能否請各位大大位我解答

本帖子中包含更多資源

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

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

本版積分規則

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

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

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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