Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

搜索
1 2 3 4
查看: 37984|回復: 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即可
' |/ c5 d; V6 ?, B: ]在HSPICE中利用PRINT寫來計算元件的(Vin-Vout)/I即可用awaves畫出元件的Ron電阻" Z, E2 D% B5 o( k1 n* ]/ S
要特別注意一點的是,如果mos是內建的,那要留意外部電感的電流大小會"間接"決定mos的大小,或者mos是外接式的,那你直接看外部mos所提供的spice model大概就可以了
4#
發表於 2008-4-20 23:18:53 | 只看該作者
喔,嘿嘿,是finster版主啊,對啊就是V=IR啊,真是faint,原來我用錯電壓了,我錯用成Vout/I了怪不得不對呢, 3 @4 z  G: R1 {! \8 @0 v
7 R8 \3 ]- V) a! q0 U: ?
谢谢您的解答!
5#
發表於 2008-7-7 00:05:00 | 只看該作者
這個問題剛好是最近一直困擾的問題) r* M3 b6 D# h
為何不可以(vout-vin)/I阿
$ n) R& d& I* f下面是我寫的spice檔1 h9 z: H  j3 j8 b
m1 vin vdd vout vss nch3 w=3.5u l=0.35u/ X& u5 J2 A. u1 G
r1 vout 0 1k
) ^8 X8 v' b- w, ^2 @; k7 T* Z在.print部份
, \8 G+ D! v" ^0 K0 t是要寫 "v(vin)/v(vout)" "(v(vin)-v(vout))/i(r1)" "(v(vin)-v(vout))/i(m1)"呢
# M- ]" T* Z. u6 [0 c* E2 D: E4 ^可否幫忙解答?
  X( I% m+ }3 q: J& hthanks
