Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

搜索
1 2 3 4
查看: 37986|回復: 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即可; u/ Z8 s4 J( o) S, U( {
在HSPICE中利用PRINT寫來計算元件的(Vin-Vout)/I即可用awaves畫出元件的Ron電阻
% j% U2 T" n4 Y/ J5 T要特別注意一點的是,如果mos是內建的,那要留意外部電感的電流大小會"間接"決定mos的大小,或者mos是外接式的,那你直接看外部mos所提供的spice model大概就可以了
4#
發表於 2008-4-20 23:18:53 | 只看該作者
喔,嘿嘿,是finster版主啊,對啊就是V=IR啊,真是faint,原來我用錯電壓了,我錯用成Vout/I了怪不得不對呢, : ?( a5 z8 Q& y0 B( `' W& f

  O0 ]2 T) s8 q0 o谢谢您的解答!
5#
發表於 2008-7-7 00:05:00 | 只看該作者
這個問題剛好是最近一直困擾的問題
! Y+ f+ z7 J; u9 H- f# J3 Q為何不可以(vout-vin)/I阿
/ f4 c3 ?( m. M下面是我寫的spice檔
+ {/ c- G2 ]% z! l  [! im1 vin vdd vout vss nch3 w=3.5u l=0.35u
  v5 N5 F( z- P# y) mr1 vout 0 1k
& [; {4 k% a# Q  n7 n$ Q3 M在.print部份6 q& S+ e! s% R' k$ S
是要寫 "v(vin)/v(vout)" "(v(vin)-v(vout))/i(r1)" "(v(vin)-v(vout))/i(m1)"呢
8 x! i6 Q* j) M( y- }可否幫忙解答?: m" Y/ a, w# n5 R3 }# _
thanks
6#
發表於 2008-7-7 09:52:23 | 只看該作者
原帖由 dogst 於 2008-7-7 12:05 AM 發表 " x2 W6 G" i' x& k2 B3 v
這個問題剛好是最近一直困擾的問題( Y" Z" P! ?% A; d6 m5 V! n
為何不可以(vout-vin)/I阿
' s. u  t' t* r+ W下面是我寫的spice檔3 R: Y6 q7 H  U3 R5 o
m1 vin vdd vout vss nch3 w=3.5u l=0.35u
! K5 ?+ p6 G. \) ir1 vout 0 1k* O$ V& b  l7 K' c) U! e
在.print部份, m, @" U4 J" J* k7 [- X+ s
是要寫 "v(vin)/v(vout)" "(v(vin)-v(vout))/i(r1)" " ...
2 \, i5 c" k! c; M* X. L

2 f" V# K0 E8 u# ~4 D/ c5 ^8 F1 U" n/ I6 T3 J4 i

: `0 ^. x1 n4 ~, |# l建議你不要加r1 vout 0 1k
$ n  C) f$ @# \因為你要對NMOS作計算ron,加了r1後,電流會對r1產生一個電壓,如此一來會壓縮到m1的vout電壓  Q. o) T9 Q( K5 i
建議的寫法為: o2 N2 ]4 H4 p# _% x. `
m1 vin vdd vout vss nch3 w=3.5u l=0.35u m=1
2 t, R* ^" ~# ^5 q, F9 dvvin  vin   vss    vss: z8 `, g* Q- B% C. J, v
vvout vout  vss    vss1 F: @1 F0 k# ]
.dc vvin 0.001 3.3 0.1/ D6 r2 ^8 {6 X
.print PAR('(v(in))/abs(i(m1))')
; ]3 x5 }% e9 e" L3 B.print i(m1)
7#
發表於 2008-7-7 15:37:14 | 只看該作者
嗯嗯  有沒有加電阻  真的有差  謝謝! d0 v: v) w5 j7 Z# i$ M* z
可是又有一個問題(不好意思 問題真多 多多包含)8 ]+ ]) g7 e" s
vvdd   vdd   0  3.0v ' ?2 Z6 A4 m; R8 W4 O* e
vvss   vss   0  0v 2 g+ e/ Y! C* [8 g7 m* C, _: w  c/ ^
vvin   vin   0  0v : t' e" c9 Q& d  F$ \
vvout  vout  0  0v
: g3 v  q( Z2 P% `: Y0 bm1   vin   vdd   vout  vss  nch3  w=3.5u   l=0.35u
" j2 I5 u$ d  C/ I* ~.print a=par('(v(vin)-v(vout))/i(m1)') b=par('v(vin)/i(m1)')9 z8 x  n3 o, A. L+ \2 R
就是在vout的部份 有沒有設成0好像結果差很多耶  為何會這樣呢' |6 E/ z1 d$ V
還有在量Ron部份時  到底是要par('(v(vin)-v(vout))/i(m1)')還是要par('v(vin)/i(m1)')- y, i' P! Y8 o- I% r
因為版主在回覆時  兩者都有提到  可是還是不清楚' n8 X" X" W& t2 q
可否幫忙解答?
  @8 R# l/ l* G' E( R& LThanks
8#
發表於 2008-7-7 17:25:19 | 只看該作者
不好意思,一時之間沒留意到
" r4 u' Z* t2 [% a7 ^- i+ M應該是
- M7 N$ W/ ?  ?; v.print PAR('(v(vin)-v(vout))/abs(i(m1))')
( n5 y6 Q; d! S) G: w: t- E要加abs則是因為電流有流進流出的問題,進而會產生正負符號的緣故,故而加了abs可以變成是正的
0 N- {0 F$ G8 f; X  o* j另外,vout的部份,因為你是作.DC的sweep,而且是對NMOS,所以,source端一定要加最低電位(也就是0V)然後對drain作dc sweep$ g! `! S- D: T3 y, u0 e
反之若是PMOS,則是要加最高電位(亦即VDD)
4 P5 d5 }) b9 O' v5 z9 m1 G這是因為PMOS和NMOS兩者對VSS和VDD有不一樣的變化
9#
發表於 2008-7-7 18:04:27 | 只看該作者
順便來請教各位大大9 I/ ?! o* Y; f$ N4 l/ g
有在其他書上看到
) c: H7 C; z! @$ y, S.print dc RON=par('1/LX8(mn1)'); s2 ~; H* [' S3 [2 H
這個指令似乎也能看RON的電阻值
3 N0 q  H1 n" {- Z不過不太了解這個指令的意思?
10#
發表於 2008-7-7 20:41:52 | 只看該作者
原帖由 finster 於 2008-7-7 05:25 PM 發表
: ~, J( m' X1 f4 ?不好意思,一時之間沒留意到
, U; D+ L% V( R應該是
# t- |8 C, G3 W4 z2 ?( A.print PAR('(v(vin)-v(vout))/abs(i(m1))')
* J1 |: v7 R+ I/ P! P要加abs則是因為電流有流進流出的問題,進而會產生正負符號的緣故,故而加了abs可以變成是正的; u. \: J0 ?/ q! T8 Z
另外,vout的部份,因為你是作.DC的swe ...
  b$ i" r. q6 Q, |
* a+ I3 T* j6 [8 |9 U  \+ G/ y

: p, Y: E& d9 a/ @; R1 ?* O嗯嗯  原來如此
. ^% g, |! E* ?3 P6 H" _) V4 c6 ?意思也就是說 要寫成下面這樣子  對吧!" e: r; S8 a- R+ z0 b! P
nmos : m1 vin vdd vout vss ........  .print par('(v(vin)-v(vout))/abs(i(m1))')
) Y' J8 x. i8 G& L$ d$ Z2 d8 z4 H) z3 ]pmos : m1 vout vss vin vdd ........  .print par('(v(vin)-v(vout))/abs(i(m1))')
3 ^; l# l- z( Y$ E) u% T6 @5 o/ y7 f  `7 o7 }  S  C
那如果是transmission gate的話
8 F- L: P' {8 c, v# n! ^vvdd   vdd   0   dc   3.0V9 N$ f: w% t) }9 K8 e5 S
vvss   vss   0   dc   0.0v  n5 C& a, b# Q- Y) {9 t6 X. ^
vvin   vin   0   dc   0.0v' f$ c! C% |9 s3 v' b6 J
m1   vin   vdd   vout  vss  nch3  w=3.5u   l=0.35u
3 q1 ~3 }! j  z! g% T7 U+ L6 _0 Fm2   vout  vss   vin   vdd  pch3  w=3.5u   l=0.35u  # l- C4 e- `' i8 ^. p' [
那麼在.print部份的話  要怎麼寫2 w' b/ W  m: A3 }3 U, R
因為他不像nmos或者pmos一樣  只有m1的電流可以除7 f+ n6 b! n2 e8 p/ s2 V
這樣怎麼求Ron
. R$ y' O9 S6 f( y9 E可否請大大解釋疑惑$ _& |* y  Z% v  s" D6 X; o
謝謝
11#
發表於 2008-7-8 09:33:51 | 只看該作者
可以是各別算出Ron,再運算
$ K4 O4 p* v. H# B6 [.print r_n=par('(v(vin)-v(vout))/abs(i(m1))')$ R2 x6 S1 J3 x+ c: r
.print r_p=par('(v(vin)-v(vout))/abs(i(m2))')! E5 I/ J( i' f; r
.print r_pn=par('(r_n*r_p)/(r_n+r_p)')  t+ f9 M" }" r& ?  X

# a/ R; Z: S  a另外一種方式則是將電流相加再作運算  V' N$ c! s- e2 v
.print i_pn=par('abs(i(m1))+abs(i(m2))')/ ^5 o" V3 X3 `6 v4 @+ E% ?
.print r_p=par('(v(vin)-v(vout))/i_pn')
12#
發表於 2008-7-10 21:40:18 | 只看該作者
大大  我用了你的方法  可是結果怎麼跟書上畫的不一樣呢
' s  }5 N% G, C! b6 c# S5 s8 J7 }以下是我的SPICE檔- V" g( V; j1 e4 P  K# ?' H3 g2 j
# ^9 y' @" G0 _, P( l8 L9 o
vvdd   vdd   0   dc   3.0V/ Q4 c+ d: t- Q) q9 w# G
vvss   vss   0   dc   0.0v: r+ x  s) g. |# r% A0 G# U0 r
vvin   vin   0   dc   0.0v
1 o6 R' f) o& s/ X& g. G; sm1   vin   vdd   vout  vss  nxxx  w=3.5u   l=0.35u
0 g- r" m' s+ v! ?" Zm2   vout  vss   vin   vdd  pxxx  w=3.5u   l=0.35u  m=4
# _! n0 L8 G8 n: B7 C
. S/ j; l) [0 w! P. Y1 U2 A' h- r
3 u  j% k( ^7 i, K8 o以下是用 .print i_pn=par('abs(i(m1))+abs(i(m2))')  r_p=par('(v(vin)-v(vout))/i_pn')* T7 z7 I. |# R3 }6 t- H* D* e
8 b4 R- w/ D, I
.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)')$ [: q6 f& L1 h2 N9 \1 Q% p
  w- v* l2 E& U; I
+ T' m3 \0 S# g5 M- P! ]
為何兩個結果會不一樣呢* w( \7 M$ o% T  [( X! N% u
而且很納悶的是第二個方法為何要(相乘)/(相加)+ _$ `* d3 |7 U

& Y  L: d: j$ R) d) i( G可否請大大幫忙解答
3 E8 A5 ]: s" {+ [9 \/ X$ B; `Thanks

本帖子中包含更多資源

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

x
13#
發表於 2008-7-11 00:20:41 | 只看該作者
第一個方法為何要(相乘)/(相加)???
5 z, R6 `; L9 \: I你要計算transmission gate的電阻,而transmission gate就是PMOS和NMOS兩者並聯,要求並聯電阻的阻值,當然是(相乘)/(相加),這是很基本的電阻公式計算
2 h0 Y% v3 E( K所以,我先計算出各別PMOS和NMOS的阻值再作計算
3 d2 ]* e8 A( x
) a4 B' R+ M0 o- ]4 [6 S4 Z至於兩種方法為何會不同
* ^9 u# R8 H8 J1 O6 x照理說應該要相同才對,不過,我倒是很好奇為何你的電阻計算出來是負的
* ~! a: Y0 _7 G) [& u& x這點很不合理& Y# A2 {7 p# j3 ^6 C* h0 [5 l
難道是你的VOUT沒有設對嗎??
14#
發表於 2008-7-13 12:05:56 | 只看該作者
如果我改成下面這樣
1 p% a6 D: d( R' Q0 X. i0 S.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)')
3 ^6 A$ P- G. ^; v# @/ c9 f電阻就會變正的
7 N* a/ o1 u& V. N0 ]可是不管怎麼看  還是覺得不太對
1 x; b0 K% Q" n
+ u, e& P/ l3 z! h以下是我的spice檔
3 `2 v* Y9 V/ g) J% Gvvdd   vdd   0   dc   3.0V2 ]; @+ f+ C5 j) O2 b0 |: `( K
vvss   vss   0   dc   0.0v
3 A( p2 {! z" Y5 ~/ Rvvin   vin   0   dc   0.0v
( H7 r1 ~) k/ J5 Q. p2 b% h# @5 q; R+ y0 o
m1   vin   vdd   vout  vss  nxx  w=wsize   l=lsize ' _7 R/ x5 _2 E5 {# Q3 w
m2   vout  vss   vin   vdd  pxx  w=wsize   l=lsize  
3 Z  d) K! O$ y1 k" ]$ _6 D4 G' z
1 t! }- ^7 R8 N' i: A; t, W*r1    vout  0     1k
7 x) N) L$ G- d8 R; k- @& I.dc vvin 0v 3.0v 0.05v  
: |  Z- u; {; }! P& j. m% ]( }# ].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)')
9 P% a: T' r* {$ l: w4 R5 t$ Z.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)')9 l3 \. V# T; A& w8 L) D' a
( @5 K& Q, ~$ w& S
.end
) E& B+ B( G' X: [0 c1 l5 N  W  s" e- f. C
希望大大幫我檢查一下  看看是否有錯
* s/ I  H0 q! [# Q5 a; s還有一個問題  就是為何不能用 v(vout)-v(vin) 而一定要用 v(vin)-v(vout) 呢5 t3 {9 k0 L/ Q+ U1 ~) D6 m  o- _

6 J) P; |' A1 ]$ {5 U可否幫忙解答! o) C' _8 P+ s" \
Thanks
15#
發表於 2008-7-13 15:48:16 | 只看該作者
sorry  上面打錯了
9 ~# Z9 f8 j+ O5 C應該是  rn=par('(v(vin)-v(vout))/abs(i(m1))') rp=par('(v(vin)-v(vout))/abs(i(m1))')  rpn=par('(rn*rp)/(rn+rp)') 才對
) \( R( x6 \- b' ^7 u4 Q8 f4 Q3 b) m+ X  m
還有想要請問一下   跑出來的模擬圖  要怎樣看電阻值呢# j7 m* `5 _+ I
也就是說 NMOS 跟 transmission gate 的部分  要怎樣看' Q/ B# t" H: F/ u1 U1 b; n0 A- S
可否教導一下- B2 m) C3 L4 b
Thanks
16#
發表於 2008-7-14 11:23:44 | 只看該作者
附圖Noname1應該就你說書上的圖吧0 _# ]4 T5 I5 X! a
6 w% ?6 K9 @* p
下面是我測試的transmission gate,而附圖Nonmame則是PMOS/NMOS/和PMOS+NMOS的電阻疊圖
- \1 p. ^$ v. V+ T$ ymp   in     vsa       vddah vddah  P_33_G2 L=0.35u W=5u M=1
& J, Z& ~3 K* N) e8 u. [2 smn   in     vddah     vsa     vsa    N_33_G2 L=0.35u W=5u M=1
8 i( w5 c( n+ ^! x; T+ s! hvvsa      vsa       0    0  P" @7 V1 U# ~. Y
vddah  vddah  0    vddah4 ^0 b5 ?4 f0 _  _0 v( b4 r
vin    in     0    0
# ]. Z+ X6 g$ I$ y, {+ F* r.dc vin 0.05 3.295 0.005
0 q8 i: u3 A9 ~1 i3 h.print r_p=par('(v(vddah)-v(in))/abs(i(mp))')1 G" `1 E0 u0 @
.print r_n=par('(v(in))/abs(i(mn))')
2 d" j8 j  j' A% m5 U.print r_pn=par('(r_p*r_n)/(r_p+r_n)')
1 P- |& g' R7 x. D書上的圖是把PMOS和NMOS各別的電阻畫出來之後,再把兩個電阻並聯計算畫出來,其中,要計算PMOS電阻,一端要接VDDAH,而要計算NMOS電阻,另外一端則是接VSA

本帖子中包含更多資源

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

x

評分

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

查看全部評分

17#
發表於 2008-7-14 22:39:06 | 只看該作者
感謝版主這麼有耐心教導我+ L: N, a4 V- ~6 M0 w2 m
這下子  我對開關又懂更多了
/ `  V! \$ i* oThanks
18#
發表於 2008-7-25 11:23:31 | 只看該作者
原帖由 hiyato 於 2008-7-7 06:04 PM 發表
  E& d+ I. t8 E/ n! k5 B2 R8 l順便來請教各位大大0 h- s1 j  Q" s, L
有在其他書上看到' Q5 W* n: B( ^' N% ^2 ]7 b
.print dc RON=par('1/LX8(mn1)')0 ], a$ S$ c: ?' _, j
這個指令似乎也能看RON的電阻值4 }% J" |: Y/ Z/ a  i4 W
不過不太了解這個指令的意思?
$ C% i1 e5 s9 I/ x2 C

' ~3 d5 o+ G1 I( Q) u7 d) WLX8(mn1)是hspice自带的一个function,可以用gdso(mn1),表示mn1的电导的大小,正好是电阻值的倒数,用它替换更直观和简单。/ R8 p. J/ b  @1 L2 {7 O& j' E! w
.probe Ron=par('1/gdso(mn1)')
19#
發表於 2008-7-25 11:25:54 | 只看該作者
PMOS和NMOS组成的CMOS switch 电阻值写成1 T0 H) j' h9 f8 o
.probe Ron= par('1/(gdso(mn1)+gdso(mp1))') 就OK了
20#
發表於 2008-12-2 15:05:30 | 只看該作者
原帖由 finster 於 2008-7-14 11:23 AM 發表 / S: {) e. q8 }: O: B8 |( L
附圖Noname1應該就你說書上的圖吧
/ @/ x( b4 U( L/ v8 u
6 g( h1 j) \+ `& a' S3 _* r$ C- Q下面是我測試的transmission gate,而附圖Nonmame則是PMOS/NMOS/和PMOS+NMOS的電阻疊圖
' @0 y! r: A& l$ j* Q; c5 vmp   in     vsa       vddah vddah  P_33_G2 L=0.35u W=5u M=1
! x! B0 f; L( f- amn   in     vddah      ...
# W4 V8 l( H) m1 P5 F4 A9 k

+ K4 X1 H8 i6 h" ]' F3 }1 o) c, K  `2 N" f/ U( R" T# l! o
為何2種方法跑出來不一樣??) I! w( S, r/ k9 o/ P% I8 `/ K

) |8 k0 Y3 \) ^2 P# t* C.print pmos_Ron=par('(v(vdd)-v(Vin))/abs(i(M1p))')
: t- I4 [; D% a.print nmos_Ron=par('(v(Vin))/abs(i(M1n))')3 a+ E$ c& o5 M' [2 F
.print TG_Ron=par('(pmos_Ron*nmos_Ron)/(pmos_Ron+nmos_Ron)')
8 x) G8 w$ h# S" N6 |! L6 r4 X" V' W! p0 N; D2 F: F; d
.print pmos_Ron=par('1/gdso(M1n)')- o4 S1 N9 k5 ~0 z3 Y; k% ~# ?, E
.print nmos_Ron=par('1/gdso(M1p)')
3 J4 _5 _: V; S: P.print TG_Ron=par('1/(gdso(M1n)+gdso(M1p))')
$ l# T, e' i: V/ r, I& R) `9 F7 N, x8 R7 D7 x6 J$ q6 T3 g
我只PO上TG的RON圖形出來,, N  J7 w7 K: P
上圖是用前三行指令跑出來的RON(2點電壓相減除以電流)/ }6 z9 u/ x% s0 w, E
下圖是用後三行指令跑出來的RON(直接用電導倒數)- b  f2 i' r& K. V: b! M
為何跑出來的圖形不一樣,理論上應該是一樣的啊6 N  k, x6 Y! X8 D/ Z- C4 Y" i
能否請各位大大位我解答

本帖子中包含更多資源

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

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

本版積分規則

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

GMT+8, 2024-9-27 09:09 PM , Processed in 0.199011 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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