Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

搜索
1 2 3 4
查看: 36577|回復: 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即可/ n# l0 K' U1 B* i, o2 V
在HSPICE中利用PRINT寫來計算元件的(Vin-Vout)/I即可用awaves畫出元件的Ron電阻
  a" E, u/ F5 J' c& q要特別注意一點的是,如果mos是內建的,那要留意外部電感的電流大小會"間接"決定mos的大小,或者mos是外接式的,那你直接看外部mos所提供的spice model大概就可以了
4#
發表於 2008-4-20 23:18:53 | 只看該作者
喔,嘿嘿,是finster版主啊,對啊就是V=IR啊,真是faint,原來我用錯電壓了,我錯用成Vout/I了怪不得不對呢,
  N. f% A6 x6 ?
( U, n' l- a9 m8 P% K9 f: C  |7 x谢谢您的解答!
5#
發表於 2008-7-7 00:05:00 | 只看該作者
這個問題剛好是最近一直困擾的問題9 l* x& E" D, h' r8 U
為何不可以(vout-vin)/I阿
9 n& a0 U. E2 p( ~下面是我寫的spice檔( Q' w. J/ r0 i1 ^  M
m1 vin vdd vout vss nch3 w=3.5u l=0.35u$ I% v  M2 Y5 v2 Q8 v  B
r1 vout 0 1k1 |/ C( h( i8 {7 g! q0 d" x5 {
在.print部份
0 J# u8 C# I* k: l9 B5 J' M是要寫 "v(vin)/v(vout)" "(v(vin)-v(vout))/i(r1)" "(v(vin)-v(vout))/i(m1)"呢
3 Q1 Z6 G% j* H9 E) X! k可否幫忙解答?8 @, m7 a) k) P* \. g9 n0 I. e
thanks
6#
發表於 2008-7-7 09:52:23 | 只看該作者
原帖由 dogst 於 2008-7-7 12:05 AM 發表
6 n& e9 o: H8 i' d0 g4 F這個問題剛好是最近一直困擾的問題
* W8 S. _( M9 b為何不可以(vout-vin)/I阿
% r( j* C0 z% E8 D下面是我寫的spice檔
& Z% W, ~9 ?. h, |  V: G$ bm1 vin vdd vout vss nch3 w=3.5u l=0.35u0 @9 I" l9 w$ K) z5 R
r1 vout 0 1k2 Z& c5 A( N, C1 |
在.print部份
6 y" j8 l6 N0 r8 T+ g" U是要寫 "v(vin)/v(vout)" "(v(vin)-v(vout))/i(r1)" " ...
. ^) \# W9 F* P  v4 v  J1 a

- i8 d! \  \. {. @& N1 J, v0 g6 P5 s1 q) x! j* d) i
& C# _+ D  e2 K" v- ?
建議你不要加r1 vout 0 1k
& t# u4 u# `0 q- Z因為你要對NMOS作計算ron,加了r1後,電流會對r1產生一個電壓,如此一來會壓縮到m1的vout電壓
5 f; ~; p1 [( e/ n建議的寫法為
' I4 X- d$ I# bm1 vin vdd vout vss nch3 w=3.5u l=0.35u m=1
# A! l3 T" B+ evvin  vin   vss    vss
' \* X4 i# O; D- R. s6 o2 ]vvout vout  vss    vss+ X% h$ E' r+ L$ F1 o; V
.dc vvin 0.001 3.3 0.1
% n# f4 k9 Y. K2 X.print PAR('(v(in))/abs(i(m1))')  e0 g+ V1 E6 x  j
.print i(m1)
7#
發表於 2008-7-7 15:37:14 | 只看該作者
嗯嗯  有沒有加電阻  真的有差  謝謝
9 E4 w$ T7 v- f可是又有一個問題(不好意思 問題真多 多多包含)
( o7 e( c; D3 K$ N6 T5 v9 @) @2 _vvdd   vdd   0  3.0v
: r; ^3 U8 }% o* l" b3 x; Nvvss   vss   0  0v
8 _8 g/ D- @4 c# J8 kvvin   vin   0  0v
1 U" }0 I0 n, F( Gvvout  vout  0  0v # [# N/ a- H. B+ ^2 i
m1   vin   vdd   vout  vss  nch3  w=3.5u   l=0.35u 5 J1 _) l% L2 j$ H
.print a=par('(v(vin)-v(vout))/i(m1)') b=par('v(vin)/i(m1)'). P# L8 b0 Y! X& f8 E. Q
就是在vout的部份 有沒有設成0好像結果差很多耶  為何會這樣呢# |8 m) X4 Y2 w
還有在量Ron部份時  到底是要par('(v(vin)-v(vout))/i(m1)')還是要par('v(vin)/i(m1)')
& `0 M( ]8 [" ?7 \. J因為版主在回覆時  兩者都有提到  可是還是不清楚
# t3 d! u0 c3 z& M6 \- X0 E可否幫忙解答?1 R# C7 A& o" N$ k# _8 s
Thanks
8#
發表於 2008-7-7 17:25:19 | 只看該作者
不好意思,一時之間沒留意到' d- z' ~; j# O6 F( \
應該是
7 L" e2 \' [7 f' T7 g7 L0 D.print PAR('(v(vin)-v(vout))/abs(i(m1))')
8 g2 M8 U3 [( d3 j5 B要加abs則是因為電流有流進流出的問題,進而會產生正負符號的緣故,故而加了abs可以變成是正的& F+ j# t8 h; \6 a
另外,vout的部份,因為你是作.DC的sweep,而且是對NMOS,所以,source端一定要加最低電位(也就是0V)然後對drain作dc sweep6 T# J' \/ H- ?. Y2 V5 ]" B$ l
反之若是PMOS,則是要加最高電位(亦即VDD). e' `5 s/ ^/ t' g: t" D5 q8 I
這是因為PMOS和NMOS兩者對VSS和VDD有不一樣的變化
9#
發表於 2008-7-7 18:04:27 | 只看該作者
順便來請教各位大大4 b6 O3 T1 A5 u4 D+ d: }
有在其他書上看到
$ v: N5 q& @. o; p( i& p.print dc RON=par('1/LX8(mn1)')
, m/ ~; L: G* p7 |" P7 F- l這個指令似乎也能看RON的電阻值0 u) a* `. _& `! g6 q7 Y
不過不太了解這個指令的意思?
10#
發表於 2008-7-7 20:41:52 | 只看該作者
原帖由 finster 於 2008-7-7 05:25 PM 發表 1 ~9 ]7 X+ v+ t' a* C6 u* L
不好意思,一時之間沒留意到
- ?) L  j4 q2 M4 K, K8 t應該是
+ k& D+ Z# V; G) V.print PAR('(v(vin)-v(vout))/abs(i(m1))')
6 g6 j# C* I! A# d, q9 z要加abs則是因為電流有流進流出的問題,進而會產生正負符號的緣故,故而加了abs可以變成是正的
1 m  K& E1 {  X) A  [* P# ^另外,vout的部份,因為你是作.DC的swe ...

, C6 ~! ]( c4 t, y- o/ F5 [4 B$ H3 U! t
, k, r2 g0 T/ ~' f$ B
嗯嗯  原來如此$ S4 z8 G1 d- R) Y" c( X, H4 U
意思也就是說 要寫成下面這樣子  對吧!
  [2 A9 m3 G( V- G% [+ cnmos : m1 vin vdd vout vss ........  .print par('(v(vin)-v(vout))/abs(i(m1))')
+ h, g/ G% P: j6 \  Dpmos : m1 vout vss vin vdd ........  .print par('(v(vin)-v(vout))/abs(i(m1))'). N/ j- ~9 H( {! _; m
& k' b7 w1 t$ d* S4 [
那如果是transmission gate的話4 s; x2 e" ~2 b+ \; |
vvdd   vdd   0   dc   3.0V1 r7 l. [2 V3 Z4 S# E" ?
vvss   vss   0   dc   0.0v0 H% x& {- e' F4 n0 v9 E; ]
vvin   vin   0   dc   0.0v" V- z7 k: l- @- m( Z% \
m1   vin   vdd   vout  vss  nch3  w=3.5u   l=0.35u
, M, l# l2 g" L& qm2   vout  vss   vin   vdd  pch3  w=3.5u   l=0.35u  * `. k" D, m& f4 A, @! C, S% v
那麼在.print部份的話  要怎麼寫) B4 Z( w" v5 V! }- G+ G
因為他不像nmos或者pmos一樣  只有m1的電流可以除; T# T% T9 p) L8 |1 x# e3 M8 {
這樣怎麼求Ron! F. ]# {  G. h3 q. L
可否請大大解釋疑惑
, U& f/ B9 U' T% ?- o+ `謝謝
11#
發表於 2008-7-8 09:33:51 | 只看該作者
可以是各別算出Ron,再運算) ^5 C' a: y2 M3 R
.print r_n=par('(v(vin)-v(vout))/abs(i(m1))')
! b/ e4 T6 {& Y0 H.print r_p=par('(v(vin)-v(vout))/abs(i(m2))')
4 c+ z. K+ E/ Z$ j3 H.print r_pn=par('(r_n*r_p)/(r_n+r_p)')
& Z) z5 E8 J! `# t9 x+ O' o! X* A6 P$ L; o: b& l" r, c
另外一種方式則是將電流相加再作運算. y$ z. L' G& N5 A6 R
.print i_pn=par('abs(i(m1))+abs(i(m2))')
- `" i1 N% Q) d4 b) n$ P.print r_p=par('(v(vin)-v(vout))/i_pn')
12#
發表於 2008-7-10 21:40:18 | 只看該作者
大大  我用了你的方法  可是結果怎麼跟書上畫的不一樣呢
! d9 S, P3 C/ O6 ]* \+ t" G0 H以下是我的SPICE檔/ d$ h8 }5 J3 b6 t
1 l$ y' T  b9 M" h& ^; g3 r; u' o
vvdd   vdd   0   dc   3.0V
3 d6 h% r. l7 o% jvvss   vss   0   dc   0.0v4 v6 S& K* p5 @. t1 E9 y. p- H9 j: i
vvin   vin   0   dc   0.0v! e  C' X/ S# [) G0 M& g( J
m1   vin   vdd   vout  vss  nxxx  w=3.5u   l=0.35u
& K+ |) a4 l! L$ E( c& b1 lm2   vout  vss   vin   vdd  pxxx  w=3.5u   l=0.35u  m=4 / f& ~, T: ?9 I
8 i7 K& g7 d- M2 F( _* z

# ?6 K$ }5 \. @! W$ l$ w2 L以下是用 .print i_pn=par('abs(i(m1))+abs(i(m2))')  r_p=par('(v(vin)-v(vout))/i_pn')2 J$ }" }, }; ^" v" Q; s) m* E
: h- b: b' X7 n! h2 N# X
.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)')
5 }$ V& \  \. N' y
5 }& l9 W  i- u1 B1 f
* `- P, N: p, p- W7 S為何兩個結果會不一樣呢2 J  C( i+ L$ G  E' N, c2 b6 f
而且很納悶的是第二個方法為何要(相乘)/(相加)1 P! G% l7 w2 ^
' ^$ c; q% _* Q
可否請大大幫忙解答
3 C7 ~, S' w1 q( ?7 G% bThanks

本帖子中包含更多資源

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

x
13#
發表於 2008-7-11 00:20:41 | 只看該作者
第一個方法為何要(相乘)/(相加)???# y2 c6 h' ~6 g3 ^1 k0 }
你要計算transmission gate的電阻,而transmission gate就是PMOS和NMOS兩者並聯,要求並聯電阻的阻值,當然是(相乘)/(相加),這是很基本的電阻公式計算3 ^& j' @* J3 R& A
所以,我先計算出各別PMOS和NMOS的阻值再作計算
$ _9 I" D* B/ V5 G2 x! K: ^- C" Y- a$ y$ ^' {" B) A4 X, G) l( l
至於兩種方法為何會不同
: S& \. |$ k2 n; L/ X. L: X5 p照理說應該要相同才對,不過,我倒是很好奇為何你的電阻計算出來是負的( w2 X2 M2 T5 S" b: k% S) v( b7 z
這點很不合理) x  T+ }4 S2 L7 ^6 _+ i2 Q, s0 }
難道是你的VOUT沒有設對嗎??
14#
發表於 2008-7-13 12:05:56 | 只看該作者
如果我改成下面這樣( z7 Y3 _/ H- d+ `! p2 s1 h
.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)')- r( R) P8 q0 R6 h! U5 d
電阻就會變正的
! w& ^. q5 P9 z5 e- E  y% x+ S可是不管怎麼看  還是覺得不太對8 H  f9 s) f) M
* v6 L9 ^. D: o4 d3 a! S$ n
以下是我的spice檔) G( C/ K: t6 P! a& U
vvdd   vdd   0   dc   3.0V
. q. D9 d. e' @9 H. s# g4 z, Bvvss   vss   0   dc   0.0v- W4 h) E( k2 D5 K
vvin   vin   0   dc   0.0v
# ~/ s; p/ P) i: e/ i4 K' U' G/ E
m1   vin   vdd   vout  vss  nxx  w=wsize   l=lsize # ~" l2 ^) q4 o2 M! p
m2   vout  vss   vin   vdd  pxx  w=wsize   l=lsize  $ k; D5 z" _1 @  l

3 ?/ C4 I) F9 s/ e) t( o' }*r1    vout  0     1k, F- ?/ z6 o! o( i) N% K
.dc vvin 0v 3.0v 0.05v  % N+ E4 `6 }, c& v2 r
.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)')5 y: B; s0 R  p* O8 x1 t  m
.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)'); L+ B1 J: Z( }, D9 V7 c' t  U
1 P/ s" n% Z5 F! S
.end# {; o& s! n/ v7 u2 k7 E, g" }8 X

) i9 O4 Q/ y0 Z# u9 z' M* y# v希望大大幫我檢查一下  看看是否有錯
$ [7 `$ W  h" E- f還有一個問題  就是為何不能用 v(vout)-v(vin) 而一定要用 v(vin)-v(vout) 呢
" @9 e3 d2 ?) ^# K7 b8 W3 z& L
8 c3 X& J6 {4 `5 o( r) t! ^& k& o+ ?. W1 m可否幫忙解答( K* c% Y( c; b: L8 g
Thanks
15#
發表於 2008-7-13 15:48:16 | 只看該作者
sorry  上面打錯了
6 [1 t, ?) r- J+ J% O應該是  rn=par('(v(vin)-v(vout))/abs(i(m1))') rp=par('(v(vin)-v(vout))/abs(i(m1))')  rpn=par('(rn*rp)/(rn+rp)') 才對* t$ B. Y, g5 \3 F0 s9 m6 O6 T

/ f: r' v! ~" I( T& ^6 ~% Y! B還有想要請問一下   跑出來的模擬圖  要怎樣看電阻值呢
8 ~* W2 \! Y! i2 O, q也就是說 NMOS 跟 transmission gate 的部分  要怎樣看
- |' b* n8 F* M可否教導一下
0 e' S% u8 V& jThanks
16#
發表於 2008-7-14 11:23:44 | 只看該作者
附圖Noname1應該就你說書上的圖吧
% q8 B; {! R- J- |9 j  K+ Q* V
% H7 K' m" _. x6 M下面是我測試的transmission gate,而附圖Nonmame則是PMOS/NMOS/和PMOS+NMOS的電阻疊圖
6 u6 h& z3 J9 B+ h! Omp   in     vsa       vddah vddah  P_33_G2 L=0.35u W=5u M=18 J! I/ e7 J" V7 ^4 J) K' p2 a
mn   in     vddah     vsa     vsa    N_33_G2 L=0.35u W=5u M=1
$ B4 R3 M  i, ^vvsa      vsa       0    0+ i* Q9 \: [: Q' o; P% W( ~2 t
vddah  vddah  0    vddah* t6 q' j: d" H  X. V9 |
vin    in     0    02 e6 T3 [* a9 J& N; _# p) L3 c
.dc vin 0.05 3.295 0.005
- r+ X: N, _" D# D6 e$ A: O.print r_p=par('(v(vddah)-v(in))/abs(i(mp))')
8 ~9 W  }+ Q" ~  m; B* s( Q.print r_n=par('(v(in))/abs(i(mn))')
" B% A; k. o& r/ x.print r_pn=par('(r_p*r_n)/(r_p+r_n)')
$ E: T4 M8 N0 z' O" f書上的圖是把PMOS和NMOS各別的電阻畫出來之後,再把兩個電阻並聯計算畫出來,其中,要計算PMOS電阻,一端要接VDDAH,而要計算NMOS電阻,另外一端則是接VSA

本帖子中包含更多資源

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

x

評分

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

查看全部評分

17#
發表於 2008-7-14 22:39:06 | 只看該作者
感謝版主這麼有耐心教導我9 w* U5 ]4 @! e- O" e
這下子  我對開關又懂更多了' T) |( t7 W( A
Thanks
18#
發表於 2008-7-25 11:23:31 | 只看該作者
原帖由 hiyato 於 2008-7-7 06:04 PM 發表 . h  W" B+ J, f. J& ]
順便來請教各位大大; X/ m5 G8 v! O& _* ]& J
有在其他書上看到' ?: _% S' V) v) w% e" E' o; a' L
.print dc RON=par('1/LX8(mn1)')
* c: E9 h0 K( r) p+ `- y6 N4 e這個指令似乎也能看RON的電阻值# i- F4 }: N! j0 u% r6 j& o
不過不太了解這個指令的意思?

4 X0 V% r% K- O! }
- }6 x" I/ ?; MLX8(mn1)是hspice自带的一个function,可以用gdso(mn1),表示mn1的电导的大小,正好是电阻值的倒数,用它替换更直观和简单。
2 n( O1 T  z8 P6 n# a( S.probe Ron=par('1/gdso(mn1)')
19#
發表於 2008-7-25 11:25:54 | 只看該作者
PMOS和NMOS组成的CMOS switch 电阻值写成8 Z' F5 `4 }5 Q" c
.probe Ron= par('1/(gdso(mn1)+gdso(mp1))') 就OK了
20#
發表於 2008-12-2 15:05:30 | 只看該作者
原帖由 finster 於 2008-7-14 11:23 AM 發表
. R% V! o9 _# P0 t) Z' e附圖Noname1應該就你說書上的圖吧
, T1 [/ g9 c% i& F% c1 ]4 |! C5 R$ f; X) E5 Q) x% `0 Q
下面是我測試的transmission gate,而附圖Nonmame則是PMOS/NMOS/和PMOS+NMOS的電阻疊圖8 i7 x- V" I. T4 p# S. f' y& n
mp   in     vsa       vddah vddah  P_33_G2 L=0.35u W=5u M=1
/ b6 J, ^: x2 j  E5 j' y! Rmn   in     vddah      ...

# J5 k7 L8 a4 Y& @0 y$ }9 o: @
9 \; U( }3 p8 l+ S2 Z
9 [# O! D: n$ u( F! J. J為何2種方法跑出來不一樣??
8 T! W! X8 C/ o
9 h0 h8 S( {3 E+ {4 |: L.print pmos_Ron=par('(v(vdd)-v(Vin))/abs(i(M1p))')
/ \' w) P* {" j  R: D, X% S.print nmos_Ron=par('(v(Vin))/abs(i(M1n))')' M, F: u! a  x; v) E9 p
.print TG_Ron=par('(pmos_Ron*nmos_Ron)/(pmos_Ron+nmos_Ron)')
0 O/ i. z$ Q) P% l
; L+ k+ d' v; W.print pmos_Ron=par('1/gdso(M1n)')
8 G# k+ Q$ ~6 r+ H' L3 X& u$ K.print nmos_Ron=par('1/gdso(M1p)')9 J( {7 @6 c' m
.print TG_Ron=par('1/(gdso(M1n)+gdso(M1p))') # u& {* K9 Q" w8 J. `  C
) J! {9 R) I% f! Z  I
我只PO上TG的RON圖形出來,0 n, z: u% x6 A5 ^& |: E
上圖是用前三行指令跑出來的RON(2點電壓相減除以電流)
6 L2 n" f2 S3 e下圖是用後三行指令跑出來的RON(直接用電導倒數)* f/ |0 M* z9 h( [; O
為何跑出來的圖形不一樣,理論上應該是一樣的啊
% ~: ^2 c* b( I$ I( ]+ u( X8 Q能否請各位大大位我解答

本帖子中包含更多資源

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

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

本版積分規則

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

GMT+8, 2024-6-3 12:01 AM , Processed in 0.151019 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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