Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

搜索
1 2 3 4
查看: 36420|回復: 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即可# D) p' H. a) }; X- ?
在HSPICE中利用PRINT寫來計算元件的(Vin-Vout)/I即可用awaves畫出元件的Ron電阻
+ G0 O3 D) J3 v+ k要特別注意一點的是,如果mos是內建的,那要留意外部電感的電流大小會"間接"決定mos的大小,或者mos是外接式的,那你直接看外部mos所提供的spice model大概就可以了
4#
發表於 2008-4-20 23:18:53 | 只看該作者
喔,嘿嘿,是finster版主啊,對啊就是V=IR啊,真是faint,原來我用錯電壓了,我錯用成Vout/I了怪不得不對呢, + d. w" e# r+ Y) K0 H3 q+ w4 ^" A
  R2 O  X3 g% [- g; f* a+ v8 _
谢谢您的解答!
5#
發表於 2008-7-7 00:05:00 | 只看該作者
這個問題剛好是最近一直困擾的問題  J/ q/ y, n% e* m6 m
為何不可以(vout-vin)/I阿4 J2 I% G) h0 g: \
下面是我寫的spice檔- n, {8 F7 _$ ?# Y; ^  v5 N
m1 vin vdd vout vss nch3 w=3.5u l=0.35u
/ k' i; g' M0 K. ~- Jr1 vout 0 1k
  \# L4 T5 P# `5 v在.print部份: O, `6 s+ f: p! y
是要寫 "v(vin)/v(vout)" "(v(vin)-v(vout))/i(r1)" "(v(vin)-v(vout))/i(m1)"呢+ q0 O# t' J* [" V& c% T' k
可否幫忙解答?/ J' R% _( I. K" ]$ I! ~
thanks
6#
發表於 2008-7-7 09:52:23 | 只看該作者
原帖由 dogst 於 2008-7-7 12:05 AM 發表
' k9 L- r; `( }* f9 x, D這個問題剛好是最近一直困擾的問題
% K; `" |* Z' E/ A( _2 u! ^為何不可以(vout-vin)/I阿
- H! y- x4 N& f5 S' a下面是我寫的spice檔
. |- i' [0 |) am1 vin vdd vout vss nch3 w=3.5u l=0.35u
/ l7 j4 ]  ^! A/ Pr1 vout 0 1k% @( ]  d4 u. [* {% n1 t
在.print部份
0 O* B: m1 `7 h6 |是要寫 "v(vin)/v(vout)" "(v(vin)-v(vout))/i(r1)" " ...
- u0 {% W* S) K% X- V% X! f; ^

: `9 f' i7 i( W- Y$ j) n% f7 G! {4 Y( q) D5 {6 S& i# n

! Z) F6 j3 R+ m0 M! f+ R建議你不要加r1 vout 0 1k
) |1 a" f. e/ i2 @- h* U因為你要對NMOS作計算ron,加了r1後,電流會對r1產生一個電壓,如此一來會壓縮到m1的vout電壓
/ U- s* c( d9 S0 U8 w6 J建議的寫法為
! a& L* L( N1 E& qm1 vin vdd vout vss nch3 w=3.5u l=0.35u m=1. c, m) {; m- o' z. r& O; G6 `
vvin  vin   vss    vss' |0 U6 R2 e1 L2 Z
vvout vout  vss    vss
& w( T: R4 _! t8 W) K& s6 [.dc vvin 0.001 3.3 0.1
! v& [" v+ @& W, O3 u. F, Q- F" I.print PAR('(v(in))/abs(i(m1))')
, l0 a* ]& @! E& \! ]0 O* s" ]! ~.print i(m1)
7#
發表於 2008-7-7 15:37:14 | 只看該作者
嗯嗯  有沒有加電阻  真的有差  謝謝4 _; h' J& L* M( k( {8 L  q2 @* t
可是又有一個問題(不好意思 問題真多 多多包含)  A. N) m8 z% Z# @
vvdd   vdd   0  3.0v & ^% H" k7 M7 L1 o; e4 c7 M
vvss   vss   0  0v ' w0 G$ R9 ~1 {, K) i
vvin   vin   0  0v   z: _2 a, {. H! }! b, z) X
vvout  vout  0  0v
  s# R- q5 n- v+ [( K* N' N' nm1   vin   vdd   vout  vss  nch3  w=3.5u   l=0.35u