6#
發表於 2008-7-7 09:52:23 | 只看該作者
原帖由 dogst 於 2008-7-7 12:05 AM 發表 . c3 Z: @; n: {" E
這個問題剛好是最近一直困擾的問題
( n* g8 v+ `2 B; h( E4 d, u+ a為何不可以(vout-vin)/I阿
4 |, x9 F) A" B/ b* l/ |下面是我寫的spice檔
. k+ ?1 U. X  Zm1 vin vdd vout vss nch3 w=3.5u l=0.35u) G. _. h2 l- b3 x8 X% g7 F
r1 vout 0 1k
) p9 h3 T9 O  u# d& k9 Y在.print部份
2 J8 s6 @* m; T+ X是要寫 "v(vin)/v(vout)" "(v(vin)-v(vout))/i(r1)" " ...
' F3 g/ G' Z, `- w. `& |

! w/ M9 ?+ K- q$ W4 S
2 {' S, ^& b* U2 a. \1 O: b, F, B# t) Z$ V1 I; h' V3 P: q
建議你不要加r1 vout 0 1k, W6 M3 C& O; X( X. g9 }) j
因為你要對NMOS作計算ron,加了r1後,電流會對r1產生一個電壓,如此一來會壓縮到m1的vout電壓  P, a( P4 }- q3 y& j) R, ~. N( P
建議的寫法為! ?. ?* i4 E$ N( H
m1 vin vdd vout vss nch3 w=3.5u l=0.35u m=1
8 x# T7 Z/ R, _* L0 a! Uvvin  vin   vss    vss
# z- W! ^, \( jvvout vout  vss    vss
( e9 [8 i7 [( W1 k.dc vvin 0.001 3.3 0.11 [6 o& _+ x% b9 ~2 u4 |# L
.print PAR('(v(in))/abs(i(m1))')& L) U/ ^4 t. {  i- U1 `; {
.print i(m1)
7#
發表於 2008-7-7 15:37:14 | 只看該作者
嗯嗯  有沒有加電阻  真的有差  謝謝9 i2 z% }0 z+ e8 o9 u& E: H
可是又有一個問題(不好意思 問題真多 多多包含)! t6 \6 X9 T5 l1 |+ e+ m
vvdd   vdd   0  3.0v
2 a* S- V8 A$ f9 Q3 P$ m; f8 yvvss   vss   0  0v   ?( M4 k8 z8 M7 y2 i7 Z
vvin   vin   0  0v ( a& I* s' t- P6 f
vvout  vout  0  0v
1 u9 ^) Y: B# M* }3 tm1   vin   vdd   vout  vss  nch3  w=3.5u   l=0.35u
$ X: z# S3 W7 v" }) x$ |/ G.print a=par('(v(vin)-v(vout))/i(m1)') b=par('v(vin)/i(m1)')
- v! ^  A- D4 s( f就是在vout的部份 有沒有設成0好像結果差很多耶  為何會這樣呢; X5 R; B( ]& K- D# C
還有在量Ron部份時  到底是要par('(v(vin)-v(vout))/i(m1)')還是要par('v(vin)/i(m1)')
6 X/ ~6 c' q8 ?' J: @! ?因為版主在回覆時  兩者都有提到  可是還是不清楚$ G  C: ?8 l& ?: x
可否幫忙解答?& S; N' H0 L3 v: d5 g3 I4 K
Thanks
8#
發表於 2008-7-7 17:25:19 | 只看該作者
不好意思,一時之間沒留意到
' ^1 i) d3 [6 R應該是6 h  p4 L1 K& ?( t4 {
.print PAR('(v(vin)-v(vout))/abs(i(m1))')7 O9 m2 ~3 Y0 n* }, z4 |
要加abs則是因為電流有流進流出的問題,進而會產生正負符號的緣故,故而加了abs可以變成是正的; e- {8 K  a( i. y
另外,vout的部份,因為你是作.DC的sweep,而且是對NMOS,所以,source端一定要加最低電位(也就是0V)然後對drain作dc sweep
/ U! p6 b" \1 W反之若是PMOS,則是要加最高電位(亦即VDD)% F% q. T  S7 Z  x2 Q8 ~, M5 c) f
這是因為PMOS和NMOS兩者對VSS和VDD有不一樣的變化
9#
發表於 2008-7-7 18:04:27 | 只看該作者
順便來請教各位大大
1 U) Y. ]; q) P# R有在其他書上看到
% `0 g9 i4 l; b.print dc RON=par('1/LX8(mn1)')- z6 X( y4 t( A
這個指令似乎也能看RON的電阻值
4 P) y( ^- U; A2 q) H/ U不過不太了解這個指令的意思?
10#
發表於 2008-7-7 20:41:52 | 只看該作者
原帖由 finster 於 2008-7-7 05:25 PM 發表 * v' Q) }/ ^/ }$ G6 [  w8 l8 i" I( S
不好意思,一時之間沒留意到
' i. v" t* ^) I' u! p5 X應該是
7 s- P: C) R9 P0 E.print PAR('(v(vin)-v(vout))/abs(i(m1))')
* M2 g9 X, l; Y0 C要加abs則是因為電流有流進流出的問題,進而會產生正負符號的緣故,故而加了abs可以變成是正的& x7 q: H0 p( d1 C) T4 @' N
另外,vout的部份,因為你是作.DC的swe ...

2 m2 P0 S0 o; f7 j. K& T. M, C# G4 s5 u$ k+ J/ g9 O
/ R  K( B& B* J
嗯嗯  原來如此% T- k3 W. t0 z; ]& U# i
意思也就是說 要寫成下面這樣子  對吧!- R# y# Z- L' }8 _$ V
nmos : m1 vin vdd vout vss ........  .print par('(v(vin)-v(vout))/abs(i(m1))')1 T/ ^# g& w5 i  `8 U
pmos : m1 vout vss vin vdd ........  .print par('(v(vin)-v(vout))/abs(i(m1))')
6 w6 R: c6 Y; ?. F: v- g, r) v5 h" S+ i* {) `' n% K# a" K! i
那如果是transmission gate的話4 Q+ V8 k  h- q% F
vvdd   vdd   0   dc   3.0V
9 n9 l4 W0 O4 Q% L9 }vvss   vss   0   dc   0.0v
' q$ {4 M4 n5 G% ^$ i8 cvvin   vin   0   dc   0.0v
  d* [+ _2 }: `- E: Wm1   vin   vdd   vout  vss  nch3  w=3.5u   l=0.35u 5 P: D& C* {/ ]+ i& p$ t4 M
m2   vout  vss   vin   vdd  pch3  w=3.5u   l=0.35u  
5 x6 p& I- r# @; I1 _( C# u那麼在.print部份的話  要怎麼寫6 p( \; l6 w! ~$ H( d
因為他不像nmos或者pmos一樣  只有m1的電流可以除2 R! l/ {. k+ L. C7 E: d: ]
這樣怎麼求Ron
" f9 Z6 X# }0 H& g9 f  G" P* a可否請大大解釋疑惑
' D$ X' k+ e) Q4 V1 y$ D6 x謝謝
11#
發表於 2008-7-8 09:33:51 | 只看該作者
可以是各別算出Ron,再運算/ I3 b& N3 C4 K4 S6 K
.print r_n=par('(v(vin)-v(vout))/abs(i(m1))')1 D4 x' U8 X# n1 m( g
.print r_p=par('(v(vin)-v(vout))/abs(i(m2))')
7 J$ _4 o+ }( Z' O0 F  ?.print r_pn=par('(r_n*r_p)/(r_n+r_p)')- T! b* b& ^9 W7 ~, ~7 a

/ `6 y( d- q4 [9 Q% D; M, t: X另外一種方式則是將電流相加再作運算
' Q: z+ d) l4 `6 ].print i_pn=par('abs(i(m1))+abs(i(m2))')
1 |4 C4 Q3 h" N( \.print r_p=par('(v(vin)-v(vout))/i_pn')
12#
發表於 2008-7-10 21:40:18 | 只看該作者
大大  我用了你的方法  可是結果怎麼跟書上畫的不一樣呢+ ?1 K( X% ]& F* Q, I' j
以下是我的SPICE檔7 E9 j: x* r6 f( ^# ^) a! d% y

  t% X  o: k3 O  a  p/ ivvdd   vdd   0   dc   3.0V
! U' E8 r+ b+ q# ~vvss   vss   0   dc   0.0v
& e" a9 e2 t$ g% k, n* Avvin   vin   0   dc   0.0v
/ o* ~6 e* Z: ]' V4 n9 Zm1   vin   vdd   vout  vss  nxxx  w=3.5u   l=0.35u / R" F, y/ k& a/ v2 R
m2   vout  vss   vin   vdd  pxxx  w=3.5u   l=0.35u  m=4
/ Q. C( X; `; m2 y8 l
/ n8 I" C! G2 ~/ p. |/ n
1 _& |, T- `! U- L6 N以下是用 .print i_pn=par('abs(i(m1))+abs(i(m2))')  r_p=par('(v(vin)-v(vout))/i_pn')
$ Z$ R: X% W) b* \9 d
" E4 `" q1 n6 h, \- o.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)')1 L6 j9 Z% m7 l# m) B: M; k

7 M. }+ _8 F) j6 _1 `: ?) a0 l0 F/ r8 J: a& c( d4 M
為何兩個結果會不一樣呢- l! C5 C! i" g/ c6 `' F
而且很納悶的是第二個方法為何要(相乘)/(相加)  [( K. p* v2 k- M; i

! |! W8 Q2 r! P: }可否請大大幫忙解答
* y9 ^3 K0 v7 [: y3 ?1 j7 qThanks

本帖子中包含更多資源

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

x
13#
發表於 2008-7-11 00:20:41 | 只看該作者
第一個方法為何要(相乘)/(相加)???
0 Z$ B7 d# d" N, p  o2 \8 O) O你要計算transmission gate的電阻,而transmission gate就是PMOS和NMOS兩者並聯,要求並聯電阻的阻值,當然是(相乘)/(相加),這是很基本的電阻公式計算) l: X: I8 g8 b  \
所以,我先計算出各別PMOS和NMOS的阻值再作計算2 v: A; ?% F7 L5 C; t. z% ]/ G: Q
% [0 U0 g3 m9 |) D
至於兩種方法為何會不同2 ?2 P# ?- L3 `' Y: X: p
照理說應該要相同才對,不過,我倒是很好奇為何你的電阻計算出來是負的2 T3 J1 @9 c! g6 I# K
這點很不合理  u9 R* Z  m7 v
難道是你的VOUT沒有設對嗎??
14#
發表於 2008-7-13 12:05:56 | 只看該作者
如果我改成下面這樣, M7 E) v( i* U
.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)')
/ S, z6 s0 M. q6 W2 u電阻就會變正的. h* _0 }# o3 N* o9 [2 s5 b
可是不管怎麼看  還是覺得不太對* \( z- m7 c) }5 z" o* P
) G& C- o( i( J" t: x+ Y6 T
以下是我的spice檔
8 V, Z+ F1 H7 Y6 }# W! \2 T4 {5 S0 @vvdd   vdd   0   dc   3.0V
1 F* P* g6 V5 g3 F9 O6 q2 Vvvss   vss   0   dc   0.0v
" ]7 t& W1 R0 f" S, f2 j5 J2 Yvvin   vin   0   dc   0.0v0 @" K  y+ U9 C$ t& Y

: ?( P" t2 \" Q4 K$ p! nm1   vin   vdd   vout  vss  nxx  w=wsize   l=lsize % x. T' l) P: n# d2 Q( d7 x
m2   vout  vss   vin   vdd  pxx  w=wsize   l=lsize  
3 k7 V; y7 E; ~+ M  J/ i7 x0 ]0 I5 [8 V- f
*r1    vout  0     1k% b  y" E: S9 l- u) j9 f
.dc vvin 0v 3.0v 0.05v  , f- A' q( `+ W! O  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)')0 W/ L3 V  ~- R; }
.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)')
% S* V, |7 J$ z5 p
  r% f' ]: r1 Z" v% O! Y/ @.end
  z4 C3 @+ b) ~: C4 i4 ?; l4 v1 l$ g+ k  _. Y; y9 I
