Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

搜索
1 2 3 4
查看: 37990|回復: 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即可
( P: Y$ o* Z4 h在HSPICE中利用PRINT寫來計算元件的(Vin-Vout)/I即可用awaves畫出元件的Ron電阻/ h% Q( z/ S$ k; s$ T5 ^
要特別注意一點的是,如果mos是內建的,那要留意外部電感的電流大小會"間接"決定mos的大小,或者mos是外接式的,那你直接看外部mos所提供的spice model大概就可以了
4#
發表於 2008-4-20 23:18:53 | 只看該作者
喔,嘿嘿,是finster版主啊,對啊就是V=IR啊,真是faint,原來我用錯電壓了,我錯用成Vout/I了怪不得不對呢,
5 v$ L9 R9 U  C/ X) S( ~; E" l/ ]1 g) u% @
谢谢您的解答!
5#
發表於 2008-7-7 00:05:00 | 只看該作者
這個問題剛好是最近一直困擾的問題$ Z) ^' W2 b/ E( z
為何不可以(vout-vin)/I阿+ i7 g+ L, J9 ^  w3 G
下面是我寫的spice檔
, o# x; R0 `# Sm1 vin vdd vout vss nch3 w=3.5u l=0.35u% y# F' O9 w  t9 ^2 F+ J3 i
r1 vout 0 1k* g3 n$ e8 i- u) M, r/ B6 }
在.print部份: }: M( o0 x. _4 S& n. v: E
是要寫 "v(vin)/v(vout)" "(v(vin)-v(vout))/i(r1)" "(v(vin)-v(vout))/i(m1)"呢* A5 Q+ P% l, E" g& D
可否幫忙解答?
+ s" X6 d- d: Tthanks
6#
發表於 2008-7-7 09:52:23 | 只看該作者
原帖由 dogst 於 2008-7-7 12:05 AM 發表 3 @+ B' b& l1 u- l. J. D  v8 p3 A
這個問題剛好是最近一直困擾的問題6 Y# x% P# p7 [7 c, ]
為何不可以(vout-vin)/I阿
% x/ b1 t9 r$ w下面是我寫的spice檔
5 X/ W+ ~# w8 o$ lm1 vin vdd vout vss nch3 w=3.5u l=0.35u; |: z' G  e7 O1 V
r1 vout 0 1k
# ]9 U* Y4 w- _! I9 X, o3 R  s在.print部份6 m/ Y6 ^" |) p* O3 f
是要寫 "v(vin)/v(vout)" "(v(vin)-v(vout))/i(r1)" " ...
- T2 m, H8 w" R& j. {6 C
; i) w5 I. A1 t9 o8 \
8 N1 w4 x) G: Z
7 m! O- Y! M7 H0 S* O  O! r
建議你不要加r1 vout 0 1k
& ]6 w$ g8 _2 y: r  f6 i因為你要對NMOS作計算ron,加了r1後,電流會對r1產生一個電壓,如此一來會壓縮到m1的vout電壓* O. J" c. l0 T7 a- S
建議的寫法為
+ X0 j9 o; W0 C! Rm1 vin vdd vout vss nch3 w=3.5u l=0.35u m=1# g, r' g& i# z6 a2 w" v
vvin  vin   vss    vss. m+ B: X3 r: R: B9 D, C+ J$ p
vvout vout  vss    vss/ F" O6 Q/ X/ Q$ R& x6 n. z
.dc vvin 0.001 3.3 0.1
3 n1 ~4 s; u3 }% _" ~.print PAR('(v(in))/abs(i(m1))')& L3 ?  r: v' R. ]8 h7 J
.print i(m1)
7#
發表於 2008-7-7 15:37:14 | 只看該作者
嗯嗯  有沒有加電阻  真的有差  謝謝2 M% [3 K3 }! _, V- |* p7 I7 z
可是又有一個問題(不好意思 問題真多 多多包含): O9 a  M# i2 o  K4 }5 S5 ~0 a
vvdd   vdd   0  3.0v
& @3 x5 h4 Z! xvvss   vss   0  0v
$ F7 X1 }6 y2 E6 g+ u/ [9 O& B+ wvvin   vin   0  0v 2 }1 H0 G# q; i
vvout  vout  0  0v
$ o3 i, [; ~, f. k% rm1   vin   vdd   vout  vss  nch3  w=3.5u   l=0.35u
; M( r' }, o& P! c.print a=par('(v(vin)-v(vout))/i(m1)') b=par('v(vin)/i(m1)')
4 `3 J* Y5 ]7 G8 e$ q; ^% L就是在vout的部份 有沒有設成0好像結果差很多耶  為何會這樣呢  w" L5 c" O# Q* [  J
還有在量Ron部份時  到底是要par('(v(vin)-v(vout))/i(m1)')還是要par('v(vin)/i(m1)')
+ V' m6 |5 U  E+ v  g$ R- ]2 \因為版主在回覆時  兩者都有提到  可是還是不清楚
+ n! D" G4 R4 h0 b) y. e. y7 O可否幫忙解答?/ @% R3 o& ]! b
Thanks
8#
發表於 2008-7-7 17:25:19 | 只看該作者
不好意思,一時之間沒留意到; k( b# d6 [- o* k: S
應該是1 v; U+ S+ V$ Q# q0 x( M- L$ D7 F
.print PAR('(v(vin)-v(vout))/abs(i(m1))')
  W& i6 B# s( S0 t要加abs則是因為電流有流進流出的問題,進而會產生正負符號的緣故,故而加了abs可以變成是正的
, Z% x0 ~- }) \' e另外,vout的部份,因為你是作.DC的sweep,而且是對NMOS,所以,source端一定要加最低電位(也就是0V)然後對drain作dc sweep: ~% J- _7 L8 \& E7 S9 a
反之若是PMOS,則是要加最高電位(亦即VDD), m+ G* }/ Q& V/ z/ A9 W# h
這是因為PMOS和NMOS兩者對VSS和VDD有不一樣的變化
9#
發表於 2008-7-7 18:04:27 | 只看該作者
順便來請教各位大大5 c. }4 ^$ w/ }; I3 h
有在其他書上看到; M% N! B! V2 r% u
.print dc RON=par('1/LX8(mn1)'). T" n$ J- o6 w, t0 Y) E8 B
這個指令似乎也能看RON的電阻值
" v/ U$ o9 A( g7 E7 F$ f! q! _* x不過不太了解這個指令的意思?
10#
發表於 2008-7-7 20:41:52 | 只看該作者
原帖由 finster 於 2008-7-7 05:25 PM 發表 * w% u$ o( D8 u
不好意思,一時之間沒留意到
/ D8 R* R) ~& k' o應該是
3 z" g: Y1 A, R* N.print PAR('(v(vin)-v(vout))/abs(i(m1))')
& ^  k; i& m, a8 t% X! h$ m/ v( [要加abs則是因為電流有流進流出的問題,進而會產生正負符號的緣故,故而加了abs可以變成是正的
- u/ k+ @. w) ]+ p另外,vout的部份,因為你是作.DC的swe ...
  }2 x, ?* K  O9 d# c* ?& r& V% W
% ?0 r$ [, Z1 T4 A4 U6 I; D0 k

& ]+ g* J# J% m! m0 j- |嗯嗯  原來如此' p# U+ k" y3 V* I3 Q$ P
意思也就是說 要寫成下面這樣子  對吧!
$ b; f' J9 A) I; A# }# Tnmos : m1 vin vdd vout vss ........  .print par('(v(vin)-v(vout))/abs(i(m1))'), x  k2 a6 p' f5 R9 r$ y
pmos : m1 vout vss vin vdd ........  .print par('(v(vin)-v(vout))/abs(i(m1))')
; B3 h+ P6 P! j& c% y* _: p; S. Y- M6 J
那如果是transmission gate的話
3 g4 Q1 @$ Q- Svvdd   vdd   0   dc   3.0V; s/ M! F0 ]3 Z8 t! L; ?- n
vvss   vss   0   dc   0.0v7 C4 K" ?3 ?* c: N
vvin   vin   0   dc   0.0v
% S! W8 x$ M$ S/ D/ t% t: Fm1   vin   vdd   vout  vss  nch3  w=3.5u   l=0.35u - v: v+ m6 U% Z' `7 m
m2   vout  vss   vin   vdd  pch3  w=3.5u   l=0.35u  3 U1 @% X0 Q7 m" L& U
那麼在.print部份的話  要怎麼寫
. B2 m) b8 ]9 \4 W; H$ y因為他不像nmos或者pmos一樣  只有m1的電流可以除3 R/ q1 j6 A+ `5 g. h3 b
這樣怎麼求Ron
1 r* @8 h5 g' m可否請大大解釋疑惑4 Y1 `3 Y/ q. r" v" X5 ]
謝謝
11#
發表於 2008-7-8 09:33:51 | 只看該作者
可以是各別算出Ron,再運算
  J' W4 z& b5 O; O.print r_n=par('(v(vin)-v(vout))/abs(i(m1))')