& I) Q- m" n% z.print a=par('(v(vin)-v(vout))/i(m1)') b=par('v(vin)/i(m1)')' r$ q% n2 B7 R! I: u% z
就是在vout的部份 有沒有設成0好像結果差很多耶  為何會這樣呢$ J7 Z7 L/ ]$ J
還有在量Ron部份時  到底是要par('(v(vin)-v(vout))/i(m1)')還是要par('v(vin)/i(m1)')
  x1 f2 o  L5 M) U$ v. A! t5 T8 \因為版主在回覆時  兩者都有提到  可是還是不清楚; `8 h3 x1 m7 J2 O( x1 V
可否幫忙解答?
3 V, w& x: T) r0 {, YThanks
8#
發表於 2008-7-7 17:25:19 | 只看該作者
不好意思,一時之間沒留意到
! R9 d$ s1 \) E3 ^應該是
; j# ^3 B6 d+ y# _  u6 r.print PAR('(v(vin)-v(vout))/abs(i(m1))'): D; i! D: `, q" d( K+ n
要加abs則是因為電流有流進流出的問題,進而會產生正負符號的緣故,故而加了abs可以變成是正的) k3 U5 G5 S, m, E6 g
另外,vout的部份,因為你是作.DC的sweep,而且是對NMOS,所以,source端一定要加最低電位(也就是0V)然後對drain作dc sweep
: v" h# f0 l) x: q1 L/ }反之若是PMOS,則是要加最高電位(亦即VDD)* Z6 O, J# b1 \9 ^9 x- d
這是因為PMOS和NMOS兩者對VSS和VDD有不一樣的變化
9#
發表於 2008-7-7 18:04:27 | 只看該作者
順便來請教各位大大. h2 Y% J4 r* X4 I% O7 K2 G
有在其他書上看到
5 F3 y4 x1 N5 R, b7 E.print dc RON=par('1/LX8(mn1)')% t) H; B& W* \& I
這個指令似乎也能看RON的電阻值
. r9 r! q9 u$ b8 a/ N不過不太了解這個指令的意思?
10#
發表於 2008-7-7 20:41:52 | 只看該作者
原帖由 finster 於 2008-7-7 05:25 PM 發表 + e0 q+ x! X% m" z$ F
不好意思,一時之間沒留意到
. V5 U/ y5 ^2 C6 M- M應該是
" n9 \" Q0 ]6 v6 S7 t.print PAR('(v(vin)-v(vout))/abs(i(m1))')
5 |/ B! x) n5 V要加abs則是因為電流有流進流出的問題,進而會產生正負符號的緣故,故而加了abs可以變成是正的
2 h4 h6 ~) O& U另外,vout的部份,因為你是作.DC的swe ...
$ }  R) A( Y1 {8 @% U/ E

& u- @' H0 C" ]/ C; |
3 `1 D& o, |" F% v嗯嗯  原來如此
4 Z% s' [3 p; [: c  W意思也就是說 要寫成下面這樣子  對吧!
5 v+ j2 J8 O$ J* w8 q" Mnmos : m1 vin vdd vout vss ........  .print par('(v(vin)-v(vout))/abs(i(m1))')( W5 F0 l3 \4 p: q7 `( w: Q, m
pmos : m1 vout vss vin vdd ........  .print par('(v(vin)-v(vout))/abs(i(m1))')
6 U& z/ I3 ?" o; L4 V, u/ d4 K, J" Q# s: ~9 l
那如果是transmission gate的話" {, D" q( n  y# c3 J& j' e
vvdd   vdd   0   dc   3.0V
7 a! R" U/ `  N+ ^vvss   vss   0   dc   0.0v  @" _- ]8 F) D" e" P' E
vvin   vin   0   dc   0.0v
% U: G, }2 ]4 i7 k8 \$ Um1   vin   vdd   vout  vss  nch3  w=3.5u   l=0.35u
# L- N+ x# f/ x% q3 km2   vout  vss   vin   vdd  pch3  w=3.5u   l=0.35u  
. ?. X/ Z! z1 }- }  M那麼在.print部份的話  要怎麼寫4 r! u- f7 [; g" |7 U- P
因為他不像nmos或者pmos一樣  只有m1的電流可以除
8 ~- T4 y+ r4 g這樣怎麼求Ron
  a+ |4 P4 E  u/ ?. h% e* [+ F& Q可否請大大解釋疑惑( s/ g7 G8 V5 _
謝謝
11#
發表於 2008-7-8 09:33:51 | 只看該作者
可以是各別算出Ron,再運算3 y7 w1 s. j" b. z- f
.print r_n=par('(v(vin)-v(vout))/abs(i(m1))')
1 w0 N) F; V9 X$ ^.print r_p=par('(v(vin)-v(vout))/abs(i(m2))')* T2 R9 c3 N- u" o" m2 F
.print r_pn=par('(r_n*r_p)/(r_n+r_p)')- K  ?2 g: a1 x. v' R

9 O3 @0 e! S8 E3 f7 i0 o# h另外一種方式則是將電流相加再作運算! y) D5 b/ d+ f8 n( [$ P9 Q
.print i_pn=par('abs(i(m1))+abs(i(m2))')
& i5 l# C8 T) W.print r_p=par('(v(vin)-v(vout))/i_pn')
12#
發表於 2008-7-10 21:40:18 | 只看該作者
大大  我用了你的方法  可是結果怎麼跟書上畫的不一樣呢
# L% j. O- A: R6 f( q% C; u0 V以下是我的SPICE檔
) E" F' z& T$ N7 T; p: E6 z9 l: r' \, L  G3 |1 p* ]# v
vvdd   vdd   0   dc   3.0V5 c% s. Y4 l! [& B' }8 w6 p
vvss   vss   0   dc   0.0v, _1 n8 h' J4 W6 _+ h
vvin   vin   0   dc   0.0v
3 s5 u: p$ `8 m3 Sm1   vin   vdd   vout  vss  nxxx  w=3.5u   l=0.35u 1 ?2 Z5 t: E& w. h
m2   vout  vss   vin   vdd  pxxx  w=3.5u   l=0.35u  m=4
! v5 T$ Y8 n( @7 x6 Q' c& L( u
# {* V/ i( W6 Y, R  X: ?/ X$ [* I7 R
以下是用 .print i_pn=par('abs(i(m1))+abs(i(m2))')  r_p=par('(v(vin)-v(vout))/i_pn')
$ i: R, b0 E% A* p3 t$ _! O' j& k
.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 L8 w- o4 R) [" G  P5 {, W( _! Z* Z( x( g3 w# S
' }7 F" L1 G( v" e
為何兩個結果會不一樣呢
! _; d7 q' x0 j: B2 g7 I% C1 N) Y' W而且很納悶的是第二個方法為何要(相乘)/(相加)4 H* O( }2 I* x! H

5 e  `$ Z3 z/ I7 q" W! A$ I; E" s% ^可否請大大幫忙解答
% V6 }  C; r1 ]- IThanks

