Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

搜索
1 2 3 4
查看: 37993|回復: 24
打印 上一主題 下一主題

[問題求助] 如何使用Hspice模擬MOS的導通電阻Ron

  [複製鏈接]
跳轉到指定樓層
1#
發表於 2008-4-19 21:41:29 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式
把電晶體當開關使用時,請問大家都是如何用Hspice來模擬電晶體的導通電阻Ron呢?
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂43 踩 分享分享
25#
發表於 2011-11-2 11:11:24 | 只看該作者
這個問題尋找很久了~  _1 M) |6 p! \9 }- @
* D# j+ D" T4 g. u7 r1 g
馬上來試試看~
3 [- H# r( _7 o+ W' f  V# d1 ?1 x
. }* q7 [1 ~/ u' d: C謝謝版主教學!
24#
發表於 2010-1-27 10:30:26 | 只看該作者
感謝版主大大無私的教學~
/ d; V9 H9 |: i# s  x: e1 c) d# ~4 g; S& q# X6 i* S
感恩!!!
23#
發表於 2010-1-15 07:17:49 | 只看該作者
thanks
9 A" E# u( m( f( X" R9 X
0 E2 K" z+ V* e4 h.......................
22#
發表於 2010-1-15 01:18:25 | 只看該作者
哇~ 好感動喔~ finster大真是太強了~"~) T% M9 p4 @! w5 V) A) c6 y% o
今天又長知識了^_^
0 r/ s3 D+ }& y* n7 g# H; t. L3Q
21#
發表於 2008-12-2 19:33:09 | 只看該作者
觉得这样做有点复杂了!
20#
發表於 2008-12-2 15:05:30 | 只看該作者
原帖由 finster 於 2008-7-14 11:23 AM 發表 1 e* m) C- T% J% B
附圖Noname1應該就你說書上的圖吧
. ~* Z, s% P8 ~3 G/ Z& A) @8 Q
1 L7 `- V1 S, F- Y3 H4 b下面是我測試的transmission gate,而附圖Nonmame則是PMOS/NMOS/和PMOS+NMOS的電阻疊圖+ {8 N( c/ k' j9 e# |( ^9 Y, r: k
mp   in     vsa       vddah vddah  P_33_G2 L=0.35u W=5u M=1
1 s) H+ K) c6 }" S5 O& rmn   in     vddah      ...
, X# [! ?) H" ?. `7 H) _* z
# N( E+ a) k; ~7 x
% f3 w4 J! s7 t
為何2種方法跑出來不一樣??
! L  c9 P* ]& B' f; r) _+ x2 s1 n) S& `' l' g  o0 G* E
.print pmos_Ron=par('(v(vdd)-v(Vin))/abs(i(M1p))')
# {% i# j4 o! R; q# R.print nmos_Ron=par('(v(Vin))/abs(i(M1n))')1 |  X2 Q. e7 e- _. a5 S
.print TG_Ron=par('(pmos_Ron*nmos_Ron)/(pmos_Ron+nmos_Ron)')% m) d3 {# w' \# e* J, G

3 Z" V3 u4 Y, Q) ]9 y.print pmos_Ron=par('1/gdso(M1n)')8 P+ D/ O1 z. r; v1 g5 N+ z
.print nmos_Ron=par('1/gdso(M1p)')
1 ~5 r1 L+ n; a, q.print TG_Ron=par('1/(gdso(M1n)+gdso(M1p))')
7 K6 ]- T( e* g" w5 P* Y' A* x' w, L6 T3 z1 u4 Z9 A" I
我只PO上TG的RON圖形出來,5 Q  Z! E% P' U% g) v
上圖是用前三行指令跑出來的RON(2點電壓相減除以電流)- U: b% T( O# h. o$ Q. u; q
下圖是用後三行指令跑出來的RON(直接用電導倒數)5 U. ^7 ~7 }1 c/ K- c4 d" `" j0 H
為何跑出來的圖形不一樣,理論上應該是一樣的啊
3 |# G; ?! r) V能否請各位大大位我解答

本帖子中包含更多資源

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

x
19#
發表於 2008-7-25 11:25:54 | 只看該作者
PMOS和NMOS组成的CMOS switch 电阻值写成
# C! K! W& a3 j" K4 _3 C.probe Ron= par('1/(gdso(mn1)+gdso(mp1))') 就OK了
18#
發表於 2008-7-25 11:23:31 | 只看該作者
原帖由 hiyato 於 2008-7-7 06:04 PM 發表
4 k3 k) ~' d1 g2 r- c順便來請教各位大大; f  c. G- o" i1 x. K
有在其他書上看到
0 Z, y$ P" ^" u9 n.print dc RON=par('1/LX8(mn1)')
2 m" X0 T6 e5 E3 r3 ^. X$ B! B這個指令似乎也能看RON的電阻值
, a# k# p9 o; Y0 E* F不過不太了解這個指令的意思?

