Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

+ i) U% W2 `3 p- }7 k谢谢您的解答!
5#
發表於 2008-7-7 00:05:00 | 只看該作者
這個問題剛好是最近一直困擾的問題
! ^3 b" z" x) J為何不可以(vout-vin)/I阿* J  Z4 ]9 y$ O; V
下面是我寫的spice檔
% Z% W! n# S$ k' b8 g: j% e9 mm1 vin vdd vout vss nch3 w=3.5u l=0.35u
% Q& V* T7 B0 g3 ]$ L, fr1 vout 0 1k
# `9 O5 n2 @% S5 o" h" p* y5 h3 m在.print部份
/ ~# J& E- d4 }是要寫 "v(vin)/v(vout)" "(v(vin)-v(vout))/i(r1)" "(v(vin)-v(vout))/i(m1)"呢& g" x/ q" M5 C/ ]1 O" F  g* t
可否幫忙解答?& C( Q- t  o, w! e- K" q8 u
thanks
6#
發表於 2008-7-7 09:52:23 | 只看該作者
原帖由 dogst 於 2008-7-7 12:05 AM 發表 1 D8 n. y" W) s. F) a& s/ c
這個問題剛好是最近一直困擾的問題
: v2 M5 \: |. ^0 Y# J1 @8 L為何不可以(vout-vin)/I阿. t* m9 A2 S2 _9 Y+ h6 m
下面是我寫的spice檔! V1 q$ c6 e# H% g3 \# M( t# q: b; p
m1 vin vdd vout vss nch3 w=3.5u l=0.35u
, r. K# Y5 ?; i9 ur1 vout 0 1k
2 J- n7 \0 }; k+ a7 c# n3 r在.print部份
* |+ l7 A+ i) N, r是要寫 "v(vin)/v(vout)" "(v(vin)-v(vout))/i(r1)" " ...

2 Y5 k* ]0 L) Y- o$ w  ?+ V4 i1 u

