Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

[問題求助] 模擬OP時close loop出現奇怪的振盪現象

  [複製鏈接]
跳轉到指定樓層
1#
發表於 2010-5-21 06:45:41 | 顯示全部樓層 回帖獎勵 |倒序瀏覽 |閱讀模式
大家好:' m& O) @1 X$ @- r# v7 m) H6 F. }

3 Y3 E) O5 [( u2 q小弟現在在模擬一個Folded cascode two stage的OP  g* j. e' _/ F, w9 Q" {
其open loop的響應一切正常,增益約為90dB,PM=70度8 x6 k* H- ?3 w6 ]6 Q! v
但是把它接成close loop測試其settling時出現奇妙的振盪問題! m! S* |' Z# X& u
已經debug兩三天,實在找不出原因,之前用傳統two stage架構沒遇過這種現象
  a+ N9 ]1 V% w不知道是架構選取的問題,還是有哪些原因是沒考慮到的
! K6 A- [' r, s1 U3 ^7 T; ~; ]煩請專家們抽空給點意見,謝謝& W* I/ h2 p7 b* I4 v2 E
' z' q) p: w! j6 V) x) w
架構如圖:
5 {: j* w6 W" o/ B* E/ _
) y( O% z3 o2 p& c( \3 o
; W" B! d4 k: X% R" h) Z' O其響應如下:. T; k3 _1 G. M1 f9 Y/ x

本帖子中包含更多資源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享分享 頂87 踩 分享分享
2#
 樓主| 發表於 2010-5-21 09:06:18 | 顯示全部樓層
您好
7 T* [2 |; ~3 x
  V  o( Z1 u0 s我原先的miller cap是4pF, totally frequency response如下7 ]# u6 b( v" P* n
6 |$ k" Q' ~! D1 z

4 Q7 i' |: P  ~2 Q當初一開始就覺得是phase margin有問題,可是怎麼check都不像* W1 U: V3 A5 t7 }. d" x
當miller cap等於400pF時,這個現象仍然存在,下圖為我打入一個step之後的響應! j3 F3 X2 s: N/ t8 q
8 W( o& U0 y0 S3 x8 W' K
5 Z1 R2 w1 L) v3 h& g+ d; D
就只是振盪變緩了,可是整體現象仍不變( v% s; M4 |5 j; i) d
不知道該怎麼辦~~感謝您的回答

本帖子中包含更多資源

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

x
3#
 樓主| 發表於 2010-5-21 17:26:51 | 顯示全部樓層
感謝阿森納與suewe的回應,我的loading cap.都是假設為200fF& t# T* B+ g/ H2 K% W
您說的將X軸的time step改小我試過了,仍然得到一樣的結果
# }5 t$ \6 d# P: r其電路的接法就如同傳統的unity gain buffer如下
- z& k: V$ r& R9 |( n% J- Q% w, N在vin+端打入0-1.2V(VDD)的信號來測試其slew rate與settling time
6 v6 R5 ^' l; Z
/ ]1 Q; O# R. T4 B* y4 c很奇妙的是,如果我打入的輸入信號是0-1V就不會有這種情況,如下圖所示9 d# }$ q1 ~- l' k# n1 X4 p
此時的slew rate就"看似"為正確的0 w6 |$ J9 U! B2 L/ w$ S. s$ u4 G. P
2 r( F" C* y, i
但對Y軸zoom in會發現還是有奇怪的振盪信號存在2 k7 D! p' t- J' |' _

3 u. F' T( y! v6 |" V" A打弦波去做測試,發現在input為100-MHz時: W; U7 _9 P. S( ]
會有一個很明顯的反轉現象,關於這個我沒什麼sense
- i& }- s0 |' k! U/ q4 E( Z打10-MHz或1-MHz的input,輸出也會在某些地方會"措"一下8 s6 N' t& W) P5 _& g

- Q5 k* @2 i5 {在小弟的認知上,open loop的PM對應到的是close loop的damping factor) V. }, W6 F3 ?# _. ]
大不了就抖一抖,但在PM為正的情況下會越抖越小
7 M4 a7 m& E! I4 ?8 P" m6 p然而這個現象比較像是在某個點上滿足巴克豪森條件7 N: j) |# Z' l1 O1 M+ S
能力不夠實在是無解,或許是我電路有接錯也說不定