希望大大幫我檢查一下  看看是否有錯
' ]3 s. o4 o2 c. I2 G: z. {還有一個問題  就是為何不能用 v(vout)-v(vin) 而一定要用 v(vin)-v(vout) 呢# q1 b4 j, N& @- j# C: Y; l- _

) r; [1 W' t" L$ K& C3 F: X- |可否幫忙解答/ v2 N0 w; y" ]3 k8 x: ^/ |, S- }
Thanks
15#
發表於 2008-7-13 15:48:16 | 只看該作者
sorry  上面打錯了6 }, T* N0 f% i; T
應該是  rn=par('(v(vin)-v(vout))/abs(i(m1))') rp=par('(v(vin)-v(vout))/abs(i(m1))')  rpn=par('(rn*rp)/(rn+rp)') 才對2 j) @* c2 K7 v7 x1 \

" s6 L+ R0 B* @& b$ h9 G還有想要請問一下   跑出來的模擬圖  要怎樣看電阻值呢
% u# X5 K8 q- L* I5 @也就是說 NMOS 跟 transmission gate 的部分  要怎樣看
6 _6 u# C. c+ R5 G3 j' t可否教導一下! W, a; _( |+ H" n3 i$ h; s- \/ v* i
Thanks
16#
發表於 2008-7-14 11:23:44 | 只看該作者
附圖Noname1應該就你說書上的圖吧
! }& H8 k$ t2 f3 A: i+ M/ t: t
& q, O# o1 ?0 U5 l3 ]0 h下面是我測試的transmission gate,而附圖Nonmame則是PMOS/NMOS/和PMOS+NMOS的電阻疊圖* w4 q  h2 ]% @  _+ X
mp   in     vsa       vddah vddah  P_33_G2 L=0.35u W=5u M=1" W# M+ \& x+ R+ y4 O3 j5 h" I& _
mn   in     vddah     vsa     vsa    N_33_G2 L=0.35u W=5u M=19 Y2 a* j+ F1 G2 p
vvsa      vsa       0    0% E5 e3 X3 _  y5 [% @/ s
vddah  vddah  0    vddah2 W* M1 z2 y" M, Z4 c2 T$ F. c
vin    in     0    0% c) y; _% r3 Z8 I  a4 x9 l; K
.dc vin 0.05 3.295 0.005 - j  @! J  ]4 K# v* y4 c
.print r_p=par('(v(vddah)-v(in))/abs(i(mp))')1 U2 @1 C; `+ [% Q
.print r_n=par('(v(in))/abs(i(mn))')
  H: [- e  ?9 s4 U.print r_pn=par('(r_p*r_n)/(r_p+r_n)')3 K; q: Z! Q- C9 y8 G
書上的圖是把PMOS和NMOS各別的電阻畫出來之後,再把兩個電阻並聯計算畫出來,其中,要計算PMOS電阻,一端要接VDDAH,而要計算NMOS電阻,另外一端則是接VSA

本帖子中包含更多資源

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

x

評分

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

查看全部評分

17#
發表於 2008-7-14 22:39:06 | 只看該作者
感謝版主這麼有耐心教導我
, z) e) V% |/ z8 p這下子  我對開關又懂更多了6 W9 T# ~) E" Q5 u( P" D2 h& @
Thanks
18#
發表於 2008-7-25 11:23:31 | 只看該作者
原帖由 hiyato 於 2008-7-7 06:04 PM 發表
5 ^+ j9 s: w" v5 T4 ~. V順便來請教各位大大
7 Z/ G! m- w" e5 R7 l& O6 @有在其他書上看到
, Y. l* M1 b' G.print dc RON=par('1/LX8(mn1)')2 c5 Q  B% F# P3 ^4 c7 C
這個指令似乎也能看RON的電阻值, ~$ U5 \+ `# {$ u3 E
不過不太了解這個指令的意思?
. ~+ x$ {2 Z. Z$ g6 }4 P