% m4 a2 k: n/ {, ?& Y. I
0 m2 O$ G3 L; H0 Y* |* RLX8(mn1)是hspice自带的一个function,可以用gdso(mn1),表示mn1的电导的大小,正好是电阻值的倒数,用它替换更直观和简单。
1 ~. v, v  n5 i% O" d! Y.probe Ron=par('1/gdso(mn1)')
17#
發表於 2008-7-14 22:39:06 | 只看該作者
感謝版主這麼有耐心教導我
* b& ~8 p" Y* m; ?! M這下子  我對開關又懂更多了4 s1 n( B5 M0 T+ \. J& E6 z, R
Thanks
16#
發表於 2008-7-14 11:23:44 | 只看該作者
附圖Noname1應該就你說書上的圖吧
7 B. s1 x1 O1 a2 d% T! W" t9 [5 ~" j+ L# F% G1 H( }
下面是我測試的transmission gate,而附圖Nonmame則是PMOS/NMOS/和PMOS+NMOS的電阻疊圖! B1 O7 H  A9 _3 d9 G& x- Z
mp   in     vsa       vddah vddah  P_33_G2 L=0.35u W=5u M=1
6 W% s" E% M+ zmn   in     vddah     vsa     vsa    N_33_G2 L=0.35u W=5u M=1
- g$ P) O  b+ o) Vvvsa      vsa       0    0
  t9 D) y+ J. P5 evddah  vddah  0    vddah
- E8 v+ m7 n4 I9 i% zvin    in     0    0
1 W9 P/ O3 f8 c! _5 y2 G.dc vin 0.05 3.295 0.005
* U$ l' h8 }) \3 e' L% D' L! a.print r_p=par('(v(vddah)-v(in))/abs(i(mp))')5 f9 K, y% ?5 W: \
.print r_n=par('(v(in))/abs(i(mn))'); l) {5 Y4 r" Q+ D- H
.print r_pn=par('(r_p*r_n)/(r_p+r_n)')1 s: e, a" S  Z* Z$ B9 L
書上的圖是把PMOS和NMOS各別的電阻畫出來之後,再把兩個電阻並聯計算畫出來,其中,要計算PMOS電阻,一端要接VDDAH,而要計算NMOS電阻,另外一端則是接VSA

本帖子中包含更多資源

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

x

評分

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

查看全部評分