本帖子中包含更多資源

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

x
4#
 樓主| 發表於 2010-5-21 17:34:43 | 顯示全部樓層
以下為我的spice code,煩請有心人士不吝指教0 \4 i3 Z- e/ k
因為有點冗長就用貼圖的* |6 S0 z; U; f1 {

6 ^/ |( }0 Q) V* c
* O7 |$ R& k$ D0 O! l8 B$ O/ i

本帖子中包含更多資源

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

x
5#
 樓主| 發表於 2010-5-21 18:49:44 | 顯示全部樓層
我貼code好了,剛剛發現點圖好像除了我自己以外都要錢; B% t  s5 ?9 b" f2 {. b1 ?+ q4 V
真的很抱歉,我不想故意歛財( h9 G1 _- {1 o; p

  d, y% Y) \& n( r1 q1 K( E4 X以下為第一部分" w8 ]9 E6 T. z0 H1 J/ Q9 K  z
3 H! p/ q6 s% q4 f$ W5 G0 O+ D
.option post accurate acout=0
7 u# m8 K+ @; N+ B.global vdd gnd!0 u9 p5 f# c% H9 [+ n

0 b0 f: K% x2 y4 x( W  p: I****** Supply ******7 p% ]2 n2 t' O* i0 h

8 T+ p( P+ C5 ~; ^Vdd  vdd gnd! 1.2
6 z! G! Z9 Q  B; K7 aVss  gnd!  0  0
8 ?8 q" ?+ d* S% j" z# GVin1 vin+ gnd! DC='vdc' AC=11 g. e: J: q* P. a% L9 z: w
Vin2 vin- gnd! DC='vdc'
, Q. I. V. U1 }& r: q*Vin1 vin+ gnd! DC=0.6 pulse (0V 1V 0 1u 1u 10u 20u)*SR( q& k6 P& _1 d, D9 Y* [
Vin1 vin+ gnd! sin(0.6 0.6 100X 2ns)3 C* I3 t0 W9 j2 r; l
.param vdc=1
9 y' d, T5 v5 t, _) ]' Y**************************************************
9 G0 N* v+ z, N3 M
# u- G3 `& R8 n, w2 x5 @$ ~*bias*# L, p5 w& D3 O$ v; s: i

2 ~% s- @: {# G, z+ S7 e% y8 Y.subckt BIAS vbiasp vcascp vbiasn vcascn
3 [4 g: n% O" s% d7 D+ }
# R" R8 L5 _- S1 [1 i+ Q) SM1        vbiasp        vcascn        nc        gnd!        nch        w=10u l=1u M=1& P- \: G/ r7 R, {
M2        nc        vbiasn        nd        gnd!        nch        w=10u l=1u M=4+ {" i5 \0 h7 U* d. I* d
M3        nf        vbiasn        gnd!        gnd!        nch        w=10u l=1u M=18 |7 e8 [* W5 h5 V2 X, s
M4        vbiasn        vcascn        nf        gnd!        nch        w=10u l=1u M=1
8 J: B( o: L6 y0 S# Z1 H& Q. n% NM5        vcascn        vcascn        gnd!        gnd!        nch        w=2.5u l=1u M=1) y) p  G  T( H+ W3 L
M6        vbiasn        vcascp        nh        vdd        pch        w=30u l=1u M=1; Z3 [5 A, Q( P3 ?
M7        nh        vbiasp        vdd        vdd        pch        w=30u l=1u M=1. O2 F. Z% ?8 b2 G. z* P" B
M8        ni        vbiasp        vdd        vdd        pch        w=30u l=1u M=1
7 @+ p  [7 [+ N: a- I4 jM9        vbiasp        vcascp        ni        vdd        pch        w=30u l=1u M=1
! `. Y, G- w' E- jM10        vcascn        vcascp        nj        vdd        pch        w=30u l=1u M=15 w! U2 S9 _1 w: t6 ^0 c: _
M11        nj        vbiasp        vdd        vdd        pch        w=30u l=1u M=1
: Q0 V0 s( y- B0 S4 c7 WM12        nk        vbiasn        gnd!        gnd!        nch        w=10u l=1u M=1
8 o5 s) M, t* y  L4 _; U0 PM13        vcascp        vcascn        nk        gnd!        nch        w=10u l=1u M=18 P' y# s/ ~1 e
M14        vcascp        vcascp        vdd        vdd        pch        w=7.5u l=1u M=13 D- ?2 r4 `; I  v
Rb        nd        gnd!        2k
2 b) N2 W2 d1 U1 N/ Q  y( p
, }* {  q* U- C% g8 Z*start-up*
8 U4 {+ \& U0 y! _# cM15        vbiasp        nl        gnd!        gnd!        nch        w=10u l=1u M=1
6 K' G. V9 r2 e* zM16        vcascp        nl        gnd!        gnd!        nch        w=10u l=1u M=1
2 F; E* j3 E7 g+ ^0 ]# o2 c9 n9 g1 ]M17        nl        vcascn        gnd!        gnd!        nch        w=10u l=1u M=1' b/ d! Z+ r4 ?$ \  H" b: g+ W
M18        nl        gnd!        vdd        vdd        pch        w=0.2u l=1u M=1
4 u6 [: a; Y5 W1 q# X$ Y2 Z
  }* i# ?4 I( J6 b' Q.ends
& X- K3 w9 M$ R' B# n4 _* A% K$ [: |) o7 ?0 e+ C1 q
Xbias        vbiasp        vcascp        vbiasn        vcascn        BIAS4 G' [( I! U5 w; c. a4 s/ I

- R' H2 \0 |4 t* r+ l) p) O*first stage*
) N4 ~. ^3 W+ R* JMq1        n1        vin+        n3        gnd!        nch        w=10u  l=1u M=10
6 u& P. f8 P$ c& e*Mq2        n2        vin-        n3        gnd!        nch        w=10u  l=1u M=10
$ J( i( K. R: y. R' ?2 ZMq2        n2        vout        n3        gnd!        nch        w=10u  l=1u M=10 *SR test
5 T, d/ S( o- I4 o/ j' WMq3        n1        vbiasp        vdd        vdd        pch        w=30u  l=1u M=4( M% a0 V" g9 ~9 U
Mq4        n2        vbiasp        vdd        vdd        pch        w=30u  l=1u M=4$ z3 {* @* k3 v! Z) v( L7 V
Mq5        n4        vcascp        n2        vdd        pch        w=30u  l=1u M=1
% D6 t; q7 u$ g4 w7 bMq6        out1        vcascp        n1        vdd        pch        w=30u  l=1u M=1
& }, _1 Y) \! ]% S: ]Mq7        n4        vcascn        n5        gnd!        nch        w=10u  l=1u M=1. A0 r: z7 q- _8 {
Mq8        out1        vcascn        n6        gnd!        nch        w=10u  l=1u M=1
* n* o& S1 `" p  W& xMq9        n5        n4        gnd!        gnd!        nch        w=10u  l=1u M=1. {# C% z. H7 y
Mq10        n6        n4        gnd!        gnd!        nch        w=10u  l=1u M=1
6 K- r/ v8 @& o* ^% i. g8 jMq12        vbiasp        vbiasp        n1        gnd!        nch        w=10u  l=1u M=1
! s; T9 z4 ~* I- nMq13        vbiasp        vbiasp        n2        gnd!        nch        w=10u  l=1u M=1
6#
 樓主| 發表於 2010-5-21 18:50:30 | 顯示全部樓層
以下為第二部分,感謝大家看到這邊
, X! N% B7 {( p& C8 z4 ?, ]* b
, u. W; v) p9 I" n4 L& xMbias2        n3        vbiasn        gnd!        gnd!        nch        w=5u l=1u M=13( k6 u  s: P& G1 c

$ o3 v0 V: u  c*two stage*1 J  I4 i3 `) d0 B

7 L% j9 T, Z. u  G! @; q) p* _Mt1        vout        out1        gnd!        gnd!        nch        w=10u  l=1u M=6
8 z- }( y, V  e6 T/ M' ~0 CMt2        vout        vbiasp        vdd        vdd        pch        w=30u  l=1u M=2
4 R3 B( U, F$ T4 F# X. Y8 O" L- B! n6 M) d; e" M& `: \- ^! u
Cload        vout        gnd!        200f
0 O1 \$ }% e/ ]+ Q7 r
) I& L/ D; {9 P2 G  `5 r/ ^% W*lead compensation*! k: q2 J1 J- M
Cc        vout        n7        4p
5 R$ E+ t0 S$ m, x" i, ]Mc1        n7        vdd        out1        gnd!        nch        w='Wc'  l=0.2u M=1
2 Y* ^: S' p; L2 M*Rb        n7        out1        'Rb'* h, Q$ W3 p+ K% [2 s
.param Wc=0.8u6 p/ m' p3 T" K9 ]

4 ?) [& D! i$ ~# ?4 T. n/ @****** Analyplysis ******
" h' e6 w0 B" C.op2 B' i& k9 R4 \# ^( {
*** DC ***  M( e( t+ W6 z( a3 E
*.dc vminus 0.59 0.61 0.001
  V, h& ?2 F; j9 g; E* C( ~*.measure dc        Input-Offset        FIND        v(vin-)        WHEN        v(vout)=0.6       
" p. f; T- J: I*** AC out ***
: H1 S7 a0 a# N9 c*.ac DEC 100 1 200X, z: ]. N$ w# |! ~' F
.measure ac         Unit_gain_freq         when         vdb(vout)=0# T0 j" Y- g1 v, }* ^) S
.measure ac         phase         FIND         vp(vout)        when vdb(vout)=0: c2 [, E( E$ B% w: v
.measure ac         gainmax         MAX         vdb(vout)$ H8 @7 X! n: @+ v9 R  {8 d( `
.probe ac PM=par('vp(vout)+180')7 j' R/ J' E7 S+ v; }: q
.probe vdb(vout): F8 X+ }; |* c8 m3 n8 ^) T( z& a% v
.probe vp(vout)9 {9 e! E2 [2 D$ R: ~
.temp 27- c+ d& z+ ]9 N
*** Slew Rate ***
4 c. P& G/ _0 `8 n# R.tran 1n 2u *100u
4 U; `6 V& D  Q: Y- w; B$ I5 j*.measure tran UPSR DERIV v(vout) AT=0.5u+ I9 ?+ N& B6 f6 ~" Q1 o% X9 o' j5 k
*.measure tran DNSR DERIV v(vout) AT=1.5u
' L: v# _% m5 [/ n3 V$ G) ^( L# B+ v4 J. `+ g
.end
7#
 樓主| 發表於 2010-5-26 17:09:48 | 顯示全部樓層
本帖最後由 Bookert0921 於 2010-5-26 05:10 PM 編輯
7 Q3 |" Y& ?) z$ Q" P; Y3 b5 ]0 a1 d2 a0 Y5 H
我後來debug出來了,跟大家分享一下,以下先回應各位大哥的問題" S& i+ j6 t+ u7 U  i+ m
期望可以學習到更多的東西
  a6 }% t$ K# {+ P9 r! l, W  h* V
回應阿森納大( ?6 I. g( ?: w: m2 X
就算input不是rail to rail,其整體操作打0-VDD的方波在接成unity gain buffer還是可以達到應有的輸出( a6 l" [- I( e3 h
只是在那時並非操作在電晶體該存在的區域,所以速度會呈現像是e^-1次方緩慢成長而非線性增加
2 R1 k0 T; Z5 G4 p. m以下圖為例,是一個PMOS input的two stage OP. a7 V) }) F  [2 h- M
8 p: E0 v& D9 ^
當Vin+端為VDD時,電晶體關掉,而Vout逐漸上升
+ C/ R5 K4 E7 _- }8 q$ S: G左邊Vin-那顆電晶體也逐漸關掉,但相較於右方輸入級接到的是絕對VDD的值, \) u7 L4 P$ U
左邊電晶體關掉但因為Vout還沒等於VDD所以subthrethold leakage會比右邊的大& L: X, a7 b/ D2 F. ~  Y
最後逐漸將他充到接近VDD而完成一次buffer的操作
1 c% y8 g0 {$ a9 T' D4 \
; ~/ c$ }. ^9 @: Y0 J% W而輸出端是rail to rail吧!輸出為零時把下方NMOS壓到triode region輸出VDD時電流源自己triode* M, I$ z( Y: I' R% a% G" J0 f: |
我之前在模擬一般的two stage OP和gain boosting OP時打方波進去都是OK的
% H7 |( F" k: X  N5 }- o5 [2 K
1 P; P# g9 O7 L( h. b) `回應e2000大
# G3 e* O2 F0 u% uchannel length是為了在低壓下實現出高增益的放大器
1 k4 @- s3 k3 R% z; Y主要是因為之後要做的DAC大概估了一下gain error導致的nonlinearity而算
' O* N* i$ t$ k1 K速度上的考量是還好,重要的是精確,所以當時才會以length為1下去做設計

本帖子中包含更多資源

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

x
8#
 樓主| 發表於 2010-5-26 17:10:23 | 顯示全部樓層
回應li202大$ \3 y# z7 b' m% P$ \
輸出端肯定是可以跑0-VDD的,雖說是class A操作,在大信號的操作下) {. ^* z4 \6 z6 H8 @; Z) m; f
仍然有辦法把電流源hold住或者把它全部導到地
) }2 b/ d5 f& F' s而針對你所說input DC位準在1.2V下其他電晶體會跌出saturation
) u1 p# t+ R' x* p" k4 r* m% B我有不太一樣的看法,一般來說NMOS input,在意的是common mode的下限# ^6 x$ K7 k, U
而PMOS要注意的是common mode的上限,對NMOS input而言( k( B3 ]+ k" `3 B- H$ C
只要操過那個點之後電路都會維持在saturation region
! y, H/ \6 \( V" u0 H7 z) _2 ]1 k而會改變的是電流源的drain端voltage,但那只會讓電流源更加的deep saturation
7 B% p$ M# P. w% @! J所以應該不會造成其他電晶體跌出saturation外
* r" |3 r$ S: {- X而輸入端rail to rail我在前面回應過阿森納大,我認為輸入不是rail to rail沒關係+ F+ U4 ^0 h1 G$ B0 Z
若有rail to rail的方波打進來,接成unity gain buffer後只要輸出可以rail to rail即可呈現
9#
 樓主| 發表於 2010-5-26 17:11:45 | 顯示全部樓層
後來這個暫態的問題我自己的發現是因為folded cascode這個獨特的架構
- Q5 R# I: w, F$ S- Y如同B. Razavi AIC的p.333和Martin的p.268,我把圖抓出來如下所式! ?# S9 Z& H, r9 X0 L+ ^% p1 Y: D8 d
當Iss>Ip時會潛在性的造成電路有不穩定的可能發生,我當初設計時有加入clamp transistor(圖上沒畫但code裡面有)
! q* ~$ T4 ?0 N7 k+ Y
" o7 T1 _0 Q9 w但是因為folded那級的電流太小,以致於NMOS的drain端遭受很大的暫態
! M5 V4 k! O. b所以我就加入.ic去看該點電壓在何時會導致不穩定,在將folded那一級的電流給加大' J- h1 O# ~9 b
如同書上所講,當Iss=Ip似乎是個比較好的設計,這是我這次學習到的教訓
# U# Q  a1 ?' A0 v  A( w* G8 i  t& I$ F1 a+ A8 V2 r
如果覺得小弟哪邊觀念不對,希望大家不吝指正5 i9 {' v3 G9 ^4 m
電路設計就是需要被大家教訓一下,才會刻苦銘心
% \9 s/ v$ y& c& n3 t. c以上,謝謝大家

本帖子中包含更多資源

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

x
10#
 樓主| 發表於 2010-5-28 10:44:52 | 顯示全部樓層
謝謝chungming大的回應- k5 j2 c- V" ~. W# f
可以請問一下,考慮上述in/out common mode的情況下: k1 A9 i3 ]& T, N9 L
接成UGB為何在模擬上仍可從follow input的方波從0-VDD
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-5-3 10:53 PM , Processed in 0.114006 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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