2 f* [$ m8 b' r7 O6 F8 ^3 g" ILX8(mn1)是hspice自带的一个function,可以用gdso(mn1),表示mn1的电导的大小,正好是电阻值的倒数,用它替换更直观和简单。2 a6 \2 K! D( @4 x! `3 {) W4 f
.probe Ron=par('1/gdso(mn1)')
19#
發表於 2008-7-25 11:25:54 | 只看該作者
PMOS和NMOS组成的CMOS switch 电阻值写成# p  Q6 P* p$ l0 B" N+ D# z7 d6 [
.probe Ron= par('1/(gdso(mn1)+gdso(mp1))') 就OK了
20#
發表於 2008-12-2 15:05:30 | 只看該作者
原帖由 finster 於 2008-7-14 11:23 AM 發表
  l4 h+ j3 U( e4 c# I0 q  |附圖Noname1應該就你說書上的圖吧/ k7 G4 V2 R- v7 V, ?& C1 h8 i

7 D4 v' V3 i+ ]0 `* J, ~下面是我測試的transmission gate,而附圖Nonmame則是PMOS/NMOS/和PMOS+NMOS的電阻疊圖
( p# ~% i; O& |8 x+ b! smp   in     vsa       vddah vddah  P_33_G2 L=0.35u W=5u M=1
: X9 x# t% ?( e3 e3 n1 ^, zmn   in     vddah      ...

! E6 W9 g8 m% D. m. v7 _3 k1 C; Z/ p: }: q: m

5 D( }/ a' C( c* t3 d# \為何2種方法跑出來不一樣??7 ?# I& W8 ]5 E, j

2 p" g6 M$ b. ?, D6 ].print pmos_Ron=par('(v(vdd)-v(Vin))/abs(i(M1p))')7 F+ y. t4 ?. L) N' l, m  j8 u" S2 q
.print nmos_Ron=par('(v(Vin))/abs(i(M1n))')
0 S: S7 w& k% c.print TG_Ron=par('(pmos_Ron*nmos_Ron)/(pmos_Ron+nmos_Ron)'); P. Q: M9 S5 z1 Y; e0 G& `+ N* w" u
9 M* P8 y/ u8 O( `
.print pmos_Ron=par('1/gdso(M1n)'): Z8 f, ?) X( B0 J* O
.print nmos_Ron=par('1/gdso(M1p)')
! m0 o4 V) z) i+ p' C9 \.print TG_Ron=par('1/(gdso(M1n)+gdso(M1p))') $ w/ c9 G- f; N" ~+ ~
0 D. u! c4 C' I# m2 b; @
我只PO上TG的RON圖形出來,6 [& J- y' }0 T
上圖是用前三行指令跑出來的RON(2點電壓相減除以電流)
" v% i( S2 I! E* ^0 e* S: @4 ]% @下圖是用後三行指令跑出來的RON(直接用電導倒數)
$ i3 D1 f  c* F1 _為何跑出來的圖形不一樣,理論上應該是一樣的啊6 u% p, Q8 c! p+ \
能否請各位大大位我解答

本帖子中包含更多資源

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

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

本版積分規則

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

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

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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