. z; d2 ~  _/ f& k) Y3 `& Y.print r_p=par('(v(vin)-v(vout))/abs(i(m2))')" w, r: {5 X  Z4 ?5 t! v
.print r_pn=par('(r_n*r_p)/(r_n+r_p)')# i; h3 _: Y$ {# e9 I4 x3 M

% r- b, g- k" g4 H另外一種方式則是將電流相加再作運算9 Q6 P0 b2 o9 ^* ], u; M
.print i_pn=par('abs(i(m1))+abs(i(m2))')
3 G5 O4 ^5 k+ g% M4 Y( Y+ D" B" c.print r_p=par('(v(vin)-v(vout))/i_pn')
12#
發表於 2008-7-10 21:40:18 | 只看該作者
大大  我用了你的方法  可是結果怎麼跟書上畫的不一樣呢
/ l/ R- p! E1 D; j) v1 C以下是我的SPICE檔. b# X  B# n; d# {4 E
8 E0 V2 z; W' d- [# b
vvdd   vdd   0   dc   3.0V) ]8 r4 I7 p7 J: J" _
vvss   vss   0   dc   0.0v4 |3 `! f) u( `4 i
vvin   vin   0   dc   0.0v
' c$ w+ G* q* tm1   vin   vdd   vout  vss  nxxx  w=3.5u   l=0.35u + ~5 d! g0 M9 e9 n: G
m2   vout  vss   vin   vdd  pxxx  w=3.5u   l=0.35u  m=4
( o8 J! H; }4 K( Z
- N% U' j$ e3 Z5 A" g  `/ A4 [/ V1 k4 w4 Q/ q2 j5 v1 ]+ p
以下是用 .print i_pn=par('abs(i(m1))+abs(i(m2))')  r_p=par('(v(vin)-v(vout))/i_pn')
5 \' [5 g: k1 c0 G# u! {/ m7 i8 y1 r
.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 E) q' V. g. n5 z. @- [- }
: m. H1 O* k; \/ G# D! ~! V' y+ R: b! A
為何兩個結果會不一樣呢
6 r0 `$ a2 [5 n  B" v而且很納悶的是第二個方法為何要(相乘)/(相加)1 h' m" k5 y3 f6 K2 g
1 {; F  Q) _/ B* O1 @$ c
可否請大大幫忙解答
$ X5 \( a& O" d' S0 ~Thanks

本帖子中包含更多資源

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

x
13#
發表於 2008-7-11 00:20:41 | 只看該作者
第一個方法為何要(相乘)/(相加)???; Q2 a8 f! @7 f/ F
你要計算transmission gate的電阻,而transmission gate就是PMOS和NMOS兩者並聯,要求並聯電阻的阻值,當然是(相乘)/(相加),這是很基本的電阻公式計算
5 a, W0 d5 W) _9 b# S7 _+ B+ p所以,我先計算出各別PMOS和NMOS的阻值再作計算( a- ?' _. ], M2 H' z

( z, H" v/ W" K; e至於兩種方法為何會不同
# F3 \# b; y( t照理說應該要相同才對,不過,我倒是很好奇為何你的電阻計算出來是負的
2 j! ?& E% n/ E* r$ U這點很不合理0 B9 A8 k. f4 v2 F1 `2 |9 \
難道是你的VOUT沒有設對嗎??
14#
發表於 2008-7-13 12:05:56 | 只看該作者
如果我改成下面這樣
. `, x+ Y. Q) E& y( S8 y- j0 _.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)')8 d5 o2 R3 ]* h' l6 t
電阻就會變正的
' J0 P6 V2 r) R$ C1 S可是不管怎麼看  還是覺得不太對
) x7 G; m* `7 ]8 N
( H2 U7 ]' v3 p以下是我的spice檔# u: o- |: U2 |$ J4 |. y
vvdd   vdd   0   dc   3.0V
0 Q! ]0 m% H) ~+ r( q. Vvvss   vss   0   dc   0.0v
7 k+ k; g2 @8 \' o: n  X# nvvin   vin   0   dc   0.0v
1 R* m2 U, R  O- i# g
4 a- P  B, l  n4 k9 rm1   vin   vdd   vout  vss  nxx  w=wsize   l=lsize ) y% C! _; i; f
m2   vout  vss   vin   vdd  pxx  w=wsize   l=lsize  * f$ H3 |/ x$ Y7 U; [

, N4 K2 a# }" @0 r4 e*r1    vout  0     1k
7 W/ u* N0 y: C* K3 g.dc vvin 0v 3.0v 0.05v  
) p  ]7 B) Q6 y* j. v6 @5 }.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)')1 c  w; }4 K: @& v# i# Y
.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)')
7 _! {/ d1 q- @# R: n6 o# a
9 `1 ^% p7 U0 }& a5 d.end
" ?: ^% I# C* l, [+ J9 V+ n$ B. \( {2 j# n
希望大大幫我檢查一下  看看是否有錯
. w6 j, M# G/ b* @還有一個問題  就是為何不能用 v(vout)-v(vin) 而一定要用 v(vin)-v(vout) 呢1 O2 g; O) X# ]; j
' l) U% R1 H7 e$ L6 J# k7 u  U- ~
可否幫忙解答' f8 x9 k5 N8 L) I
Thanks
15#
發表於 2008-7-13 15:48:16 | 只看該作者
sorry  上面打錯了
0 R  m/ A1 Q, Z5 F+ n% 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)') 才對$ L0 z0 m. D' e7 ]8 M0 {

) q& j& F2 L+ f7 A! r7 W還有想要請問一下   跑出來的模擬圖  要怎樣看電阻值呢
$ p# y1 B6 t6 L也就是說 NMOS 跟 transmission gate 的部分  要怎樣看
- U* p, l7 ?+ d$ U  ?  d* P3 T7 \, R可否教導一下* n) r" `! Q0 {9 f; {
Thanks
16#
發表於 2008-7-14 11:23:44 | 只看該作者
附圖Noname1應該就你說書上的圖吧) M: @" N  s+ {
  _* M$ l8 ]1 a) y  c1 f  z) M