+ n9 _4 H  e* h3 a' [" R, T7 U: B2 _- s2 h$ g, ^
建議你不要加r1 vout 0 1k
! v2 U# r. G" ?- S2 R5 z因為你要對NMOS作計算ron,加了r1後,電流會對r1產生一個電壓,如此一來會壓縮到m1的vout電壓
. C! k; f# ~- Y建議的寫法為# \) Y7 M# @; O$ w$ j
m1 vin vdd vout vss nch3 w=3.5u l=0.35u m=1! R, ^+ z, S2 ]# W0 A. Y
vvin  vin   vss    vss
' i0 \0 A% }4 B$ Bvvout vout  vss    vss6 ~  ^7 E% K1 Y+ z/ ~
.dc vvin 0.001 3.3 0.1
6 L: D* _6 ?$ }+ U% M- B% {.print PAR('(v(in))/abs(i(m1))')1 Z3 X0 ~6 M- _4 \8 z: V
.print i(m1)
7#
發表於 2008-7-7 15:37:14 | 只看該作者
嗯嗯  有沒有加電阻  真的有差  謝謝
/ s* T' Z  N2 ^- ], _  l8 n可是又有一個問題(不好意思 問題真多 多多包含)  {  X) `- Z7 g2 M
vvdd   vdd   0  3.0v
: z0 F2 Z- T5 V. k1 y7 s  fvvss   vss   0  0v - O6 K& G; q; _7 ?% y
vvin   vin   0  0v
2 T: x2 Y3 }( i: w3 ]' _& i3 Mvvout  vout  0  0v % R4 W3 ^0 D) N0 a# k0 C( x3 m: m
m1   vin   vdd   vout  vss  nch3  w=3.5u   l=0.35u - u* D5 s0 u. k$ c* @
.print a=par('(v(vin)-v(vout))/i(m1)') b=par('v(vin)/i(m1)')0 M: ], X9 M0 f7 O1 P6 h/ a
就是在vout的部份 有沒有設成0好像結果差很多耶  為何會這樣呢
& Y* W. V- t" o* R還有在量Ron部份時  到底是要par('(v(vin)-v(vout))/i(m1)')還是要par('v(vin)/i(m1)'). `+ R; ~  X7 z1 M% v! |
因為版主在回覆時  兩者都有提到  可是還是不清楚
- C  ~( R7 E. Z1 F可否幫忙解答?
7 }: Z( X) A: y" lThanks
8#
發表於 2008-7-7 17:25:19 | 只看該作者
不好意思,一時之間沒留意到
: ~( ?) q3 B4 \" t應該是
' M; H! ]* }% r3 s9 o" Q.print PAR('(v(vin)-v(vout))/abs(i(m1))')% [7 v+ O3 S3 _, Z) C3 U1 k7 Y
要加abs則是因為電流有流進流出的問題,進而會產生正負符號的緣故,故而加了abs可以變成是正的
4 \' f. l4 _8 y另外,vout的部份,因為你是作.DC的sweep,而且是對NMOS,所以,source端一定要加最低電位(也就是0V)然後對drain作dc sweep+ X2 E: a4 r& M9 p% ]4 {
反之若是PMOS,則是要加最高電位(亦即VDD)% V0 X3 A, o9 u
這是因為PMOS和NMOS兩者對VSS和VDD有不一樣的變化
9#
發表於 2008-7-7 18:04:27 | 只看該作者
順便來請教各位大大. s5 i  B; }& d& o7 Y
有在其他書上看到
' S, o( L4 z# X2 z$ C.print dc RON=par('1/LX8(mn1)')
! W; \* |! f' n" C8 B; k7 j, N這個指令似乎也能看RON的電阻值& x$ t5 A% [2 s, a9 c9 ^
不過不太了解這個指令的意思?
10#
發表於 2008-7-7 20:41:52 | 只看該作者
原帖由 finster 於 2008-7-7 05:25 PM 發表
4 F. A" }5 Q  T: L% Z  t% ~( h不好意思,一時之間沒留意到3 `6 [9 i4 K* d6 v4 U& `
應該是! D1 A* T* i- S; g" h1 c  i, {2 j& U9 }
.print PAR('(v(vin)-v(vout))/abs(i(m1))')+ D: Z5 E0 ?% }/ \" t
要加abs則是因為電流有流進流出的問題,進而會產生正負符號的緣故,故而加了abs可以變成是正的
, d0 O. c' B7 [, Y) D/ }6 }# n) v另外,vout的部份,因為你是作.DC的swe ...
: {* e/ e) Q# ?" [! W
7 b: a, z! Z* `# w
1 y+ j0 p2 I0 n, c% S
嗯嗯  原來如此
" ]  C; q  {! C意思也就是說 要寫成下面這樣子  對吧!
" {2 i5 r. k$ M- _nmos : m1 vin vdd vout vss ........  .print par('(v(vin)-v(vout))/abs(i(m1))')) x# Y$ R/ J3 N5 t' i
pmos : m1 vout vss vin vdd ........  .print par('(v(vin)-v(vout))/abs(i(m1))'), [1 G5 ~: w% _4 t7 \$ y( M5 {
/ ~4 Q5 S. `) K+ _+ \
那如果是transmission gate的話+ }! k: r! y' D4 P$ Q9 n  ^0 F
vvdd   vdd   0   dc   3.0V6 ^- }! v1 }% U; W
vvss   vss   0   dc   0.0v
! N$ E5 ]8 P3 c1 F: Q0 t) y- Cvvin   vin   0   dc   0.0v
  z  y. i0 |, t: @. y  c4 q+ dm1   vin   vdd   vout  vss  nch3  w=3.5u   l=0.35u ! H, P9 R2 h4 s3 |
