Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

搜索
1 2 3 4
查看: 36423|回復: 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 | 只看該作者
這個問題尋找很久了~( e! n: f3 Y% f! e  y% N8 M8 a
, G7 v5 M2 J: }
馬上來試試看~5 @2 m3 L; n+ ]- h0 X4 Q+ ]/ b; ?/ Q
* y& m+ b) p  E" R1 T0 R
謝謝版主教學!
24#
發表於 2010-1-27 10:30:26 | 只看該作者
感謝版主大大無私的教學~# Q2 N) Q. l+ g/ |1 c
1 s. n+ ?! ]" L: D4 B9 t4 }7 X1 o
感恩!!!
23#
發表於 2010-1-15 07:17:49 | 只看該作者
thanks+ S* H6 _% t& J5 Y
1 L, u: H" f# I
.......................
22#
發表於 2010-1-15 01:18:25 | 只看該作者
哇~ 好感動喔~ finster大真是太強了~"~! j- @: c- N1 u, _
今天又長知識了^_^
) X/ F. F) B. F/ p* @3 N3Q
21#
發表於 2008-12-2 19:33:09 | 只看該作者
觉得这样做有点复杂了!
20#
發表於 2008-12-2 15:05:30 | 只看該作者
原帖由 finster 於 2008-7-14 11:23 AM 發表
, ^/ ?  S9 R/ Q& ~0 l* |, t* |附圖Noname1應該就你說書上的圖吧- v& A% ^- B8 n# P
5 G9 [6 U" t3 \+ p! Z
下面是我測試的transmission gate,而附圖Nonmame則是PMOS/NMOS/和PMOS+NMOS的電阻疊圖
1 }- x- w7 p8 imp   in     vsa       vddah vddah  P_33_G2 L=0.35u W=5u M=1# x. {, N' H5 _9 t! w
mn   in     vddah      ...
9 z1 C4 v9 F2 ~5 J$ o) v
$ g% ?) d( @$ P  f, E

$ \& p8 h8 Y8 e" d為何2種方法跑出來不一樣??
  E1 W' w) _, R  T: l) m
  c, _2 ^8 y6 Z' \0 d.print pmos_Ron=par('(v(vdd)-v(Vin))/abs(i(M1p))')! d! a; |# z$ Y# K' ]7 z7 b
.print nmos_Ron=par('(v(Vin))/abs(i(M1n))')0 M; [7 H+ P% ~5 i& M
.print TG_Ron=par('(pmos_Ron*nmos_Ron)/(pmos_Ron+nmos_Ron)')6 B7 {: i0 a7 a8 P

1 n+ N) J; i3 W" t.print pmos_Ron=par('1/gdso(M1n)')4 K- W+ Q: A$ `
.print nmos_Ron=par('1/gdso(M1p)')/ Y- ^3 F$ |( K; K
.print TG_Ron=par('1/(gdso(M1n)+gdso(M1p))')
" K4 L* ^, q7 H, Y
" c7 O: g. T2 v$ s: {) _我只PO上TG的RON圖形出來,$ C* ]: }" ^! {, o% V
上圖是用前三行指令跑出來的RON(2點電壓相減除以電流)
) ]% ~4 q: M2 H0 ?: o$ W+ i& O下圖是用後三行指令跑出來的RON(直接用電導倒數)2 O5 i( W% [2 N2 h) T, J' |) {
為何跑出來的圖形不一樣,理論上應該是一樣的啊+ O2 S7 ^: S" k! ]( K
能否請各位大大位我解答

本帖子中包含更多資源

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

x
19#
發表於 2008-7-25 11:25:54 | 只看該作者
PMOS和NMOS组成的CMOS switch 电阻值写成# `1 Z% ?' l4 R# H0 t& V
.probe Ron= par('1/(gdso(mn1)+gdso(mp1))') 就OK了
18#
發表於 2008-7-25 11:23:31 | 只看該作者
原帖由 hiyato 於 2008-7-7 06:04 PM 發表 ) g" c, q: R5 y) u
順便來請教各位大大
4 |- W" ]* B9 G6 ~) [/ X有在其他書上看到
, x" J5 _# c$ L* y0 S+ x2 g; w% ^.print dc RON=par('1/LX8(mn1)')# L, R- v8 S& x2 A$ \4 [- j
這個指令似乎也能看RON的電阻值7 i/ R$ `9 J! t: D- t1 k. g
不過不太了解這個指令的意思?

7 n4 {, x6 ^8 Y. X( c' @
- Y( O; O$ ?) B5 T/ @/ z, b7 MLX8(mn1)是hspice自带的一个function,可以用gdso(mn1),表示mn1的电导的大小,正好是电阻值的倒数,用它替换更直观和简单。" `! @0 f5 G! X" j5 m+ e
.probe Ron=par('1/gdso(mn1)')
17#
發表於 2008-7-14 22:39:06 | 只看該作者
感謝版主這麼有耐心教導我
( v' f7 `: Q9 ~8 n, o這下子  我對開關又懂更多了0 S) _6 l! p1 v3 v' R
Thanks
16#
發表於 2008-7-14 11:23:44 | 只看該作者
附圖Noname1應該就你說書上的圖吧
* N9 E/ }* O- h" U3 ~1 ], o3 ~5 I8 b8 u/ g
下面是我測試的transmission gate,而附圖Nonmame則是PMOS/NMOS/和PMOS+NMOS的電阻疊圖
6 i" j1 F: F  q3 [mp   in     vsa       vddah vddah  P_33_G2 L=0.35u W=5u M=1
3 X4 X9 ~0 `; K3 x6 dmn   in     vddah     vsa     vsa    N_33_G2 L=0.35u W=5u M=1, b6 y7 z2 H. G3 {/ r
vvsa      vsa       0    05 K8 ^9 q" @) u( E/ ]! \
vddah  vddah  0    vddah, ~- X! w3 a" v+ j
vin    in     0    0
* U2 E( Y  n7 G9 Z.dc vin 0.05 3.295 0.005
$ Q5 T" J* ]+ K.print r_p=par('(v(vddah)-v(in))/abs(i(mp))')2 O3 B, F) o: O- \) L( @- y. i$ B" f3 k
.print r_n=par('(v(in))/abs(i(mn))')+ B$ E! R5 P# g$ ?8 {! }5 |
.print r_pn=par('(r_p*r_n)/(r_p+r_n)')
0 r3 y+ `/ k& ]& |6 Q書上的圖是把PMOS和NMOS各別的電阻畫出來之後,再把兩個電阻並聯計算畫出來,其中,要計算PMOS電阻,一端要接VDDAH,而要計算NMOS電阻,另外一端則是接VSA