15#
發表於 2008-7-13 15:48:16 | 只看該作者
sorry  上面打錯了
$ K9 X( S# p% m" x  d' y5 g應該是  rn=par('(v(vin)-v(vout))/abs(i(m1))') rp=par('(v(vin)-v(vout))/abs(i(m1))')  rpn=par('(rn*rp)/(rn+rp)') 才對
$ |+ [% L" Y# S6 C# i9 {0 u9 o- o2 N' y8 |2 M
還有想要請問一下   跑出來的模擬圖  要怎樣看電阻值呢
- j0 H, Q% `( j. U5 s9 O# j也就是說 NMOS 跟 transmission gate 的部分  要怎樣看' I/ N8 w0 {* V4 U0 k3 i
可否教導一下8 L  b2 e- W$ O5 f6 g1 K7 U/ u
Thanks
14#
發表於 2008-7-13 12:05:56 | 只看該作者
如果我改成下面這樣& h% l5 z' i" X
.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)')) d" B6 ~8 K1 S1 b/ s" L  P/ X
電阻就會變正的
1 }; |4 F* Y/ s" n. X可是不管怎麼看  還是覺得不太對
4 J, L7 c8 Z: h7 @" p9 f. G* W0 [7 b% V( a
以下是我的spice檔# M/ R' F. M1 j! p: S& G2 M5 [: f
vvdd   vdd   0   dc   3.0V
" t. f. `( k7 ]/ w( Vvvss   vss   0   dc   0.0v! J+ r3 G+ |; f! I7 O
vvin   vin   0   dc   0.0v
, x  H6 S$ m+ S2 q& H
/ C: L6 U0 u9 T# Ym1   vin   vdd   vout  vss  nxx  w=wsize   l=lsize ) m* t* ?" O8 x3 G# `
m2   vout  vss   vin   vdd  pxx  w=wsize   l=lsize  
% g  c% g+ p* m: w! P0 K: @9 j; y) L1 K2 c* R! P
*r1    vout  0     1k
% l. o5 F4 W7 j6 Z.dc vvin 0v 3.0v 0.05v  1 S: h4 k+ u! X: e# q2 E, \. b
.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 f4 }6 ?# O' {7 U7 l) \
.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)'): |6 e- r$ C, m
+ K, E; p* t, }# \! R
.end4 ]; T9 q- z- `1 D( V9 Q  ]
. B) A( ?; p4 S8 Q
希望大大幫我檢查一下  看看是否有錯% v  I$ [; t3 Z7 v0 B1 S% [
還有一個問題  就是為何不能用 v(vout)-v(vin) 而一定要用 v(vin)-v(vout) 呢4 v4 t( m1 @% o3 p

2 M8 O5 r7 q4 e' O1 G, h! e可否幫忙解答
" [# A, y. F4 r# DThanks
13#
發表於 2008-7-11 00:20:41 | 只看該作者
第一個方法為何要(相乘)/(相加)???
' b1 i6 h! |# ~' D6 c你要計算transmission gate的電阻,而transmission gate就是PMOS和NMOS兩者並聯,要求並聯電阻的阻值,當然是(相乘)/(相加),這是很基本的電阻公式計算
6 k( U" x2 W* i' j+ y所以,我先計算出各別PMOS和NMOS的阻值再作計算
) O) |0 I+ m) g4 @! W8 ~6 s
" j' V! ^6 ^4 d6 E- t5 a- p/ `至於兩種方法為何會不同4 p+ f# [) y% n8 R" x
照理說應該要相同才對,不過,我倒是很好奇為何你的電阻計算出來是負的
: D( j& v6 X# d, {1 t# ?) o# Q這點很不合理. Q/ S7 E- M0 P
難道是你的VOUT沒有設對嗎??
12#
發表於 2008-7-10 21:40:18 | 只看該作者
大大  我用了你的方法  可是結果怎麼跟書上畫的不一樣呢& _+ c8 l7 g- F
以下是我的SPICE檔
) j; v9 g# _" E1 G
& ]4 q: S+ Q( g) uvvdd   vdd   0   dc   3.0V
& S' p2 b. F# _' V* xvvss   vss   0   dc   0.0v
7 {8 u: b$ d0 R7 @vvin   vin   0   dc   0.0v
1 T8 W1 S" E- c) jm1   vin   vdd   vout  vss  nxxx  w=3.5u   l=0.35u 2 ]0 t+ I% h' q( c
m2   vout  vss   vin   vdd  pxxx  w=3.5u   l=0.35u  m=4
5 J1 d% ?! V7 [3 S1 D0 Y( t1 G% ^6 w) O$ e6 d

2 o; h1 S: _$ g! Z; X) L以下是用 .print i_pn=par('abs(i(m1))+abs(i(m2))')  r_p=par('(v(vin)-v(vout))/i_pn')
5 x- m- Q1 A2 `! H: @% _
6 H! g; g9 h7 }9 i% d- r. B% f7 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)')
' n0 W& e) ?5 i
1 V8 y  @$ |/ c2 Z" T
& ?1 s. _# b; B/ @+ O為何兩個結果會不一樣呢. F9 y* v" L  h: B5 Q: _
而且很納悶的是第二個方法為何要(相乘)/(相加)0 q3 j" D. y% o

* v4 Y  i1 J7 j& I7 q0 L" _可否請大大幫忙解答
) p/ S8 Y& E+ Q  G. r( S4 F- ~Thanks

本帖子中包含更多資源

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

x
11#
發表於 2008-7-8 09:33:51 | 只看該作者
可以是各別算出Ron,再運算
) L4 |: z& H8 n8 j% V4 e" j.print r_n=par('(v(vin)-v(vout))/abs(i(m1))')
4 I2 X$ W. ^) ?0 Y.print r_p=par('(v(vin)-v(vout))/abs(i(m2))')
1 _4 c. l4 u) O& V2 g0 `4 M.print r_pn=par('(r_n*r_p)/(r_n+r_p)')
# Y. u4 n6 D- Y( n! E7 c: B% ?/ K! F7 n8 Y
另外一種方式則是將電流相加再作運算6 t4 n- Z% @- L; P. _; v
.print i_pn=par('abs(i(m1))+abs(i(m2))')
' X2 ?6 Q) s, t2 X" _. H2 A8 G+ z.print r_p=par('(v(vin)-v(vout))/i_pn')
10#
發表於 2008-7-7 20:41:52 | 只看該作者
原帖由 finster 於 2008-7-7 05:25 PM 發表
+ b3 w3 T7 x8 B不好意思,一時之間沒留意到* N: ]* G7 v1 h! z
應該是7 ]& s% ?" K: d* [& n- x
.print PAR('(v(vin)-v(vout))/abs(i(m1))')! \9 g. W7 A: g% a: w8 C
要加abs則是因為電流有流進流出的問題,進而會產生正負符號的緣故,故而加了abs可以變成是正的
9 [6 `  [/ I( M# M, ~) Y3 r# c另外,vout的部份,因為你是作.DC的swe ...
; d, r. D6 j- C

5 g; P: ?) y4 Z; a* t4 S/ X9 w$ v) D7 y2 a
嗯嗯  原來如此6 ~- c$ h" U  X3 m1 V
意思也就是說 要寫成下面這樣子  對吧!4 j4 A. t# X9 E9 T
nmos : m1 vin vdd vout vss ........  .print par('(v(vin)-v(vout))/abs(i(m1))')& `% `7 T. V- }1 R' d+ a( w. U, D; L( S
pmos : m1 vout vss vin vdd ........  .print par('(v(vin)-v(vout))/abs(i(m1))')) T3 h" D( \/ e8 h
8 B+ J$ q) _9 v$ }' `3 ~
那如果是transmission gate的話
+ x4 f; F1 K, f0 z- Gvvdd   vdd   0   dc   3.0V
8 X% k' t# T* f' ^% A# F5 D/ Wvvss   vss   0   dc   0.0v% n' D& f% r6 V1 p
vvin   vin   0   dc   0.0v1 ?9 ~0 y5 F+ g1 [/ l) u& S0 G
m1   vin   vdd   vout  vss  nch3  w=3.5u   l=0.35u 7 a; W2 m- R  K" f/ J
m2   vout  vss   vin   vdd  pch3  w=3.5u   l=0.35u  
3 n! @* b& Z- F: f+ t, t+ C# }0 E5 A那麼在.print部份的話  要怎麼寫
( n! ]( c0 g$ _因為他不像nmos或者pmos一樣  只有m1的電流可以除
+ `7 @5 o% q: A6 O6 v. _4 q& i這樣怎麼求Ron
+ K, h" x9 p) Q( M% H( }" C可否請大大解釋疑惑$ k) J* e; F# e6 ~0 g
謝謝
9#
發表於 2008-7-7 18:04:27 | 只看該作者
順便來請教各位大大/ }, @' a' f! F& F$ Q
有在其他書上看到+ J) V5 ~# q4 D4 k, O3 m1 n
.print dc RON=par('1/LX8(mn1)')
5 _" N9 O& X( r這個指令似乎也能看RON的電阻值0 D  d; m; z9 o0 P  a  _
不過不太了解這個指令的意思?
8#
發表於 2008-7-7 17:25:19 | 只看該作者
不好意思,一時之間沒留意到
% H) F. F0 }& A8 K! x( f. X應該是
8 V! b$ b% C2 O. g2 r$ X.print PAR('(v(vin)-v(vout))/abs(i(m1))')
5 ]- E$ i, [8 I要加abs則是因為電流有流進流出的問題,進而會產生正負符號的緣故,故而加了abs可以變成是正的
2 _/ H; P# V( i, D' D. T, k另外,vout的部份,因為你是作.DC的sweep,而且是對NMOS,所以,source端一定要加最低電位(也就是0V)然後對drain作dc sweep
; @; ^2 c3 I+ g. B7 N4 c6 J! z反之若是PMOS,則是要加最高電位(亦即VDD)8 `$ w5 Y2 P* p, r
這是因為PMOS和NMOS兩者對VSS和VDD有不一樣的變化
7#
發表於 2008-7-7 15:37:14 | 只看該作者
嗯嗯  有沒有加電阻  真的有差  謝謝
+ Z: J$ O) Q. e可是又有一個問題(不好意思 問題真多 多多包含)
3 v5 v' P3 K! `' H5 M, }% V" ^' wvvdd   vdd   0  3.0v 3 W' p8 L& P) m9 ^& ]: ?+ O% X! @
vvss   vss   0  0v
3 T3 }0 t4 v- p: D1 X8 ]" B' h+ tvvin   vin   0  0v
6 Q! b, R+ m# u$ t5 Pvvout  vout  0  0v
* D$ _7 c5 E  T! n+ [' e* Nm1   vin   vdd   vout  vss  nch3  w=3.5u   l=0.35u
8 Q/ P& ?# m8 s% O5 {; A.print a=par('(v(vin)-v(vout))/i(m1)') b=par('v(vin)/i(m1)')
0 z4 ~; N0 H: H就是在vout的部份 有沒有設成0好像結果差很多耶  為何會這樣呢( O! b4 N) a  U9 C! N
還有在量Ron部份時  到底是要par('(v(vin)-v(vout))/i(m1)')還是要par('v(vin)/i(m1)')
3 @  `% G, Y, D6 k因為版主在回覆時  兩者都有提到  可是還是不清楚
! K" R; |. W% l可否幫忙解答?
9 s8 A! I/ q; Q- h( h2 }6 BThanks
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-9-27 11:25 PM , Processed in 0.210012 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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