本帖子中包含更多資源

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

x
13#
發表於 2008-7-11 00:20:41 | 只看該作者
第一個方法為何要(相乘)/(相加)???
* M, S1 w) O6 J# R* D, p6 L你要計算transmission gate的電阻,而transmission gate就是PMOS和NMOS兩者並聯,要求並聯電阻的阻值,當然是(相乘)/(相加),這是很基本的電阻公式計算- ^5 n+ T; l4 t1 S5 C
所以,我先計算出各別PMOS和NMOS的阻值再作計算
5 |- J. Z0 `6 \. J5 J6 l
: F* ^( J/ H0 K0 Y- y" h5 M- o8 t至於兩種方法為何會不同
( `7 p6 P$ `$ S& i7 \9 W照理說應該要相同才對,不過,我倒是很好奇為何你的電阻計算出來是負的
: ?8 W8 T( u& @% t' M! y) O( X) q5 {7 X這點很不合理/ _2 o" t# H: P; i$ N$ H
難道是你的VOUT沒有設對嗎??
14#
發表於 2008-7-13 12:05:56 | 只看該作者
如果我改成下面這樣
' g& k) n5 O1 _3 r$ m1 d.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)')
  L5 @* O* b: y  o; U電阻就會變正的
: h9 q4 s, ]" I2 U5 j% E4 M可是不管怎麼看  還是覺得不太對4 r! l% {( E; \7 W0 a4 B" a( t
3 C2 E8 ]1 d: P# F
以下是我的spice檔
6 ~, z9 F+ L; d" S8 x, y9 Tvvdd   vdd   0   dc   3.0V2 W  q3 }" L; A% z) P1 S( x; M
vvss   vss   0   dc   0.0v4 F. V( q: \( V  L$ H/ [2 Q- J
vvin   vin   0   dc   0.0v
8 E# F6 W! n+ X$ U& A: a5 X" U6 [" `; S% c( a" Q* H- _
m1   vin   vdd   vout  vss  nxx  w=wsize   l=lsize
' F% F) i7 R; F1 L$ }; H& j' A3 B4 E# Jm2   vout  vss   vin   vdd  pxx  w=wsize   l=lsize  2 D* _5 I* [* U# k0 N. y
6 K, E/ T% c& _( T: u) \8 ?2 b
*r1    vout  0     1k
1 q2 d1 c' l/ [  z7 O  h$ z.dc vvin 0v 3.0v 0.05v  
$ t  z( z! d1 u" i  }# @.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)')
+ Q- d( |$ S7 n8 t7 f.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)')- o' V$ s' _4 Z. R

4 j$ |. J9 U( g. g4 K. `.end$ R, ^1 l; G7 W- ^$ F6 @
8 U5 _! _* r+ u2 k1 R; S% D
希望大大幫我檢查一下  看看是否有錯
0 p7 w' N6 z" U/ K還有一個問題  就是為何不能用 v(vout)-v(vin) 而一定要用 v(vin)-v(vout) 呢
# a1 K! L6 Y, O0 i6 t- {" {# f
5 }+ u8 x; h+ a% l. u3 f; H( z可否幫忙解答8 C$ N. M8 U  o) p( W. M" k/ z
Thanks
15#
發表於 2008-7-13 15:48:16 | 只看該作者
sorry  上面打錯了
( w8 p' x1 e2 q; o/ I+ u3 r! L+ s應該是  rn=par('(v(vin)-v(vout))/abs(i(m1))') rp=par('(v(vin)-v(vout))/abs(i(m1))')  rpn=par('(rn*rp)/(rn+rp)') 才對" C' D6 @, I3 ~! |1 v+ f
1 \+ f% I& q9 u9 r9 i4 B9 O" A
還有想要請問一下   跑出來的模擬圖  要怎樣看電阻值呢
8 x; W! G& c0 h9 s- B& Y- ?, E! l也就是說 NMOS 跟 transmission gate 的部分  要怎樣看6 J4 L8 z  |, z, `4 A( n. c$ F5 M
可否教導一下4 q8 J. j  W4 \
Thanks
16#
發表於 2008-7-14 11:23:44 | 只看該作者
附圖Noname1應該就你說書上的圖吧
, j: R2 ~8 I5 b) t$ ]- P5 U) L3 N& f
下面是我測試的transmission gate,而附圖Nonmame則是PMOS/NMOS/和PMOS+NMOS的電阻疊圖. F; @# v/ W2 Q- P4 O
mp   in     vsa       vddah vddah  P_33_G2 L=0.35u W=5u M=1* c5 j; g% u# d" N! t: o
mn   in     vddah     vsa     vsa    N_33_G2 L=0.35u W=5u M=1
8 N  J( |! A$ M& }, lvvsa      vsa       0    0% ~. i- W3 ?3 H
vddah  vddah  0    vddah
1 {5 A/ g4 M' o( v7 H% bvin    in     0    0
9 ]. d6 o" q6 }) p* t  u2 a, I) [: A5 ~.dc vin 0.05 3.295 0.005
" i6 G! f: U/ N  A6 t. p.print r_p=par('(v(vddah)-v(in))/abs(i(mp))')* U/ {2 M! q% L. V1 Y
.print r_n=par('(v(in))/abs(i(mn))')5 V3 U3 w9 L/ L* _$ m3 ]4 k
.print r_pn=par('(r_p*r_n)/(r_p+r_n)')
& Q) S+ i' M  c8 ~, j: R: Y書上的圖是把PMOS和NMOS各別的電阻畫出來之後,再把兩個電阻並聯計算畫出來,其中,要計算PMOS電阻,一端要接VDDAH,而要計算NMOS電阻,另外一端則是接VSA