m2   vout  vss   vin   vdd  pch3  w=3.5u   l=0.35u  
- n" M3 h9 A7 r$ f( B. |1 h/ v' X那麼在.print部份的話  要怎麼寫& t& `) y0 w" S8 L$ L
因為他不像nmos或者pmos一樣  只有m1的電流可以除, r/ g; Z% P) E3 ]% D
這樣怎麼求Ron. h) ?3 Q# v& L4 P7 A. j: w
可否請大大解釋疑惑
5 p4 R' T% o" n8 ~) e謝謝
11#
發表於 2008-7-8 09:33:51 | 只看該作者
可以是各別算出Ron,再運算
- l6 S' J/ S6 ?6 V8 P6 e" d; q$ b.print r_n=par('(v(vin)-v(vout))/abs(i(m1))'), X, X' H  O' x+ @
.print r_p=par('(v(vin)-v(vout))/abs(i(m2))')
) K, e5 h2 e% p8 K& C0 P6 p.print r_pn=par('(r_n*r_p)/(r_n+r_p)')1 S" X" Z% a4 s9 y& s( Z
# ?6 d; s' {6 x9 j; B2 Z& w0 E
另外一種方式則是將電流相加再作運算" n4 o1 r8 {5 C- x3 J
.print i_pn=par('abs(i(m1))+abs(i(m2))')) i0 r! k$ i9 E% W
.print r_p=par('(v(vin)-v(vout))/i_pn')
12#
發表於 2008-7-10 21:40:18 | 只看該作者
大大  我用了你的方法  可是結果怎麼跟書上畫的不一樣呢
% q: r! p$ W. U以下是我的SPICE檔
; @1 i) i: x  K3 b7 o0 q4 V
# n+ k! n$ P. ]3 V7 U0 l0 R: jvvdd   vdd   0   dc   3.0V# p- o8 @; m# I7 U3 W5 l% m- o
vvss   vss   0   dc   0.0v5 X' T/ B- R  X7 X. {
vvin   vin   0   dc   0.0v
: p+ T9 X' K* jm1   vin   vdd   vout  vss  nxxx  w=3.5u   l=0.35u
* g5 S: t& [; W) a4 K) Fm2   vout  vss   vin   vdd  pxxx  w=3.5u   l=0.35u  m=4
' P: F3 t! }! `* \1 ^+ b( M/ A9 B) {) u& f# S" {