本帖子中包含更多資源

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

x

評分

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

查看全部評分

15#
發表於 2008-7-13 15:48:16 | 只看該作者
sorry  上面打錯了
2 y. P0 e' J; }  F0 i) ]+ g; o* v應該是  rn=par('(v(vin)-v(vout))/abs(i(m1))') rp=par('(v(vin)-v(vout))/abs(i(m1))')  rpn=par('(rn*rp)/(rn+rp)') 才對4 I3 y$ L; c( V( R3 g% t: n9 R
/ \0 g! j% @/ i' I9 [7 J& \, e
還有想要請問一下   跑出來的模擬圖  要怎樣看電阻值呢# i9 a) [' f; [5 G; n
也就是說 NMOS 跟 transmission gate 的部分  要怎樣看
- d( H* U1 w; J. @' t3 Z可否教導一下
8 l; x) @& k6 {7 C8 y& S$ O+ AThanks
14#
發表於 2008-7-13 12:05:56 | 只看該作者
如果我改成下面這樣$ j- ~6 y, Q- W! f$ `3 Y# v
.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)')
$ i- ]0 A' e4 J, r5 W電阻就會變正的
+ `: `9 C6 c# e5 N" i. ?" T可是不管怎麼看  還是覺得不太對$ e- ^; ]0 p& L# r. g. p4 g7 O: N- E+ Y

9 _8 S* h" g: C; n0 K! F" P$ K以下是我的spice檔
5 y0 J: \3 G0 v5 [) k% Wvvdd   vdd   0   dc   3.0V
& u' j7 [2 F8 {/ h0 u# L* tvvss   vss   0   dc   0.0v
$ L8 G6 d. ?! J+ F, w( C) Cvvin   vin   0   dc   0.0v
) y; f( Y. t3 E
5 Z+ |( o" {0 i! I% {3 Am1   vin   vdd   vout  vss  nxx  w=wsize   l=lsize
! V9 h7 X* F6 }- L) vm2   vout  vss   vin   vdd  pxx  w=wsize   l=lsize  
4 v$ r; @0 L4 y4 {/ F  K. S+ M( U* F9 v* r; b% v  J) D/ x
*r1    vout  0     1k6 N+ l2 \9 U( V1 z$ n. a
.dc vvin 0v 3.0v 0.05v  
- L, x8 E) }+ B7 F' y3 t4 m. \6 W9 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)')
; |1 ^. ^) X. H* ?3 G; 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)'), U7 ^' k0 v; I" Y) K9 H5 r) p" _, G

# b5 j; U# Y; z.end2 ?* d7 m1 x- U+ [
2 L! l( e  |3 F# X
希望大大幫我檢查一下  看看是否有錯
' ]; Z$ D  ?1 @( H還有一個問題  就是為何不能用 v(vout)-v(vin) 而一定要用 v(vin)-v(vout) 呢& e( |: Y0 `  `" T" D6 \& s: Y( {

' E% e9 |- k! `! m% R可否幫忙解答
3 n( T, W9 ^  `* S7 K' O7 P2 [- iThanks
13#
發表於 2008-7-11 00:20:41 | 只看該作者
第一個方法為何要(相乘)/(相加)???# V$ d. i2 Y5 h% r/ ^
你要計算transmission gate的電阻,而transmission gate就是PMOS和NMOS兩者並聯,要求並聯電阻的阻值,當然是(相乘)/(相加),這是很基本的電阻公式計算
5 e0 S* ?8 g  T所以,我先計算出各別PMOS和NMOS的阻值再作計算
+ S, M0 }& V2 ^7 i6 U
) n8 h- W; k' J8 Z* e至於兩種方法為何會不同, E3 v2 ~% E1 u2 a( S
照理說應該要相同才對,不過,我倒是很好奇為何你的電阻計算出來是負的
1 Z" F" e. n2 P. h4 h2 b這點很不合理
3 ?% y" \5 A1 L  Y, F- b9 s9 }難道是你的VOUT沒有設對嗎??
12#
發表於 2008-7-10 21:40:18 | 只看該作者
大大  我用了你的方法  可是結果怎麼跟書上畫的不一樣呢/ M7 ?/ j) J) y; M$ O8 n
以下是我的SPICE檔
0 L9 W' I' D2 b1 U0 O1 h5 x  h3 j1 p  k. [! ~
vvdd   vdd   0   dc   3.0V
' V8 H" X1 T2 e: c  Cvvss   vss   0   dc   0.0v& c+ }9 {3 R* A) r- c) l
vvin   vin   0   dc   0.0v! m  q: a$ v5 a- H
m1   vin   vdd   vout  vss  nxxx  w=3.5u   l=0.35u   e1 T: z" A2 W; A* X; s
m2   vout  vss   vin   vdd  pxxx  w=3.5u   l=0.35u  m=4
% m5 `( d1 ~3 p; K' a: I- Z! D1 G" ]
& @, |0 |2 k- u' I
4 ~" B0 n4 z3 c3 |以下是用 .print i_pn=par('abs(i(m1))+abs(i(m2))')  r_p=par('(v(vin)-v(vout))/i_pn')
5 V% h: B4 p7 o) x$ D- U& H4 i/ H  M9 ?% 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)')
" ?' C: v: ]  k$ a# r* l4 [7 ?8 t3 {

! w! D. k# G& i9 B# w8 M: S$ E為何兩個結果會不一樣呢+ S$ t* @# T' W) f# M
而且很納悶的是第二個方法為何要(相乘)/(相加): u# a5 R: V2 f4 c" I6 R* D
! \# i0 v0 i5 C! y' `) J
可否請大大幫忙解答# O3 x- z5 ?# _3 K, X) \( s
Thanks

本帖子中包含更多資源

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

x
11#
發表於 2008-7-8 09:33:51 | 只看該作者
可以是各別算出Ron,再運算
* m7 @1 V# ?. |9 q0 c.print r_n=par('(v(vin)-v(vout))/abs(i(m1))')
7 w  f. N8 v4 H+ A2 u3 E; @: V8 q.print r_p=par('(v(vin)-v(vout))/abs(i(m2))')
1 G4 q7 X8 v' {1 v.print r_pn=par('(r_n*r_p)/(r_n+r_p)'): a' M' o( T; f* v7 w
# V# G5 I. _; u$ @; h, B( \8 y
另外一種方式則是將電流相加再作運算
' B% W5 h" }7 a" ^+ x2 X1 c.print i_pn=par('abs(i(m1))+abs(i(m2))')2 X& W0 B0 A" J
.print r_p=par('(v(vin)-v(vout))/i_pn')
10#
發表於 2008-7-7 20:41:52 | 只看該作者
原帖由 finster 於 2008-7-7 05:25 PM 發表
& W& E* @$ S* B# B- ]不好意思,一時之間沒留意到2 p: O1 ]4 S2 H% _% }8 K2 x
應該是
0 ?* i3 j$ n! x& d. a2 p: q.print PAR('(v(vin)-v(vout))/abs(i(m1))')
+ n1 Q" K! G7 r; C0 A+ z/ n' r' w/ X要加abs則是因為電流有流進流出的問題,進而會產生正負符號的緣故,故而加了abs可以變成是正的' ~* N* R! o2 K3 ]6 G% d$ ?/ f, N
另外,vout的部份,因為你是作.DC的swe ...

6 g+ b4 C8 O7 W; N/ i5 I: W' K# n# K( @& Y7 G) e5 ~
( `7 I5 H& b  d" n! v6 R
嗯嗯  原來如此4 Y) u& J# @$ o4 d
意思也就是說 要寫成下面這樣子  對吧!
  G# M# q9 K5 }( B) E" O. [. ]7 r. enmos : m1 vin vdd vout vss ........  .print par('(v(vin)-v(vout))/abs(i(m1))')
; P5 _* ?% U8 W+ D5 a6 cpmos : m1 vout vss vin vdd ........  .print par('(v(vin)-v(vout))/abs(i(m1))')
- _0 p2 X7 F- w9 ~0 L8 i
. B% d; F( }6 w4 Y4 c那如果是transmission gate的話( T$ k$ \+ J+ B+ }" ~! b& d
vvdd   vdd   0   dc   3.0V
4 E) c% m7 O. j7 H! ~9 n" svvss   vss   0   dc   0.0v
+ q! U- r5 l& d; Jvvin   vin   0   dc   0.0v, H/ p8 [* Z7 I( g/ O
m1   vin   vdd   vout  vss  nch3  w=3.5u   l=0.35u , C7 K+ O6 Q: t4 \9 ~
m2   vout  vss   vin   vdd  pch3  w=3.5u   l=0.35u  0 X6 c2 ?9 O6 e9 P: e! f
那麼在.print部份的話  要怎麼寫% p4 Z, l6 H! ?& d6 g# `
因為他不像nmos或者pmos一樣  只有m1的電流可以除' Z9 c( l8 B, w8 N, Q
這樣怎麼求Ron- [# ~+ `0 |0 h$ ?% E! T, h
可否請大大解釋疑惑
! J8 J7 j: d) @+ P  @6 A  h! q( X謝謝
9#
發表於 2008-7-7 18:04:27 | 只看該作者
順便來請教各位大大6 ]' `3 h; y+ p9 d) t7 B' p
有在其他書上看到
& O0 T+ X) j7 r: K0 }.print dc RON=par('1/LX8(mn1)')
, K! H1 J( P9 ?* R這個指令似乎也能看RON的電阻值
' l6 ^9 x: _4 {  a" `8 X( [" t不過不太了解這個指令的意思?
8#
發表於 2008-7-7 17:25:19 | 只看該作者
不好意思,一時之間沒留意到# i, P" B8 ~; n9 C8 t# l
應該是
( P6 p' J; z1 Q! O2 I9 F& W' N.print PAR('(v(vin)-v(vout))/abs(i(m1))')
# E: L6 U) P, ?要加abs則是因為電流有流進流出的問題,進而會產生正負符號的緣故,故而加了abs可以變成是正的
! V$ K% E2 ?! f3 r5 O/ m另外,vout的部份,因為你是作.DC的sweep,而且是對NMOS,所以,source端一定要加最低電位(也就是0V)然後對drain作dc sweep
& f; K: }5 N( [, g( r反之若是PMOS,則是要加最高電位(亦即VDD)
1 i5 H% d1 z$ i" L這是因為PMOS和NMOS兩者對VSS和VDD有不一樣的變化
7#
發表於 2008-7-7 15:37:14 | 只看該作者
嗯嗯  有沒有加電阻  真的有差  謝謝
4 ?: [" P! }& r( k可是又有一個問題(不好意思 問題真多 多多包含)
, K  F0 t- A+ Z6 v2 m. _  x( \1 Mvvdd   vdd   0  3.0v
3 f2 W" B& Z! q1 l; Mvvss   vss   0  0v
+ \; r/ b- T8 I' Z" _vvin   vin   0  0v
1 U! n; v' V" }7 }) h: xvvout  vout  0  0v % m# A* D% d5 Z- j0 T/ o- ]
m1   vin   vdd   vout  vss  nch3  w=3.5u   l=0.35u
7 k8 `1 s' @8 }; I4 |6 I.print a=par('(v(vin)-v(vout))/i(m1)') b=par('v(vin)/i(m1)')0 t& v& N( j1 i* X6 J6 M2 R* h
就是在vout的部份 有沒有設成0好像結果差很多耶  為何會這樣呢
: E9 v; Z. I4 G8 \3 B還有在量Ron部份時  到底是要par('(v(vin)-v(vout))/i(m1)')還是要par('v(vin)/i(m1)')) ^3 Q6 J6 U/ S/ \
因為版主在回覆時  兩者都有提到  可是還是不清楚
) R5 F! Z& n7 e# F* Y可否幫忙解答?& r% f: o& p" B* [
Thanks
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-5-20 05:03 AM , Processed in 0.133017 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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