掃描)
Cadence里仿真MOS電容C-V曲線這件事看起來就是個掃描電壓然后畫出電容曲線的小操作可真上手做過的工程師都知道里面藏著不少細(xì)節(jié)。我自己第一次在Cadence Virtuoso里搭這個仿真時把電路圖畫好、參數(shù)配好折騰了一整天沒出來正常曲線后來才發(fā)現(xiàn)是AC激勵源的接法和電容提取公式出了問題。這篇就圍繞從電路圖到參數(shù)掃描的完整流程把每一步的原理、操作和坑都展開講清楚。1. 仿真MOS電容C-V曲線的價值在哪不只是畫個圖而已在展開操作步驟之前我先說清楚為什么要做這個仿真。很多人覺得MOS電容的C-V曲線在教科書上看得多了積累區(qū)、耗盡區(qū)、反型區(qū)三段公式也能背沒必要自己在Cadence里仿真。但實際工程里這個曲線的形態(tài)直接決定了一堆設(shè)計指標(biāo)的可行性。以振蕩器為例無論是環(huán)形振蕩器的負(fù)載電容估算還是LC-VCO里變?nèi)莨艿恼{(diào)諧范圍設(shè)計都要依賴準(zhǔn)確的C-V關(guān)系。再比如開關(guān)電容電路里采樣電容在開關(guān)切換瞬間的電荷注入和時鐘饋通效應(yīng)也跟MOS電容在各個偏置點上的具體電容值強相關(guān)。更關(guān)鍵的是工藝廠PDK提供的MOS模型能不能真實反映C-V特性只有仿真和實際測試對上以后設(shè)計者心里才有底。所以說自己動手搭一個MOS電容C-V仿真不只是重復(fù)教科書實驗而是把PDK模型、仿真方法和設(shè)計需求串聯(lián)起來的必要環(huán)節(jié)。這個流程走通以后換工藝、換器件尺寸、掃溫度頻率都只是改參數(shù)的事核心思路是通用的。1.1 C-V曲線到底看什么積累、耗盡、反型三個區(qū)域的物理含義理解C-V曲線的三個區(qū)域是配置仿真參數(shù)的前提。以PMOS電容為例襯底是N阱柵氧化層下面是P型摻雜的多晶硅柵。柵極電壓相對襯底比較負(fù)的時候半導(dǎo)體表面空穴堆積電容由氧化層電容決定對應(yīng)曲線上平臺的高位柵壓逐漸抬高表面開始耗盡耗盡層相當(dāng)于和氧化層電容串聯(lián)總電容下降曲線出現(xiàn)下凹柵壓進一步抬高越過閾值電壓表面反型形成電子層由于電子層能屏蔽耗盡層的繼續(xù)展寬電容又重新上升回到氧化層電容值。對NMOS電容趨勢相反反向還是同向要看器件接法。這里想強調(diào)的關(guān)鍵點是仿真時如果電容接法不對比如源漏懸空、襯底沒有正確偏置曲線可能完全變成一條平坦的直線或者出現(xiàn)說不清的異常形態(tài)。這些現(xiàn)象背后都是物理圖像沒對上。1.2 仿真的本質(zhì)用交流小信號測量導(dǎo)納再換算電容Cadence里仿真電容最常用的方法是在直流工作點上疊加一個頻率固定的交流小信號然后通過流過器件的交流電流和交流電壓之比得到該偏置下的導(dǎo)納再取導(dǎo)納的虛部除以角頻率算出電容。這個原理和實驗室用LCR表測電容完全一樣只是放在了仿真環(huán)境里。關(guān)鍵在于AC小信號頻率怎么選、掃描變量怎么設(shè)、后處理怎么把仿真器直接吐出來的電流電壓數(shù)據(jù)換算成C值。這三件事正是入門者最容易被卡住的地方。2. 準(zhǔn)備工作工藝庫、仿真器和電路圖環(huán)境我假設(shè)你用的是Cadence Virtuoso IC6.1.8或類似版本和它配套的spectre仿真器。其他版本的操作窗口位置可能略有不同但底層邏輯一致。2.1 確認(rèn)工藝庫和模型文件正確加載打開virtuoso后首先要確認(rèn)工藝庫已經(jīng)attach到你的設(shè)計庫上。在CIW窗口執(zhí)行Tools - Technology File Manager確認(rèn)設(shè)計庫對應(yīng)的工藝庫正確。然后打開一個cellview在原理圖編輯界面里放器件時能調(diào)用到工藝庫里的nmos、pmos器件這就說明基本環(huán)境沒問題。更關(guān)鍵的是模型文件。打開Model Library Setup窗口也就是在每個仿真view里通過Setup - Model Libraries打開把工藝廠提供的模型文件加進去并勾上對應(yīng)的section比如tt代表典型工藝角。這一步如果漏掉仿真器直接報model not found根本進不到C-V提取環(huán)節(jié)。2.2 選擇仿真器類型spectre而不是hspiceDCadence里常見的仿真器有spectre、spectreF、hspiceD等。做MOS電容C-V仿真我推薦直接用spectre因為它對Verilog-A模型和PDK自帶的各種行為級模型支持最好收斂性也相對穩(wěn)定。hspiceD不是不能用但語法和后處理交互稍顯繁瑣。特別是很多PDK在MOS模型里帶了一些自定義參數(shù)只有和spectre配合的模型解釋器才能完整解析。選錯仿真器報出來的錯經(jīng)常莫名其妙比如unknown parameter或者unsupported analysis排查半天才發(fā)現(xiàn)是仿真器類型和模型版本不匹配。2.3 新建測試電路Cellview在Library Manager里新建一個library比如我的習(xí)慣是建一個叫cv_sim的庫technology file選擇attach到工藝庫。然后在這個庫里新建cell名字叫nmos_cv或者pmos_cv打開原理圖編輯器。電路結(jié)構(gòu)并不復(fù)雜一個器件、兩個電壓源、一個AC激勵源、一些地線符號本質(zhì)就是構(gòu)建一個二端口測試結(jié)構(gòu)。但后面的參數(shù)掃描能否順利取決于這個電路圖畫的清不清楚、端口命名規(guī)不規(guī)范。3. 搭建MOS電容測試電路從器件選擇到端口連接3.1 器件選擇四端MOS管還是三端MOS管在Cadence的analogLib庫里或者PDK庫里通常會看到nmos4、pmos4這樣的四端器件也有nmos、pmos三端器件。做C-V仿真必須用四端器件因為襯底Bulk的電位對C-V特性有決定性影響必須顯式連出來。如果PDK庫的MOS管模型是五端或六端多出來的端是射頻端或者熱端不用的端在原理圖里懸空即可但仿真時要注意模型是否把懸空端做特殊處理。絕大多數(shù)情況下四端器件nmos4就夠用。3.2 端口連接方式柵極作為激勵端源漏襯底統(tǒng)一處理以NMOS電容為例最典型的接法是把Source、Drain、Bulk全部接到同一個交流地上。柵極接一個包含直流和交流分量的激勵源。這個接法對應(yīng)的是柵極到襯底之間測電容的物理過程源漏和襯底短接在一起避免了源漏與溝道之間的電容被單獨分離出來。如果你用的是PMOS器件做變?nèi)莨芤r底可能是N阱需要單獨接一個直流電壓源給N阱提供偏置源漏接在一起作為可變電容的另一個端口。這個結(jié)構(gòu)對應(yīng)的是射頻電路里常見的MOSFET變?nèi)莨芙臃艠O是電容的一極源極、漏極和襯底短接后作為另一極。3.3 激勵源配置VDC和VAC的配合在Cadence的analogLib里一個普通的電壓源vsource就同時有DC和AC兩個參數(shù)不需要分開畫兩個源。具體操作是放一個vsource設(shè)DC voltage為變量比如vgateAC magnitude填1V或1mV。這里有個關(guān)鍵點AC magnitude不能太大否則小信號線性化的前提就不成立。常規(guī)做法是填1V因為有Cadence的AC分析結(jié)果本身就是單位激勵下的頻響最后換算電容時公式里的電壓就是1V計算方便。但如果你發(fā)現(xiàn)仿真波形上能看到明顯的非線性諧波就把AC magnitude降到0.1V或更低。我自己的習(xí)慣是AC magnitude填1V直流掃描通過變量vgate來表達(dá)。這樣后處理時因為ac電壓固定是1V電容計算公式簡化為CIm(I)/(2pif)。3.4 襯底連接和襯底電阻的影響對于BCD工藝或者帶深N阱的工藝襯底連接的寄生電阻可能比較大。這時如果直接理想地連接Bulk端仿真的C-V曲線在高頻時會和實際有偏差。嚴(yán)謹(jǐn)?shù)淖龇ㄊ窃贐ulk端外面串一個寄生電阻作為襯底網(wǎng)絡(luò)的第一階近似然后再接地。不過做最基礎(chǔ)的C-V掃描時先不需要加這些寄生等基礎(chǔ)流程跑通以后再逐步加復(fù)雜度。記住這個主線先用理想環(huán)境驗證原理再往里面疊加非理想效應(yīng)。4. 參數(shù)掃描設(shè)置直流偏置掃描和AC分析的配合C-V曲線本質(zhì)上是一個偏置電壓-小信號電容的關(guān)系曲線所以仿真流程一定是直流掃描疊加上小信號AC分析。4.1 選擇分析類型dc sweep ac analysis在Cadence ADE L或者ADE XL里仿真流程是同一個testbench同時跑DC掃描和AC分析。具體設(shè)置如下DC analysis里sweep variable選Design Variable變量名寫vgate范圍根據(jù)器件類型設(shè)定。NMOS電容從-1V到2V比較常見PMOS則反過來從2V掃到-1V。更寬的范圍可以到-3V到3V確保覆蓋積累、耗盡、反型三個區(qū)域。AC analysis里frequency選擇單頻點還是掃頻取決于你的目的。做標(biāo)準(zhǔn)C-V曲線frequency填一個固定值比如1MHz、10MHz或者100MHz根據(jù)實際應(yīng)用場景來。如果后面要研究頻率相關(guān)性再單獨做AC scan。4.2 掃描變量類型Design Variable還是Component Parameter要特別注意掃描對象必須是已經(jīng)定義好的設(shè)計變量這個變量通過把vsource的DC值設(shè)為變量名來實現(xiàn)。在Cadence里你需要在原理圖里選中vsource把它的DC voltage屬性填成vgate然后在ADE窗口Variables - Copy From Cellview把vgate從電路圖導(dǎo)入到仿真環(huán)境這樣dc sweep里才能把vgate列為可掃描變量。如果圖省事直接在DC sweep里填vgate但沒先Copy From Cellview仿真器會報錯——變量未定義。這個錯誤很常見因為和網(wǎng)表里直接寫參數(shù)名的習(xí)慣不太一樣。4.3 保存輸出量怎么讓電流數(shù)據(jù)和偏置點掛鉤由于后面要用Calculator從仿真結(jié)果里提取電容必須在仿真前指定要保存哪些輸出信號。最簡單的方法是在原理圖里直接給相關(guān)節(jié)點命名比如把柵極節(jié)點命名成gate源漏襯底節(jié)點命名成gnd。然后在ADE里Outputs - To Be Plotted選擇要看的信號。更穩(wěn)妥的做法是保存所有節(jié)點和所有終端電流。在ADE的Outputs設(shè)置里保存all terminal currents和all node voltages數(shù)據(jù)量雖然大一點但便于后處理時隨時調(diào)用。養(yǎng)成這個習(xí)慣后面排查問題時能省不少時間。4.4 參數(shù)掃描點數(shù)怎么選分辨率與仿真時長的取舍DC掃描的點數(shù)要足夠密才能完整展現(xiàn)C-V曲線的形態(tài)。如果只掃20個點積累區(qū)和反型區(qū)各占幾個點耗盡區(qū)的拐點根本沒機會體現(xiàn)曲線會看起來像階梯。建議至少50個點起步配合精度要求通常100~200個點就非常光滑了。掃描點數(shù)太多也不好因為每一個DC工作點都要做一次AC分析累計仿真時間可能翻幾倍。對單個器件做C-V曲線200個點以內(nèi)完全夠用再多了純屬浪費計算資源。5. 后處理提取電容Calculator里的一行表達(dá)式參數(shù)掃描跑完之后仿真器會在輸出目錄里生成一系列數(shù)據(jù)包含每個DC偏置點上的AC響應(yīng)。下面重點講怎么用Cadence的Calculator工具把C-V曲線提取出來。5.1 電容提取的數(shù)學(xué)公式與物理對應(yīng)小信號AC分析中激勵源幅度為VAC頻率為f流過器件的交流電流為Iac那么柵極到襯底之間的等效導(dǎo)納為Y Iac / VAC電容是這個導(dǎo)納純虛部里的”儲能成分”所以有C Im(Y) / (2 * π * f)對應(yīng)到Calculator里可以直接對電流值的虛部做運算。如果用單位激勵也就是VAC 1公式再簡化為C imag(電流值) / (2 * π * f)這就是你在Cadence Calculator里會輸入的表達(dá)式。5.2 Calculator操作步驟從仿真結(jié)果中取波形仿真結(jié)束后在波形窗口或Calculator窗口里按下面順序操作在Calculator里選擇vt電壓或it電流函數(shù)然后在原理圖上點擊對應(yīng)器件端子或節(jié)點。取流過vsource的電流值注意方向。Cadence里電流的參考方向有時和直覺相反如果取出來是負(fù)的后面加個負(fù)號即可。對電流值取imaginary部分使用Calculator的imag函數(shù)。除以(2piscan_freq)scan_freq就是你之前在AC analysis里設(shè)的頻率比如1MHz就除以6.283185e6。其中表達(dá)式類似imag( (VF(/gate) - VF(/gnd)) * admittance )更直觀的表達(dá)是imag( IF(/Vsource) ) / 6.28318e6 / 1對這里的除以(2pif)必須寫具體數(shù)值Calculator不會自動識別AC頻率。5.3 變量掃描結(jié)果與X軸的對齊還要注意一個細(xì)節(jié)仿真得到的AC數(shù)據(jù)是復(fù)數(shù)隨DC偏置變化Calculator提取出來的imag波形它的X軸自動是DC掃描變量vgate。直接把這條波形畫出來就是C-V曲線C值的單位是法拉Y軸可以顯示成fF。如果出來的曲線是反的檢查一下是否應(yīng)該取負(fù)的imag。因為電流源參考方向的關(guān)系取正負(fù)號會決定曲線是上凸還是下凹。C不可能為負(fù)所以正常情況下全段都應(yīng)該是正值如果看到負(fù)值一定是方向取反了。5.4 直接用Maestro/ADE XL批量導(dǎo)出數(shù)據(jù)如果打算做多組對比比如不同器件尺寸、不同溫度下的C-V曲線我建議直接用ADE XL或者Virtuoso Maestro來做參數(shù)化掃描。把掃描變量從vgate擴展到w、temp等然后就得到一個二維掃描矩陣每條曲線都能在結(jié)果管理器里一鍵導(dǎo)出CSV方便在Matlab或Python里做后續(xù)分析。這個操作一點都不復(fù)雜但比在ADE L里一個個改參數(shù)重新仿真高效太多適合需要大量C-V數(shù)據(jù)的場景。6. 仿真中的常見坑與排查鏈路我踩過的那些問題這塊是全文最值得收藏的部分。C-V仿真看起來簡單實際做起來坑不少下面按我自己踩坑的順序逐個講。6.1 坑一模型沒選對曲線在積累區(qū)爬不上去第一個常見現(xiàn)象是仿真結(jié)果在積累區(qū)電容值明顯低于理論氧化層電容隨著掃描電壓變化電容反而緩慢上升完全沒有出現(xiàn)飽和平臺。我排查過的原因是PDK模型默認(rèn)使用的MOS模型包含了一些高階物理效應(yīng)比如量子效應(yīng)導(dǎo)致的電容降低、多晶硅耗盡效應(yīng)等。特別是先進工藝?yán)锒嗑Ч韬谋M和量子力學(xué)效應(yīng)對積累區(qū)電容的影響很明顯曲線沒有教科書那么平整。這屬于模型行為不是仿真設(shè)置錯了。另一個可能原因是柵氧化層厚度參數(shù)或者模型里的氧化物電容比例參數(shù)和預(yù)期不符。這時需要查看模型文件里tox或相關(guān)參數(shù)來確認(rèn)。先把DC掃寬一點比如到3V或5V看高位平臺是否會逼近理論值。6.2 坑二AC頻率選太高導(dǎo)致曲線變形AC頻率的選擇對C-V曲線有實質(zhì)影響。頻率太高比如超過1GHz襯底電阻和溝道電阻的壓降變得不可忽略測到的電容值會偏小特別是在耗盡區(qū)曲線下凹幅度會異常。頻率太低比如1kHz以下溝道里的載流子有足夠時間響應(yīng)交流信號電容會貼近準(zhǔn)靜態(tài)情況在反型區(qū)看到電容接近氧化層電容。這本身沒錯但如果你的實際電路工作在幾GHz以1kHz頻率仿出來的C-V曲線就不具備參考性。所以正確的頻率選擇是根據(jù)最終應(yīng)用場景選定。比如做射頻變?nèi)莨蹵C頻率設(shè)在工作頻段附近如2.4GHz或5GHz做開關(guān)電容電路AC頻率比開關(guān)頻率高10到100倍即可。6.3 坑三襯底沒接地曲線振蕩或者亂跳有一次我把MOS管的Bulk端忘接了C-V曲線出來的形狀完全不對隨著掃描電壓出現(xiàn)了周期性振蕩。原因是襯底電位懸空后整個襯底節(jié)點浮在那里仿真器等于在算一個無參考點的電容數(shù)值完全不可信。排查這類問題的方法是在原理圖里把所有MOS管的Bulk端顯式連到地或一個明確的偏置電位。不要依賴軟件默認(rèn)也不要讓襯底節(jié)點懸空。對于四端器件每個termination都要有明確的DC路徑。6.4 坑四掃描變量方向反了C-V曲線像鏡像NMOS和PMOS因為導(dǎo)電類型不同積累、耗盡、反型的電壓區(qū)間是相反的。如果設(shè)置的掃描范圍沒有覆蓋正確的區(qū)間可能只看到曲線的一半誤以為仿真有問題。一個實用的檢查方法是先算一下器件的閾值電壓大概多少然后以閾值電壓為中心左右各擴展1~2V作為掃描范圍。比如NMOS閾值0.5V就從-1V掃到2.5VPMOS閾值-0.5V就從-2.5V掃到1V。這樣保證三段區(qū)域全部落在掃描范圍內(nèi)。6.5 坑五Calculator提取的電流方向需要取反前面提到過Cadence電流符號的參考方向和期望不一致很常見。如果畫出來的C-V曲線在積累區(qū)是負(fù)值不要急著調(diào)電路在Calculator表達(dá)式的imag前面加個負(fù)號。這個現(xiàn)象的原因是流過電壓源電流的參考方向通常定義為從正端流入、負(fù)端流出而你取的是某個終端電流方向剛好反了。符號問題不要驚慌C不可能為負(fù)能出現(xiàn)負(fù)值基本就是方向問題。7. 進階玩法多變量掃描和AC掃頻下的C-V曲線把單條C-V曲線跑通以后工作還沒有完全結(jié)束。實際工程中我更常用的是多變量掃描結(jié)果因為一條曲線說明不了設(shè)計余量。7.1 同時掃描偏置電壓和器件尺寸在ADE XL里把DC掃描的變量設(shè)為vgate另外再設(shè)一個design變量w或者finger數(shù)掃描幾組不同寬度下的C-V曲線可以看到電容平臺值隨尺寸變化的關(guān)系。這一步對理解單位面積電容特別有用。比如你要設(shè)計一個20fF的MOS電容單靠PDK的模型計算公式不夠直觀直接在仿真里掃一圈寬度找出對應(yīng)尺寸心里就有底了。然后根據(jù)仿真結(jié)果推算layout面積基本一次就能收斂。7.2 溫度掃描下的C-V漂移溫度對C-V曲線的影響機制比較復(fù)雜。載流子遷移率隨溫度變化會影響反型層的形成速率閾值電壓隨溫度漂移會導(dǎo)致反型區(qū)起點偏移最終出來的曲線會整體平移。做溫度掃描時從-40°C到125°C每隔25°C掃一條總共7條曲線疊在一起看。這個結(jié)果對評估有些電路在全溫范圍內(nèi)的性能很有價值特別是需要工作溫度范圍極寬的工業(yè)級或者車規(guī)級設(shè)計。7.3 AC掃頻得到的C-F曲線前面提到過AC頻率可以固定也可以做一個頻率掃描。把AC frequency設(shè)成對數(shù)掃描從1kHz到10GHz就能得到不同偏置電壓下的C-F曲線。C-F曲線揭示了MOS電容在高頻時的退化特性這對評估去耦電容、開關(guān)電容電路的工作上限很有幫助。值得注意的是當(dāng)頻率太高時poly-gate電阻和溝道電阻會形成低通網(wǎng)絡(luò)電容值會突然下降這個頻率點就是該尺寸器件的工作極限。如果你設(shè)計電路的時鐘頻率接近這個點電容的實際有效值和低頻仿真值會有巨大差異。8. 給剛開始做C-V仿真的人幾條實在建議按經(jīng)驗來說第一次把C-V仿真做成功真的不應(yīng)該超過半天。如果你卡了一天還沒搞定大概率是電路連接、變量導(dǎo)入或者Calculator表達(dá)式這三個環(huán)節(jié)有一個沒理順回頭看一遍這篇流程應(yīng)該就能解決。一個小技巧是在正式仿真之前先只做一個DC工作點比如固定vgate0V然后單頻點AC跑一次在Output里看一下電流虛部的數(shù)量級對不對。如果數(shù)量級奇怪比如飛安級別或者幾百毫安說明電路連接有誤。把這一步當(dāng)成冒煙測試能幫你快速排除低級錯誤避免浪費時間去跑完整的一整條掃描。還有一點關(guān)于數(shù)據(jù)記錄在仿真結(jié)果里MOS電容的C值經(jīng)常只有幾十fF到幾百fF很容易被其他寄生電容淹沒。如果在網(wǎng)表里加了額外的大電阻或大電感用于測試它們本身沒有電容所以問題不大但襯底寄生、線寄生都要在真實layout仿真里特別注意。具體到C-V仿真階段理想環(huán)境先跑通再把寄生網(wǎng)絡(luò)加進去對比變化。用我自己的話說C-V仿真這條鏈路熟練了它就像是驗證MOS器件基本特性的一塊試金石。以后無論換到什么工藝、碰到什么古怪的器件模型先掃出一條C-V曲線看看形態(tài)對不對基本能判斷模型和電路接法有沒有問題。這個套路我在好幾個項目里都靠它快速定位了PDK模型或者測試結(jié)構(gòu)設(shè)計上的毛病省下來的調(diào)試時間相當(dāng)可觀。