' T6 v$ O9 O5 `以下是用 .print i_pn=par('abs(i(m1))+abs(i(m2))')  r_p=par('(v(vin)-v(vout))/i_pn')3 ~' ~  Y- E: b2 V, f( N! _4 a' L1 z

6 ~7 x  I; k$ P2 w4 n4 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)')
2 v% ]; L( G2 e3 T/ I& e% u) s% ^, `: l( c7 ~

: a/ P$ j; m: o) ^9 g/ ~為何兩個結果會不一樣呢/ ?2 q  o& y4 u! F3 P% z
而且很納悶的是第二個方法為何要(相乘)/(相加)6 L" R: q$ ^( k7 ~7 u! D8 \
- o/ e2 m  M# f$ {  Y  K- y: B
可否請大大幫忙解答
2 t2 I; ^" C" Q! _Thanks

本帖子中包含更多資源

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

x
13#
發表於 2008-7-11 00:20:41 | 只看該作者
第一個方法為何要(相乘)/(相加)???  v7 a% }3 X4 q5 D
你要計算transmission gate的電阻,而transmission gate就是PMOS和NMOS兩者並聯,要求並聯電阻的阻值,當然是(相乘)/(相加),這是很基本的電阻公式計算
2 D( x5 p2 j  }2 w. [. w所以,我先計算出各別PMOS和NMOS的阻值再作計算% l' M5 p- q' p; d

9 D! d+ x+ n. D. `' u& D至於兩種方法為何會不同/ r, r3 a3 `) r5 D% O$ {
照理說應該要相同才對,不過,我倒是很好奇為何你的電阻計算出來是負的: i3 `, n8 I5 }
這點很不合理; j( O7 e& }7 k7 R% r
難道是你的VOUT沒有設對嗎??
14#
發表於 2008-7-13 12:05:56 | 只看該作者
如果我改成下面這樣
" S  f' \- n2 W. A1 |.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)')
2 V# B1 h% k' c, C2 \: x7 g3 j' p電阻就會變正的
# v: a  Y* m" b5 w# |可是不管怎麼看  還是覺得不太對
- g8 ?" u$ S0 s9 ?6 \. U$ X& Y) E
以下是我的spice檔2 V- w; W# V7 X: M$ ~  U
vvdd   vdd   0   dc   3.0V: [0 T0 @7 T1 t
vvss   vss   0   dc   0.0v
! A' L3 S: J! F6 }0 Z$ Yvvin   vin   0   dc   0.0v
/ R9 ?7 g4 F( K+ P2 b* p( Y+ D8 a- m( O# |0 P7 ~
m1   vin   vdd   vout  vss  nxx  w=wsize   l=lsize 0 a5 {# d" W) D
m2   vout  vss   vin   vdd  pxx  w=wsize   l=lsize  
6 }& J2 q0 w+ M, Q: L5 z+ P+ d
& y/ T0 |. }  B*r1    vout  0     1k7 g0 v, q) o6 c! x- E9 s1 i
.dc vvin 0v 3.0v 0.05v  " w1 Z* d( y+ A/ C+ l
.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)')
6 h+ M' T  L2 U* W# D* ~& Q.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)')
, _% a8 k5 V7 C8 N" n( @/ l6 F% S% h
.end8 g1 |5 Z% s8 E

8 r' d, M3 Y+ U  h! L7 x7 v希望大大幫我檢查一下  看看是否有錯
" P. e1 h. s) A( x( {. O還有一個問題  就是為何不能用 v(vout)-v(vin) 而一定要用 v(vin)-v(vout) 呢6 v) S/ W% x" f0 g3 ~8 r# _- H
. G3 O, g. O# t
可否幫忙解答' @0 C) m2 ^. {& w
Thanks
15#
發表於 2008-7-13 15:48:16 | 只看該作者
sorry  上面打錯了
6 Y$ J6 l: _: m; ]應該是  rn=par('(v(vin)-v(vout))/abs(i(m1))') rp=par('(v(vin)-v(vout))/abs(i(m1))')  rpn=par('(rn*rp)/(rn+rp)') 才對
- P  }3 }5 W8 }% R/ k) Q1 z2 x1 k: Z  i4 x
還有想要請問一下   跑出來的模擬圖  要怎樣看電阻值呢, Q3 [7 o- H/ b% M8 ^
也就是說 NMOS 跟 transmission gate 的部分  要怎樣看8 ~/ F4 Y( f. `( E; c& _0 Z* v9 ]
可否教導一下
9 Z% _! v. r* j0 `Thanks
16#
發表於 2008-7-14 11:23:44 | 只看該作者
附圖Noname1應該就你說書上的圖吧
. k: X* |; }- u; O. k9 V0 n4 I( ^+ s+ M2 ?
下面是我測試的transmission gate,而附圖Nonmame則是PMOS/NMOS/和PMOS+NMOS的電阻疊圖: |. Q, ~1 T5 u) }: H* I0 ?
mp   in     vsa       vddah vddah  P_33_G2 L=0.35u W=5u M=1
. I4 \5 h3 A1 {6 q0 I8 t( Omn   in     vddah     vsa     vsa    N_33_G2 L=0.35u W=5u M=1
# `0 F; b  f) E2 u3 hvvsa      vsa       0    0
7 a4 M& |! u* v2 kvddah  vddah  0    vddah3 s# J% s* V# j1 e- [- J- E. A3 L9 U
vin    in     0    0
" Q, l, M0 s# m8 X9 S.dc vin 0.05 3.295 0.005 $ \0 F5 I) H- E* N5 e3 O, Y; f
.print r_p=par('(v(vddah)-v(in))/abs(i(mp))')
& K) E  K" K" d+ D.print r_n=par('(v(in))/abs(i(mn))')4 X2 y% _. z' W6 z+ H4 [8 n2 C% s
.print r_pn=par('(r_p*r_n)/(r_p+r_n)')
, A5 P: t/ s. g5 |" p1 p! \書上的圖是把PMOS和NMOS各別的電阻畫出來之後,再把兩個電阻並聯計算畫出來,其中,要計算PMOS電阻,一端要接VDDAH,而要計算NMOS電阻,另外一端則是接VSA

本帖子中包含更多資源

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

x

評分

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

查看全部評分

