增益與相位裕度)
做模擬IC設(shè)計這行LTspice是我電腦里從來沒刪過的工具之一。它免費、輕量、啟動快收斂性在同類軟件里也算得上優(yōu)秀更關(guān)鍵的是基本所有廠家的spice模型都能直接吃進來。今天這篇不整虛的就手把手帶你用LTspice把一個經(jīng)典五管差分運放五管OTA從零搭出來走一遍完整的仿真流程先做參數(shù)手算再搭原理圖然后做直流工作點檢查最后用交流仿真把開環(huán)增益、單位增益帶寬和相位裕度都測出來順便聊聊相位裕度不夠時到底怎么調(diào)。如果你是剛開始學模擬IC的學生或者工作中突然要用LTspice驗證一個運放雛形這篇文章可以直接照著操作。我會把每個步驟背后的為什么也講清楚這樣你不光會按按鈕還能明白電路為什么這樣工作、指標為什么這樣變。1. 五管差分運放的設(shè)計目標與電路拆解1.1 五管運放的結(jié)構(gòu)5個管子各司其職五管差分運放嚴格說是一個單級OTA跨導運放核心就5個MOS管一對輸入差分對M1/M2、一對有源負載電流鏡M3/M4、一個尾電流源M5。我這里用PMOS輸入對、NMOS電流鏡負載的組合來舉例這是低電壓應用里很常見的接法。這個結(jié)構(gòu)的信號通路可以這樣理解M5把總尾電流Iss固定住相當于給整個電路定了預算M1和M2把輸入差分電壓轉(zhuǎn)換成差分電流M3和M4組成的電流鏡負責把差分電流重新合并成單端電流并在輸出節(jié)點轉(zhuǎn)化為電壓。輸出節(jié)點是M2和M4漏極相連的那個點也就是整個電路唯一的低阻抗不對——對單級OTA來說輸出節(jié)點是唯一的高阻抗節(jié)點這決定了它的增益特性。各管子角色列一下M5尾電流源管決定整個電路的總電流和功耗。M1/M2輸入差分對跨導gm的大小由它決定。M3二極管連接NMOS形成電流鏡基準它的柵漏短接等效阻抗約1/gm。M4電流鏡輸出管與M2在輸出節(jié)點疊加電流輸出阻抗影響增益。輸出節(jié)點Vout通常還要接一個負載電容CL完成頻率補償。你可能會問為什么不用電阻做負載在集成電路里電阻面積大、阻值精度差而且壓降固定很難在低壓下保證輸出擺幅。用MOS管電流鏡做有源負載可以把阻抗推到MΩ級別用很小的面積就能拿到很高的增益這就是五管運放最核心的性價比。1.2 設(shè)計指標先定下來再動手沒有指標就仿真等于沒有地圖開車。這次我給自己定的目標很典型適合1.8V電源下的低功耗應用電源電壓VDD 1.8V地VSS 0V尾電流Iss 20μA也就是總功耗只有36μW直流開環(huán)增益目標 ≥ 40dB單位增益帶寬目標 ≥ 30MHz負載電容CL 1pF相位裕度目標 ≥ 60°輸出共模電平約0.9V處于電源中點是最好。這些指標不是隨便拍的。增益40dB對應100V/V這個量級對單級OTA來說很合理不貪高。帶寬30MHz配合1pF負載反推需要的輸入跨導gm大概在200μS上下。功耗控制在36μW以內(nèi)適合電池供電的傳感器接口、開關(guān)電容電路、ADC采樣保持前端等場景。相位裕度60°是反饋系統(tǒng)穩(wěn)定性和響應速度的經(jīng)典折中。1.3 為什么選LTspice做這次仿真LTspice是ADI出的免費仿真工具沒有節(jié)點限制也不像有些軟件那樣隨便就是幾十GB的安裝包。它收斂性調(diào)得不錯尤其是對開關(guān)電源和運放這類電路默認設(shè)置往往就能跑通。對五管運放這種小規(guī)模電路來說LTspice完全夠用仿真速度快到剛點下Run就出結(jié)果。LTspice當然也有短板比如不能直接畫版圖、自帶的波形查看器不如高端工具順手、模型庫主要以器件廠商自己的模型為主。但對于學習電路結(jié)構(gòu)、驗證設(shè)計思路、做參數(shù)掃描它是我用下來最順手的選擇。特別是你只需要快速看一個趨勢——寬長比增大20%增益怎么變LTspice的.step命令配合波形族功能非常好用。2. LTspice環(huán)境準備與原理圖搭建2.1 新建文件與放置元件打開LTspice菜單File New Schematic新建一張原理圖。接下來按快捷鍵F2打開元件庫在搜索框里輸入pmos4和nmos4這里一定要選帶4的版本也就是四端MOS管。四端MOS管有D、G、S、B四個端子B是襯底/體端。用四端管能顯式控制體電位更接近實際工藝中的情況。如果在元件庫里選了pmos或nmos三端符號那就只能默認襯底和源極短接很多體效應、襯底噪聲問題沒法模擬出來。放元件時我習慣把NMOS和PMOS先各放三個布局如圖M1/M2輸入對在中間靠上M3/M4電流鏡在下方M5尾電流源放在最上面。你不需要一步到位后面連線時隨時可以用CtrlR旋轉(zhuǎn)、CtrlE鏡像調(diào)整方向。常用的快捷鍵整理一下F2打開元件庫F3連線F4放置網(wǎng)絡(luò)標號Net LabelG放置地符號CtrlR旋轉(zhuǎn)元件CtrlE鏡像翻轉(zhuǎn)S放置SPICE指令文本。剛上手的人最容易犯的錯是元件放好了不連線或者用肉眼看著差不多連上了但實際沒接上。LTspice里連線一定要用工具欄的連線模式確保出現(xiàn)小紅框吸附節(jié)點不能靠拖拽元件讓引腳碰到一起。2.2 連線、節(jié)點命名與電源放置原理圖連線時我建議用網(wǎng)絡(luò)標號而不是把所有線都畫出來。在網(wǎng)絡(luò)比較多的電路里一根根拉線極易出錯而且后面要改非常痛苦。用網(wǎng)絡(luò)標號的方式在需要連通的節(jié)點上按F4放上相同名字的標號即可。對于五管OTA我先把節(jié)點規(guī)劃好總共需要這些網(wǎng)絡(luò)名vdd、gnd電源和地vinp、vinn同相和反相輸入端vout輸出端vtailM1/M2源極公共點也是M5漏極imirM3柵漏短接的鏡像基準點vbiasM5柵極偏置電壓。信號源和電源怎么放按F2選voltage放置兩個電壓源VDD接在vdd和gnd之間初始值1.8VVBIA S接在vbias和gnd之間。折騰完再把M5管子的B端接到vddM3/M4的B端接到gndM1/M2的B端同樣接到vdd。這樣每個管子都明確處于正確的襯底電位仿真結(jié)果才靠譜。2.3 模型定義與SPICE指令寫法LTspice自帶的元件庫里有通用MOS模型但在我們這種學習驗證場景我建議直接寫一個簡單的Level 1模型行為直觀調(diào)參也方便。按快捷鍵S打開SPICE Directive編輯框輸入下面兩行.model NCH NMOS (Level1 VTO0.5 KP200u LAMBDA0.1 GAMMA0.3 PHI0.7) .model PCH PMOS (Level1 VTO-0.5 KP100u LAMBDA0.1 GAMMA0.5 PHI0.7)這兩行放在原理圖任意空白處即可LTspice會自動把它當作全局model。然后選中對應的MOS管右鍵把Value也就是模型名改成NCH或PCH。如果你的管子是四端管除了Value還要檢查B端確實接了正確電位。這里有個容易踩坑的地方LTspice里四端MOS管的B端如果懸空它在某些版本里會默認等于源極電位但這是自動幫你省事的行為在很多電路里會產(chǎn)生完全錯誤的結(jié)果。尤其是PMOS輸入對襯底不接到vdd而是懸空體效應、襯底漏電全都不對。所以每次仿真前我都習慣用View SPICE Netlist看一眼生成的網(wǎng)表確認B端連接這個習慣幫你省下大量排查時間。2.4 一個可以直接抄的原理圖連接關(guān)系如果不想被連線搞暈可以直接照下面這個連接關(guān)系搭M1源極接vtail漏極接imir節(jié)點柵極接vinp襯底接vddM2源極接vtail漏極接vout柵極接vinn襯底接vddM3源極接gnd漏極接imir柵極也接imir襯底接gndM4源極接gnd漏極接vout柵極接imir襯底接gndM5源極接vdd漏極接vtail柵極接vbias襯底接vdd。VDD電源1.8V接在vdd和gnd之間VBIA S電壓源先設(shè)1.2V這個是初步猜測值后面DC仿真要細調(diào)。CL負載電容1pF一端接vout一端接gnd。輸入端先都接一個0.9V的直流共模電壓后面AC仿真再加交流信號。3. 參數(shù)計算與DC工作點仿真3.1 手算電流、寬長比、增益和帶寬有了電路結(jié)構(gòu)接下來要確定每個管子的寬長比。這一步很重要先把筆算結(jié)果放在前面后面仿真才有對照目標。先定尾電流Iss 20μA鏡像電流鏡1:1分配所以M1/M2每路電流ID1 ID2 10μAM3/M4每路電流也是10μA。輸入PMOS對管我取W/L 20μm/0.18μm換算成寬長比約111。在Level 1模型下跨導gm用公式gm sqrt(2 × KP × W/L × ID)計算。KPp取100μA/V2代人得到gm ≈ 471μS。這個值比我們需要的200μS大不少其實是留了余量——LTspice仿真時由于短溝道效應和實際Vov變化實測gm會比手算低一些。負載NMOS電流鏡管取W/L 10μm/0.18μm同樣的公式算出來它的gm ≈ 471μS。輸出阻抗用ro 1/(λ × ID)估算。λ這里取0.1/VNMOS和PMOS都是每路電流10μA所以ro 1MΩ。輸出節(jié)點看進去是兩個ro并聯(lián)Rout ro_p ∥ ro_n 0.5MΩ。直流增益Av gm_in × Rout 471μ × 0.5M ≈ 235約47.4dB滿足≥40dB的目標。單位增益帶寬GBW gm_in / (2π × CL) 471μ / (2π × 1p) ≈ 75MHz。這個值比目標30MHz高不少說明設(shè)計裕量很大。但要注意GBW太高往往會讓相位裕度吃緊后面AC仿真時我會重點看這一點。整個過程手算一遍你會立刻建立起直覺想要更大的增益就去提高Rout也就是增加L減小λ或者減小每路電流想要更寬的帶寬就增大gm或減小CL但二者都會牽扯到功耗和穩(wěn)定性這就是模擬設(shè)計的牽一發(fā)動全身。3.2 DC仿真驗證每個管子的工作狀態(tài)參數(shù)定好后先做直流工作點仿真。在原理圖中添加SPICE指令.op按Run按鈕仿真結(jié)束后打開View SPICE Error Log你會看到每個節(jié)點的直流電壓和每個器件的所有工作點參數(shù)。這一步千萬別跳過——我見過太多人急著看AC曲線結(jié)果輸出飽和在電源軌上AC結(jié)果全錯回頭又不知道錯在哪。檢查工作點有三個重點第一所有管子是否工作在飽和區(qū)。對MOS管來說就是VDS VGS - VTH在Error Log里可以直接看每個管子的Vds、Vgs和Vth。如果管子跑到線性區(qū)多數(shù)是偏置電壓不對或者寬長比不合適。第二輸出直流電平是否在0.9V附近。五管OTA的輸出點直流電壓理想情況下應該接近電源中點這樣才能獲得最大輸出擺幅。如果發(fā)現(xiàn)輸出被拉到接近0V或1.8V說明差分對兩端存在隱形的直流失配或者偏置電壓設(shè)置有問題。第三尾電流源M5的電流是否真的是20μA??碋rror Log里M5的Id如果不是20μA就需要調(diào)整vbias。M5工作在飽和區(qū)時ID由公式ID 0.5 × KPp × W/L × (VSG - |VTHp|)2決定。取M5尺寸W/L 40μm/0.18μmKPp 100μ代算得到VSG ≈ 0.54V所以vbias VDD - VSG 1.26V左右。這是個起點實際仿真可能因為模型差異需要微調(diào)。3.3 工作點不對時怎么調(diào)整如果仿真完發(fā)現(xiàn)輸出不是0.9V最常見的原因是偏置電壓vbias沒設(shè)置好導致尾電流偏大或偏小進而改變差分對的跨導和輸出工作點。調(diào)整方法很粗暴但有效用.step掃描vbias參數(shù)一次看輸出直流電平的變化趨勢。比如把仿真指令改成.op .step param vbias 1.1 1.4 0.01然后波形查看器里畫V(vout)找到電壓接近0.9V的那個vbias值把它固定下來。我在自己的電路里最終試出來vbias約1.25V時工作點最合適和手算的1.26V基本吻合。另一個更隱蔽的問題輸入共模電平不合適。PMOS輸入對要求輸入共模電壓Vicm不能太高否則輸入對管會退出飽和。經(jīng)驗上對1.8V電源Vicm取0.9V是一個穩(wěn)妥起點。如果你把輸入共模提到1.2VM1/M2的源極vtail被頂?shù)煤芨進5的VDS被迫拉低尾電流源可能進入線性區(qū)整個電路的表現(xiàn)立刻崩盤。3.4 直流增益與輸出擺幅的平衡五管OTA只有一個高阻輸出節(jié)點輸出擺幅范圍大約是VDS,sat(電流鏡)到VDD - VDS,sat(尾電流源)。想讓輸出擺幅大就要降低各管的過驅(qū)動電壓也就是用小尺寸或小電流想讓增益高就要增大輸出阻抗也就是用更長的溝道。這兩個需求在同一個尺寸上打架。我的建議是初學時先保證設(shè)計指標能用就行別一上來就追求極致。先把M1/M2和M3/M4的長都設(shè)成0.18μm最小溝道把增益和帶寬跑出來再用長溝道把增益拉高對比一兩次你就知道尺寸對性能的影響有多直接了。4. 交流仿真與相位裕度測量4.1 測開環(huán)增益的兩種實用接法DC工作點搞定后該做AC小信號分析了。這里有一個很多人都栽過跟頭的點直接按教科書把反相端接地、同相端加AC信號然后跑AC掃描得到的波形通常亂七八糟甚至完全不對。原因很簡單五管OTA開環(huán)增益幾十dB輸入端只要有一丁點直流失配輸出就直接飽和到電源軌AC小信號全被削沒了。業(yè)界最常用的做法是直流閉環(huán)、交流開環(huán)。我在LTspice里用一個大電感和一個大電容實現(xiàn)大電感LFB從vout接到vinn反相輸入端電感值1GH大電容CIN從AC信號源接到vinn電容值1GFVIN同相端vinp接一個DC0.9V、AC1V的電壓源。直流情況下電感阻抗為0所以反相端和輸出端直流短接整個運放形成單位增益緩沖器輸出直流被反饋拉到約等于同相端0.9V工作點穩(wěn)如泰山。交流情況下1GH電感的阻抗極大相當于開路反饋支路完全不起作用所以測出來的就是運放的開環(huán)增益。1GF的大電容則把AC信號完整耦合到反相端不會產(chǎn)生明顯分壓。這個電路里有兩個極低頻的極點/零點是大電感和1GF電容相互作用產(chǎn)生的頻率低到納赫茲量級完全不會污染目標頻段。但如果你用1M H、1μF這種差不多大的數(shù)值低頻段會出現(xiàn)明顯的上升/下墜假象嚴重影響你對相位曲線的判斷。數(shù)值一定要給得足夠極端1G起步別省。4.2 從幅頻/相頻曲線讀出關(guān)鍵指標在原理圖添加指令.ac dec 100 10 1GRun之后波形窗口里選中V(vout)右鍵設(shè)為Bode圖或者直接看實部/虛部。LTspice默認會畫出幅度和相位兩條曲線。幅度曲線的縱軸是dB相位是度數(shù)。用手勢按住鼠標右鍵拖動放大中鍵拖動測量線可以很方便地讀數(shù)。我通常按這個順序讀數(shù)先看低頻平坦段幅度。理論上應該是47dB左右如果實際偏出太多說明手算和模型偏差大去查工作點。再看-3dB頻率。從低頻增益下降3dB的點就是主極點頻率。五管OTA主極點由輸出阻抗和負載電容決定f_p 1 / (2π × Rout × CL)按0.5MΩ和1pF算是約318kHz。然后找0dB交點也就是幅頻曲線穿越0dB的頻率這就是實際單位增益帶寬。按設(shè)計應該在75MHz附近如果這個頻率太靠近其他寄生極點相位裕度就會吃緊。最后看相位裕度。在0dB交點對應的頻率處讀出相位角度然后用180°減去這個角度的絕對值。比如頻率在75MHz時相位是-115°那么相位裕度PM 180 - 115 65°處于一個很健康的狀態(tài)。4.3 相位裕度為什么重要以及怎么判斷相位裕度這個概念通俗講就是反饋系統(tǒng)還有多少穩(wěn)定余量才進入自激。你可以想象一輛車在高速上緊急變道相位裕度就是變道完成時車頭和護欄之間的距離距離越小越容易失控。PM小于45°運放接成反饋后會劇烈振鈴PM接近0°那就直接振蕩了。標準值的說法是60°左右最好既穩(wěn)定又響應快。想看PM的效果最直接的辦法是跑瞬態(tài)仿真看階躍響應。把運放接成單位增益緩沖器輸入端從0.9V階躍到1.0V觀察輸出波形PM高輸出平穩(wěn)過渡PM低輸出會出現(xiàn)明顯振蕩PM負值輸出直接發(fā)散。這個只可意會的直觀感受強烈建議你親手跑一次。4.4 相位裕度不足時怎么優(yōu)化這次我的設(shè)計在中低頻段看起來PM不錯但如果你把負載電容降到0.1pF或者增大輸入管W/L把GBW推高就會看到PM跌到30度甚至更低輸出階躍響應會有明顯振鈴。優(yōu)化手段說穿了就三板斧。第一招增大負載電容CL。這是最簡單的穩(wěn)定化手段。CL增大主極點向低頻移動低頻增益不變但GBW下降遠離高頻寄生極點PM自然回升。代價是帶寬變窄。比如CL從1pF加到3pFGBW從75MHz降到25MHzPM會有非常明顯的改善。我經(jīng)常用.step掃描CL值一次看三五個電容下PM的變化趨勢比來回改參數(shù)高效得多。第二招降低輸入管跨導gm。減小M1/M2的W/L或者減小尾電流Iss讓GBW降下來。但注意這會同時降低增益因為輸出阻抗基本不變。如果你只是PM不夠、增益還有余量這招很合適。比如把M1/M2從20μm改成10μmgm大約降到原來的0.7倍GBW也相應降低PM改善。第三招減小內(nèi)部寄生電容。PM不足的本質(zhì)是GBW離第二極點太近。五管OTA的寄生極點主要來自兩個節(jié)點輸入對管的源極vtail節(jié)點以及電流鏡像點imir節(jié)點。vtail節(jié)點電容包括M1/M2的Cgs、M5的漏端電容等如果能減小M1/M2的管寬會直接降低這個節(jié)點的寄生電容讓第二極點往高頻移動。但這是精細活在原理圖階段通常影響不大到了版圖階段才能感受到它的分量。這里提醒一句一級OTA通常不需要額外的頻率補償網(wǎng)絡(luò)因為它的主極點天然在輸出節(jié)點內(nèi)部寄生極點離得較遠。如果你看到某個版本的五管運放原理圖里加了電阻電容串聯(lián)補償那大概率是為了帶大容性負載或者配合某些特殊反饋網(wǎng)絡(luò)屬于比較進階的操作初學階段先不碰。5. 常見問題與排查技巧實錄5.1 仿真不收斂與Time step too smallLTspice整體收斂性不錯但五管運放配合大電感LFB和1GF大電容時偶爾會遇到Time step too small報錯。這個問題根源是仿真器在某個瞬間無法收斂被迫把步長降到極限。我的排查順序是先檢查浮空節(jié)點。原理圖上有節(jié)點沒連線或者只連到元件一端仿真器會卡住。用View SPICE Netlist查網(wǎng)表凡是只有一端的節(jié)點都有問題。再查看初始條件。給關(guān)鍵節(jié)點加.ic V(vout)0.9指令或者加.nodeset V(vout)0.9讓仿真器一開始就有合理初值。最后調(diào)整仿真器收斂選項。在SPICE Directive里加.options abstol1e-12 reltol0.003 .options methodgeargear算法比默認的trapezoidal對振蕩問題更鈍一些通常能幫助收斂。但注意這些都是治標手段根本問題還是電路模型或參數(shù)有問題該回頭查的還是要查。5.2 輸出直流飽和或振蕩如果你跑.op發(fā)現(xiàn)輸出直接是1.8V或0V首先懷疑偏置。把vbias用.step掃一遍看輸出有沒有穿過電源中點的趨勢。如果怎么掃都飽和檢查輸入共模電壓PMOS輸入對時把Vicm往0.8V左右調(diào)往往能救回來。如果AC仿真相位曲線顯示PM勉強為正但瞬態(tài)階躍響應卻發(fā)散重點檢查你的反饋連接極性。最簡單的判斷把輸出端通過大電感接到反相輸入端同相端加信號如果電路振蕩那可能是開環(huán)增益相位在單位增益頻率處已經(jīng)劣化到PM接近0甚至負值了。5.3 相位曲線出現(xiàn)異常的下降或抬升相位曲線在頻率很低時出現(xiàn)奇怪波動不用慌這通常是直流反饋大電感和輸入大電容引入的極低頻率零極點。你只需要關(guān)注目標頻段也就是從主極點到10倍GBW這個范圍內(nèi)。相位曲線在中高頻段出現(xiàn)比一階系統(tǒng)更陡的下降比如從-90°快速滑向-180°甚至更低說明至少有兩個非主極點離GBW不遠。對五管OTA來說嫌疑最大的是vtail節(jié)點。想驗證的話把M1/M2和M5管子的寬度臨時調(diào)小看相位曲線是不是變平緩。如果變平緩了就說明寄生節(jié)點確實在拖后腿。5.4 用.step做參數(shù)掃描培養(yǎng)直覺最后分享一個我特別推薦的工作習慣遇到任何指標不達標別一個參數(shù)一個參數(shù)手動試直接用.step把多個值一次跑完。比如同時掃描輸入管寬度W和負載電容CL.step param W10u 20u 30u .step param CL0.5p 1p 2p然后觀察整個波形族你能一下看出來哪些參數(shù)對增益影響最大、哪些對PM影響最明顯。這種一眼看趨勢的能力是做模擬電路最值錢的經(jīng)驗積累方式之一。仿真軟件最大的價值不是幫你把某個點算準而是讓你在幾分鐘內(nèi)把一大片設(shè)計空間看明白。拿我這版五管OTA來說最終參數(shù)就是最開始那組輸入PMOS 20μm/0.18μm電流鏡NMOS 10μm/0.18μm尾電流源40μm/0.18μm尾電流20μA負載1pF。掃描結(jié)果表明當CL從1pF降到0.3pF時PM從65°左右掉到40°不到這個結(jié)論直接可以指導后續(xù)在系統(tǒng)里給它配多大的輸出電容。手算、仿真、調(diào)整這個循環(huán)走完一遍你的模擬電路直覺會扎實很多。