下面是我測試的transmission gate,而附圖Nonmame則是PMOS/NMOS/和PMOS+NMOS的電阻疊圖4 s7 i1 j0 I% a$ D  a
mp   in     vsa       vddah vddah  P_33_G2 L=0.35u W=5u M=15 r: f! ^/ [% R9 e5 H& Y+ m
mn   in     vddah     vsa     vsa    N_33_G2 L=0.35u W=5u M=1) N: D- T; I% g( P8 Q9 V
vvsa      vsa       0    0  |" T2 {7 G* t! N
vddah  vddah  0    vddah1 W# F7 K  C1 L& b2 p
vin    in     0    04 u% ?0 S. @  h1 p! X
.dc vin 0.05 3.295 0.005
% m. e/ y5 S9 R6 g  v1 {, }" v( C.print r_p=par('(v(vddah)-v(in))/abs(i(mp))')
$ c* ~9 Q" U# ^) H.print r_n=par('(v(in))/abs(i(mn))')
7 n. x, \4 F* R. Q( q" x8 j% q.print r_pn=par('(r_p*r_n)/(r_p+r_n)')
: f  z( P7 |# z4 y, a: {7 O* [! o書上的圖是把PMOS和NMOS各別的電阻畫出來之後,再把兩個電阻並聯計算畫出來,其中,要計算PMOS電阻,一端要接VDDAH,而要計算NMOS電阻,另外一端則是接VSA

本帖子中包含更多資源

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

x

評分

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

查看全部評分

17#
發表於 2008-7-14 22:39:06 | 只看該作者
感謝版主這麼有耐心教導我
# r2 [7 y  _3 N1 J, ~; d這下子  我對開關又懂更多了$ C! |/ E5 B  k- e! x; J6 s
Thanks
18#
發表於 2008-7-25 11:23:31 | 只看該作者
原帖由 hiyato 於 2008-7-7 06:04 PM 發表
0 v1 q6 j5 Z; ]* Q順便來請教各位大大0 L. N, N7 c' t  m# b
有在其他書上看到  a( h7 |! k# ^( m
.print dc RON=par('1/LX8(mn1)')
' I. y0 [) B6 H" ^, |1 _這個指令似乎也能看RON的電阻值
! E0 I: D. ^. k! n$ K9 z' `/ h6 g不過不太了解這個指令的意思?

' r0 o8 `+ V  D% [/ D% k% D7 R; s) b. p0 C7 D$ D% k, `
LX8(mn1)是hspice自带的一个function,可以用gdso(mn1),表示mn1的电导的大小,正好是电阻值的倒数,用它替换更直观和简单。
$ M1 G% [$ M; @' j2 e  E.probe Ron=par('1/gdso(mn1)')
19#
發表於 2008-7-25 11:25:54 | 只看該作者
PMOS和NMOS组成的CMOS switch 电阻值写成2 N0 K/ Z* t' B4 c6 z( |
.probe Ron= par('1/(gdso(mn1)+gdso(mp1))') 就OK了
20#
發表於 2008-12-2 15:05:30 | 只看該作者
原帖由 finster 於 2008-7-14 11:23 AM 發表
4 D; P* T8 h) A0 `0 e$ |) ~1 e% R附圖Noname1應該就你說書上的圖吧, m1 m8 k% j7 B" b% V

0 `" t, {8 Z& {下面是我測試的transmission gate,而附圖Nonmame則是PMOS/NMOS/和PMOS+NMOS的電阻疊圖
- S) O/ U2 |) z' R- c6 d$ g4 smp   in     vsa       vddah vddah  P_33_G2 L=0.35u W=5u M=1
. S9 T: u6 P" y3 ?; hmn   in     vddah      ...

+ v$ b6 ~7 F. O, ^
# N- t/ ?% A8 X8 P- d& R+ c4 e+ u: {/ \( H4 w
為何2種方法跑出來不一樣??0 h; \8 K) i# o2 G2 B; A