17#
發表於 2008-7-14 22:39:06 | 只看該作者
感謝版主這麼有耐心教導我
0 }' Y3 Q! Q8 d0 Z) F這下子  我對開關又懂更多了
, i2 D5 P8 P; G4 n/ }3 _Thanks
18#
發表於 2008-7-25 11:23:31 | 只看該作者
原帖由 hiyato 於 2008-7-7 06:04 PM 發表
  s  `+ K  {3 U# `. a/ e9 P順便來請教各位大大0 q8 u7 F7 \. j$ s$ S% n
有在其他書上看到
) c6 C/ ~# H+ u7 r.print dc RON=par('1/LX8(mn1)')
- E  ~) i& T0 H, h# i* ^9 ?這個指令似乎也能看RON的電阻值
5 O% k8 s" i9 q5 H不過不太了解這個指令的意思?
! }2 @$ m0 ~2 e7 @
- Q' |% g( Y' z, a+ T/ c
LX8(mn1)是hspice自带的一个function,可以用gdso(mn1),表示mn1的电导的大小,正好是电阻值的倒数,用它替换更直观和简单。
" m  i5 t1 ^, M.probe Ron=par('1/gdso(mn1)')
19#
發表於 2008-7-25 11:25:54 | 只看該作者
PMOS和NMOS组成的CMOS switch 电阻值写成
8 l8 \7 H! l  q; @.probe Ron= par('1/(gdso(mn1)+gdso(mp1))') 就OK了
20#
發表於 2008-12-2 15:05:30 | 只看該作者
原帖由 finster 於 2008-7-14 11:23 AM 發表
3 R5 Q8 t" l1 C. O# b6 R附圖Noname1應該就你說書上的圖吧
; }* p3 U- O1 ]0 J. M4 A+ x4 J* Z8 T, z  R1 D0 R4 E/ H% x2 w1 P# E
下面是我測試的transmission gate,而附圖Nonmame則是PMOS/NMOS/和PMOS+NMOS的電阻疊圖
, b: f' y* |! n, X' b$ j" H9 U7 k# Lmp   in     vsa       vddah vddah  P_33_G2 L=0.35u W=5u M=1
; r6 W/ H; }: [. j, \1 B: Nmn   in     vddah      ...

/ S, @2 m4 G+ I4 T4 {
. ^" C5 Q% _3 I4 y* }, N2 T9 [" i, g3 d5 K1 Y2 u4 z
為何2種方法跑出來不一樣??  G" s1 U) D! N

' h. f+ B9 R/ q  ?8 N.print pmos_Ron=par('(v(vdd)-v(Vin))/abs(i(M1p))')
7 E8 |1 Y$ H3 Y.print nmos_Ron=par('(v(Vin))/abs(i(M1n))')0 e! R4 o0 _+ b9 n6 g( w$ P
.print TG_Ron=par('(pmos_Ron*nmos_Ron)/(pmos_Ron+nmos_Ron)')
( D8 c7 T1 R- g' V# m
' ]# f# ?& q) P& m, |( y1 m.print pmos_Ron=par('1/gdso(M1n)')1 K0 t7 y1 g* G. N6 p7 t0 H
.print nmos_Ron=par('1/gdso(M1p)')
- P! y3 m6 D/ Y.print TG_Ron=par('1/(gdso(M1n)+gdso(M1p))') 6 M9 B& X+ V% r5 N, K
, I  @9 S' a5 r* q( l# t6 ^
我只PO上TG的RON圖形出來,8 S8 ]5 u4 M$ G( ^
上圖是用前三行指令跑出來的RON(2點電壓相減除以電流)7 ?: z; c; H. M6 {( D& l
下圖是用後三行指令跑出來的RON(直接用電導倒數)& H: X& N# z" Z, S0 o
為何跑出來的圖形不一樣,理論上應該是一樣的啊
5 d, R1 J1 |1 @! B- P: R. W8 H# |+ S能否請各位大大位我解答

本帖子中包含更多資源

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

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

本版積分規則

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

GMT+8, 2024-6-17 01:28 AM , Processed in 0.144519 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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