本帖子中包含更多資源

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

x

評分

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

查看全部評分

17#
發表於 2008-7-14 22:39:06 | 只看該作者
感謝版主這麼有耐心教導我
& q4 t" u2 z! @' _. l- Z& {* r& }$ u, X這下子  我對開關又懂更多了
9 q* U; a0 @+ p8 ^+ T1 F9 kThanks
18#
發表於 2008-7-25 11:23:31 | 只看該作者
原帖由 hiyato 於 2008-7-7 06:04 PM 發表
7 I( D( ~3 f3 A& e2 h& H3 G順便來請教各位大大
5 O+ o5 r; M4 z$ c7 @0 p有在其他書上看到3 G; T' `' F: n  B8 k' x
.print dc RON=par('1/LX8(mn1)')
4 L) [, t! F% C8 p. W' ^這個指令似乎也能看RON的電阻值( A: ^* e) X  h
不過不太了解這個指令的意思?

4 P9 R; Z' ?0 I. Z; m5 s
$ ^+ h: u1 H) G0 g6 Y& jLX8(mn1)是hspice自带的一个function,可以用gdso(mn1),表示mn1的电导的大小,正好是电阻值的倒数,用它替换更直观和简单。6 r& ~, X  O4 o) ]( R5 H+ m
.probe Ron=par('1/gdso(mn1)')
19#
發表於 2008-7-25 11:25:54 | 只看該作者
PMOS和NMOS组成的CMOS switch 电阻值写成
- ^# S  q3 i6 D1 Q& @) I" |6 D.probe Ron= par('1/(gdso(mn1)+gdso(mp1))') 就OK了
20#
發表於 2008-12-2 15:05:30 | 只看該作者
原帖由 finster 於 2008-7-14 11:23 AM 發表 0 P% D' k4 p2 E3 c& x
附圖Noname1應該就你說書上的圖吧
3 u. a6 l; v1 l
( Q" N9 [. }/ y! s7 O4 V) j下面是我測試的transmission gate,而附圖Nonmame則是PMOS/NMOS/和PMOS+NMOS的電阻疊圖
5 E7 {' ]9 B& R9 {0 @mp   in     vsa       vddah vddah  P_33_G2 L=0.35u W=5u M=1  p8 K; F7 c7 Z3 |4 s, P
mn   in     vddah      ...

# x: s& R4 ?, Y* E  L8 k3 Q! u! X- ]+ B0 v
0 l( W- D0 f8 Z- h8 \3 Q
為何2種方法跑出來不一樣??9 @8 I$ q, d: N: U* \9 }0 g' d

- ^0 Y# V5 D7 D5 U2 ~.print pmos_Ron=par('(v(vdd)-v(Vin))/abs(i(M1p))')3 D, T- l( ]& S; f
.print nmos_Ron=par('(v(Vin))/abs(i(M1n))'): T7 @: K: y0 K" R
.print TG_Ron=par('(pmos_Ron*nmos_Ron)/(pmos_Ron+nmos_Ron)')
! ?; x3 K$ q( N! s4 @5 O' R/ B- E; h- l. S* K' y
.print pmos_Ron=par('1/gdso(M1n)')2 E7 v+ w- Y9 l8 O6 P2 l& r
.print nmos_Ron=par('1/gdso(M1p)')
& s4 P: t+ S  s6 D.print TG_Ron=par('1/(gdso(M1n)+gdso(M1p))')
) v% N8 I+ l7 z  a. |1 V4 s6 e! E* C7 [5 \$ k! z( [
我只PO上TG的RON圖形出來,) Q! }) n6 t% s% c% E
上圖是用前三行指令跑出來的RON(2點電壓相減除以電流)! k- ?4 Q! o# Y
下圖是用後三行指令跑出來的RON(直接用電導倒數), C/ p1 A0 I: j9 K4 c2 `
為何跑出來的圖形不一樣,理論上應該是一樣的啊
, ?; N$ E/ s$ F- C" f. _3 i4 Y$ n  q能否請各位大大位我解答

本帖子中包含更多資源

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

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

本版積分規則

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

GMT+8, 2024-5-19 10:30 PM , Processed in 0.135018 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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