' S* d7 x- k+ r, m, D5 r( l.print pmos_Ron=par('(v(vdd)-v(Vin))/abs(i(M1p))')* o' `* o, J9 n3 E4 j
.print nmos_Ron=par('(v(Vin))/abs(i(M1n))')
/ m' z2 ^. m  R, g* X7 g$ n7 [/ f+ C.print TG_Ron=par('(pmos_Ron*nmos_Ron)/(pmos_Ron+nmos_Ron)')0 ?. v: t* u3 w- ]1 @
  t: N4 l2 o7 Q; @
.print pmos_Ron=par('1/gdso(M1n)')6 Q' ]; k7 y6 f! Z4 l0 d$ t
.print nmos_Ron=par('1/gdso(M1p)')" g. i6 i$ g* L& F
.print TG_Ron=par('1/(gdso(M1n)+gdso(M1p))') ! \/ e, U  u* [: n0 r/ D

$ `; p% M, ]5 d. b  l/ ]我只PO上TG的RON圖形出來,3 Q& @: A* B) S* [1 x$ r- {
上圖是用前三行指令跑出來的RON(2點電壓相減除以電流)- @2 w2 B9 B6 r0 u) B, l
下圖是用後三行指令跑出來的RON(直接用電導倒數)% k) C, R* O! \9 Z8 T
為何跑出來的圖形不一樣,理論上應該是一樣的啊3 u" @% B  c7 d- P6 M
能否請各位大大位我解答

本帖子中包含更多資源

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

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

本版積分規則

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

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

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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