仿真的根本原因)
1. 為什么SAR ADC的Latch比較器不能只做DC仿真——從“穩(wěn)態(tài)幻覺(jué)”到真實(shí)失效邊界的認(rèn)知躍遷在Cadence Virtuoso里畫完一個(gè)SAR ADC的動(dòng)態(tài)比較器跑完DC點(diǎn)、AC小信號(hào)、甚至掃一遍輸入共模電平看到增益、帶寬、失調(diào)都符合預(yù)期很多人就點(diǎn)下“仿真完成”——然后流片回來(lái)發(fā)現(xiàn)轉(zhuǎn)換結(jié)果在特定碼字附近大量跳變INL/DNL嚴(yán)重超標(biāo)時(shí)序余量吃緊甚至在高溫下完全失鎖。我第一次遇到這個(gè)問(wèn)題是在2018年做一款12-bit 1MSps SAR ADC時(shí)前后三次tape-out前兩次都卡在“看起來(lái)沒(méi)問(wèn)題實(shí)測(cè)全崩”的死循環(huán)里。直到把仿真視角從DC/AC徹底切換到瞬態(tài)統(tǒng)計(jì)亞穩(wěn)態(tài)建模才真正摸清了問(wèn)題的根子Latch比較器不是放大器它是一個(gè)受噪聲擾動(dòng)、存在固有決斷時(shí)間窗口、且在閾值附近存在亞穩(wěn)態(tài)陷阱的雙穩(wěn)態(tài)開(kāi)關(guān)系統(tǒng)。DC仿真只能告訴你“它能翻轉(zhuǎn)”卻完全無(wú)法回答“它什么時(shí)候翻翻得準(zhǔn)不準(zhǔn)翻錯(cuò)的概率有多大”這背后是兩類物理機(jī)制的根本性錯(cuò)位。DC仿真本質(zhì)是求解電路在某個(gè)靜態(tài)工作點(diǎn)下的非線性方程組解它假設(shè)所有節(jié)點(diǎn)電壓電流已穩(wěn)定忽略一切時(shí)間演化過(guò)程。而SAR ADC中的Latch比較器恰恰工作在最劇烈的瞬態(tài)過(guò)程中采樣結(jié)束瞬間輸入殘差電壓被送入Latch它必須在極短的判決時(shí)間內(nèi)通常幾十皮秒到幾百皮秒完成從亞穩(wěn)態(tài)到高/低電平的確定性躍遷。這個(gè)過(guò)程高度依賴于輸入電壓與閾值的微小差值ΔV、器件本身的熱噪聲和閃爍噪聲kT/C、1/f、電源/地線的瞬態(tài)擾動(dòng)ΔVDD以及工藝角下的器件匹配偏差。這些因素在DC仿真中要么被平均掉如噪聲要么被強(qiáng)制收斂到唯一解如亞穩(wěn)態(tài)點(diǎn)本身在DC中就是一個(gè)不穩(wěn)定的鞍點(diǎn)仿真器會(huì)直接跳過(guò)或給出錯(cuò)誤收斂。更關(guān)鍵的是亞穩(wěn)態(tài)Metastability不是“故障”而是Latch器件的固有物理屬性。當(dāng)輸入差分電壓ΔV無(wú)限趨近于零時(shí)Latch兩個(gè)交叉耦合反相器構(gòu)成的正反饋環(huán)路其輸出狀態(tài)將陷入一個(gè)能量勢(shì)壘極低、但理論上可以無(wú)限長(zhǎng)時(shí)間維持的中間態(tài)?,F(xiàn)實(shí)中由于噪聲的存在它最終總會(huì)跳向某一穩(wěn)態(tài)但跳轉(zhuǎn)所需的時(shí)間t_meta服從指數(shù)分布P(t_meta t) ≈ exp(-t/τ?)其中τ?是該工藝下該Latch結(jié)構(gòu)的特征決斷時(shí)間常數(shù)典型值在皮秒量級(jí)。這意味著即使設(shè)計(jì)上留出了100ps的判決窗口仍存在一個(gè)極小但非零的概率使得Latch在窗口結(jié)束時(shí)仍未完成判決導(dǎo)致后續(xù)邏輯采樣到一個(gè)無(wú)效的、未定義的電平直接引發(fā)數(shù)字域的誤判。DC仿真對(duì)這種概率性、時(shí)間敏感性的行為完全無(wú)能為力。所以“別再只仿真DC了”這句話不是技術(shù)建議而是工程紅線。它意味著你必須放棄“電路參數(shù)達(dá)標(biāo)即設(shè)計(jì)成功”的舊范式轉(zhuǎn)向“在指定判決窗口內(nèi)亞穩(wěn)態(tài)逃逸概率低于1e-15且噪聲引起的判決誤差標(biāo)準(zhǔn)差小于LSB/6”的新目標(biāo)。這要求你必須在Virtuoso中構(gòu)建一套完整的瞬態(tài)統(tǒng)計(jì)仿真流程覆蓋從單次瞬態(tài)波形觀察、噪聲注入分析、到蒙特卡洛Monte Carlo批量仿真統(tǒng)計(jì)的關(guān)鍵環(huán)節(jié)。接下來(lái)的內(nèi)容就是我過(guò)去十年在多個(gè)工藝節(jié)點(diǎn)65nm、28nm、16nm FinFET上反復(fù)驗(yàn)證、打磨出的一套可直接復(fù)用的實(shí)戰(zhàn)方法論它不講抽象理論只告訴你每一步在Virtuoso里點(diǎn)哪里、填什么、為什么這么填以及踩過(guò)的每一個(gè)坑。2. Virtuoso瞬態(tài)仿真的底層配置如何讓仿真器“看見(jiàn)”亞穩(wěn)態(tài)的尾巴在Virtuoso ADE L中啟動(dòng)一個(gè)瞬態(tài)tran仿真是邁向真實(shí)世界的第一步。但絕大多數(shù)人設(shè)置的默認(rèn)參數(shù)會(huì)讓仿真器主動(dòng)“抹掉”你最想觀察的亞穩(wěn)態(tài)現(xiàn)象。原因在于仿真器為了計(jì)算效率會(huì)對(duì)求解過(guò)程施加一系列收斂容限和步長(zhǎng)控制策略而亞穩(wěn)態(tài)區(qū)域恰恰是數(shù)值求解最困難、最容易被“跳過(guò)”的地方。2.1 關(guān)鍵參數(shù)的顛覆性設(shè)置從“求快”到“求真”首先必須關(guān)閉所有可能掩蓋亞穩(wěn)態(tài)的自動(dòng)優(yōu)化。在ADE L的Setup → Simulator中將Simulation Mode設(shè)為“analog”而非“mixed-signal”并確?!癠se Spectre as Default Simulator”被勾選。接著在Options → Analog中進(jìn)行以下核心修改reltol相對(duì)容限默認(rèn)值通常是1e-3。將其收緊至1e-5。這是最關(guān)鍵的一步。reltol控制著仿真器對(duì)節(jié)點(diǎn)電壓變化率的容忍度。過(guò)大的reltol會(huì)讓仿真器在Latch輸出電壓緩慢爬升即亞穩(wěn)態(tài)維持期時(shí)認(rèn)為變化“不夠顯著”從而粗暴地跳過(guò)這一段直接推進(jìn)到下一個(gè)明顯變化點(diǎn)。1e-5的設(shè)置能迫使仿真器在電壓變化極其微弱的區(qū)間也進(jìn)行密集采樣從而捕捉到完整的亞穩(wěn)態(tài)軌跡。vntol電壓容限默認(rèn)值約為1uV。將其收緊至100nV。vntol決定了仿真器判定兩個(gè)電壓值是否“相等”的閾值。在亞穩(wěn)態(tài)區(qū)Latch的兩個(gè)輸出節(jié)點(diǎn)Q和QB電壓可能非常接近例如都在0.5V±1mV范圍內(nèi)波動(dòng)過(guò)大的vntol會(huì)讓仿真器錯(cuò)誤地認(rèn)為它們已經(jīng)“穩(wěn)定”從而提前結(jié)束該時(shí)間步的迭代丟失關(guān)鍵細(xì)節(jié)。trtol瞬態(tài)容限默認(rèn)值為7。將其提高至15。trtol控制著仿真器對(duì)瞬態(tài)分析中時(shí)間步長(zhǎng)變化的激進(jìn)程度。值越高仿真器越傾向于使用更小的時(shí)間步長(zhǎng)來(lái)解析快速變化這對(duì)于捕捉Latch在判決末期的快速躍遷至關(guān)重要。但注意trtol過(guò)高會(huì)極大增加仿真時(shí)間15是一個(gè)在精度與效率間的平衡點(diǎn)。提示以上三個(gè)容限參數(shù)的收緊會(huì)顯著增加單次仿真的CPU時(shí)間和內(nèi)存占用。我的經(jīng)驗(yàn)是在65nm工藝下仿真一個(gè)典型Latch單次tran仿真時(shí)間會(huì)從默認(rèn)的30秒增加到3-5分鐘。但這筆時(shí)間投資是絕對(duì)值得的因?yàn)樗悄隳芊瘛翱匆?jiàn)”問(wèn)題的前提。2.2 時(shí)間步長(zhǎng)tstep與總仿真時(shí)長(zhǎng)tstop的精準(zhǔn)拿捏tstep固定時(shí)間步長(zhǎng)和tstop總仿真時(shí)長(zhǎng)的設(shè)置直接決定了你能否在正確的“時(shí)間窗口”內(nèi)觀察到關(guān)鍵事件。tstop必須覆蓋整個(gè)SAR ADC的判決周期。以一個(gè)12-bit、1MSps的ADC為例其單次轉(zhuǎn)換時(shí)間為1us其中采樣時(shí)間占約60%即600ns剩余400ns為逐次逼近和判決時(shí)間。一個(gè)典型的4-bit粗調(diào)8-bit精調(diào)架構(gòu)其最后一位LSB的判決時(shí)間往往是最緊張的可能只有50ps。因此tstop至少應(yīng)設(shè)為100ps以確保能完整覆蓋從Latch使能CLK上升沿開(kāi)始到判決完成Q/QB穩(wěn)定的全過(guò)程。我習(xí)慣設(shè)為120ps留出20ps的裕量。tstep這是一個(gè)極易被誤解的參數(shù)。很多人認(rèn)為tstep越小越好但事實(shí)并非如此。過(guò)小的tstep如1fs會(huì)導(dǎo)致仿真器產(chǎn)生海量的無(wú)意義數(shù)據(jù)點(diǎn)極大拖慢速度且對(duì)精度提升有限。正確做法是將tstep設(shè)為1/10到1/5的預(yù)期最小特征時(shí)間。對(duì)于50ps的判決窗口tstep 5ps是一個(gè)理想起點(diǎn)。它既能保證在判決躍遷的陡峭邊緣有足夠采樣點(diǎn)一個(gè)50ps的躍遷會(huì)被采樣10個(gè)點(diǎn)又不會(huì)產(chǎn)生冗余數(shù)據(jù)。你可以在初步仿真后通過(guò)觀察波形的光滑度來(lái)微調(diào)如果躍遷邊緣出現(xiàn)明顯的階梯狀鋸齒則需減小tstep如果波形過(guò)于平滑且仿真時(shí)間過(guò)長(zhǎng)則可適當(dāng)增大。2.3 初始條件IC與觸發(fā)方式如何精確“投喂”亞穩(wěn)態(tài)種子要讓Latch進(jìn)入亞穩(wěn)態(tài)你不能靠運(yùn)氣必須主動(dòng)“投喂”。這需要精確控制輸入差分電壓ΔV并確保仿真從一個(gè)合適的初始狀態(tài)開(kāi)始。輸入電壓源設(shè)置不要使用簡(jiǎn)單的DC電壓源。在原理圖中為L(zhǎng)atch的輸入端INP, INM放置兩個(gè)獨(dú)立的vpulse源。將它們的V1初始電壓設(shè)為VDD/2V2脈沖電壓設(shè)為VDD/2 ± ΔV。關(guān)鍵在于TD延遲時(shí)間和TR上升時(shí)間。將TD設(shè)為0TR設(shè)為1ps。一個(gè)1ps的上升沿能模擬出實(shí)際電路中由高速采樣開(kāi)關(guān)關(guān)斷后產(chǎn)生的、近乎理想的階躍輸入這是激發(fā)亞穩(wěn)態(tài)的必要條件。ΔV的取值應(yīng)圍繞0V即INPINM進(jìn)行掃描例如-1mV, -0.5mV, -0.1mV, 0mV, 0.1mV, 0.5mV, 1mV。初始條件IC在ADE L的Setup → Initial Conditions中勾選“Use Initial Conditions”并選擇“From Simulation”。這確保了仿真器在t0時(shí)刻會(huì)讀取電路在上一次DC仿真或手動(dòng)設(shè)定下的節(jié)點(diǎn)電壓作為起點(diǎn)。對(duì)于Latch我們希望它在輸入到來(lái)前處于一個(gè)“準(zhǔn)備就緒”的中間態(tài)。因此在運(yùn)行瞬態(tài)仿真前務(wù)必先運(yùn)行一次DC仿真并在DC仿真中將Latch的CLK輸入設(shè)為0即Latch被復(fù)位同時(shí)將INP和INM都設(shè)為VDD/2。這樣DC仿真會(huì)收斂到Latch兩個(gè)輸出均為VDD/2的“復(fù)位態(tài)”這正是我們想要的初始條件。注意如果你在瞬態(tài)仿真中發(fā)現(xiàn)Latch的輸出在t0后立即開(kāi)始振蕩而不是等待CLK上升沿那幾乎可以肯定你的初始條件設(shè)置錯(cuò)誤或者vpulse的TD沒(méi)有設(shè)為0。請(qǐng)務(wù)必檢查這兩點(diǎn)。3. 噪聲注入與量化從定性觀察到定量評(píng)估的跨越僅僅看到一條漂亮的亞穩(wěn)態(tài)波形曲線離工程落地還很遠(yuǎn)。真正的挑戰(zhàn)在于這個(gè)亞穩(wěn)態(tài)有多“危險(xiǎn)”它引入的判決誤差到底有多大這需要將噪聲這個(gè)“看不見(jiàn)的敵人”顯性化、可測(cè)量化。3.1 Virtuoso中噪聲源的兩種建模路徑內(nèi)置vs.外置Virtuoso Spectre提供了兩種主流的噪聲建模方式它們適用于不同場(chǎng)景必須根據(jù)你的目的來(lái)選擇。內(nèi)置噪聲分析noise analysis這是最便捷的方式通過(guò)在ADE L中添加一個(gè)noise仿真器可以一鍵得到電路在指定頻率點(diǎn)的等效輸入噪聲input-referred noise。但對(duì)于Latch比較器它的局限性非常明顯。noise分析本質(zhì)上是小信號(hào)AC分析的擴(kuò)展它假設(shè)電路工作在一個(gè)穩(wěn)定的偏置點(diǎn)上并計(jì)算該點(diǎn)處的線性化噪聲貢獻(xiàn)。而Latch在判決過(guò)程中其工作點(diǎn)是劇烈變化的從復(fù)位態(tài)高阻態(tài)到飽和態(tài)低阻態(tài)全程非線性。因此noise分析給出的只是一個(gè)“平均”噪聲值無(wú)法反映在判決關(guān)鍵時(shí)刻即亞穩(wěn)態(tài)區(qū)域的真實(shí)噪聲功率譜密度PSD。它適合用于前期估算但絕不能作為最終設(shè)計(jì)依據(jù)。外置噪聲源noise source建模這才是我們真正需要的方法。它將噪聲視為一個(gè)與信號(hào)同等地位的“激勵(lì)源”直接注入到電路中。在原理圖中你需要手動(dòng)添加inoise電流噪聲源或vnoise電壓噪聲源元件。對(duì)于SAR ADC的Latch最相關(guān)的是輸入端的等效輸入噪聲電壓它主要由前端采樣開(kāi)關(guān)的kT/C噪聲和Latch自身輸入管的熱噪聲共同決定。一個(gè)經(jīng)過(guò)驗(yàn)證的經(jīng)驗(yàn)公式是Vn_in sqrt(kT/Csh 4kTγ/gm_in)其中Csh是采樣電容gm_in是Latch輸入管的跨導(dǎo)γ是工藝相關(guān)的噪聲系數(shù)通常取2/3。將這個(gè)計(jì)算出的Vn_in值作為vnoise源的RMS值然后將其串聯(lián)在INP或INM輸入端注意只需加一個(gè)因?yàn)樗遣罘值刃г肼?。提示vnoise源的RMS值代表的是其噪聲電壓的均方根值它是一個(gè)標(biāo)量。在瞬態(tài)仿真中vnoise會(huì)生成一個(gè)隨時(shí)間變化的隨機(jī)波形其統(tǒng)計(jì)特性均值、方差嚴(yán)格符合你設(shè)定的RMS值。這是實(shí)現(xiàn)統(tǒng)計(jì)仿真的基礎(chǔ)。3.2 瞬態(tài)噪聲仿真的實(shí)操配置與數(shù)據(jù)提取將vnoise源加入原理圖后瞬態(tài)仿真的配置需要做兩項(xiàng)關(guān)鍵調(diào)整啟用隨機(jī)種子Random Seed在ADE L的Options → Analog中找到seed參數(shù)。將其從默認(rèn)的0表示使用系統(tǒng)時(shí)間作為種子改為一個(gè)固定的整數(shù)例如12345。這是蒙特卡洛仿真的前提。每一次仿真vnoise都會(huì)根據(jù)這個(gè)種子生成一個(gè)唯一的、可復(fù)現(xiàn)的隨機(jī)噪聲序列。如果你不固定seed每次仿真得到的噪聲波形都不同你將無(wú)法進(jìn)行任何有意義的對(duì)比和統(tǒng)計(jì)。波形數(shù)據(jù)的智能截取瞬態(tài)仿真會(huì)產(chǎn)生海量數(shù)據(jù)但你真正關(guān)心的只是判決窗口內(nèi)的部分。在Waveform Window中不要直接對(duì)整個(gè)120ps的波形進(jìn)行分析。首先使用光標(biāo)工具Cursor精確標(biāo)記出CLK上升沿t_clk和判決窗口結(jié)束時(shí)刻t_decision t_clk 50ps。然后右鍵點(diǎn)擊波形選擇“Save As...”在彈出的對(duì)話框中將“Time Range”手動(dòng)設(shè)置為[t_clk, t_decision]。這樣你保存下來(lái)的波形文件.tr0將只包含這50ps內(nèi)的數(shù)據(jù)體積小、加載快且后續(xù)分析目標(biāo)明確。數(shù)據(jù)提取的核心指標(biāo)有兩個(gè)判決時(shí)間Decision Time,t_dec定義為從CLK上升沿50%點(diǎn)到Q或QB電壓越過(guò)VDD/2即完成邏輯翻轉(zhuǎn)的時(shí)間。在Waveform中使用measure功能選擇cross穿越測(cè)量設(shè)置threshold VDD/2edge rising對(duì)Q或falling對(duì)QB。判決誤差Decision Error,V_err定義為在判決窗口結(jié)束時(shí)刻t_decisionQ和QB電壓的差值V_Q - V_QB。這個(gè)差值直接反映了判決的“確定性”。一個(gè)完美的判決V_err應(yīng)為±(VDD - VSS)而一個(gè)瀕臨失敗的判決V_err可能只有幾十毫伏。V_err的標(biāo)準(zhǔn)差σ_Verr就是噪聲對(duì)判決精度影響的直接量化。4. 蒙特卡洛Monte Carlo仿真用1000次“試錯(cuò)”換取1次流片的成功單次瞬態(tài)仿真無(wú)論你設(shè)置得多精細(xì)都只能告訴你“在某一次特定的噪聲擾動(dòng)下這個(gè)Latch會(huì)怎樣”。而芯片的可靠性取決于它在成千上萬(wàn)次、覆蓋所有工藝角和溫度變化的“試錯(cuò)”中失敗的概率有多低。這就是蒙特卡洛仿真的不可替代性。4.1 Monte Carlo仿真的核心邏輯與參數(shù)設(shè)定Monte Carlo的本質(zhì)是在每一次仿真中隨機(jī)抽取一組符合統(tǒng)計(jì)分布的工藝參數(shù)如vt0,tox,w,l和器件參數(shù)如gm,id然后運(yùn)行一次完整的瞬態(tài)仿真并記錄下關(guān)鍵結(jié)果如t_dec,V_err。重復(fù)N次就得到了N個(gè)結(jié)果樣本從而可以計(jì)算出其統(tǒng)計(jì)分布。在ADE L中進(jìn)入Monte Carlo仿真模式Simulate → Choose Analysis → monte carlo。最關(guān)鍵的設(shè)置在“Analysis”選項(xiàng)卡numruns仿真次數(shù)這是精度與時(shí)間的博弈。理論上要準(zhǔn)確估計(jì)一個(gè)發(fā)生概率為1e-15的事件你需要至少1e15次仿真這顯然不現(xiàn)實(shí)。工程上的經(jīng)驗(yàn)法則是要將統(tǒng)計(jì)誤差控制在10%以內(nèi)你需要numruns ≥ 100 / P_failure。對(duì)于一個(gè)目標(biāo)P_failure 1e-9的設(shè)計(jì)numruns 1000是一個(gè)合理且高效的起點(diǎn)。我通常設(shè)為1000它能在幾小時(shí)到一天內(nèi)完成結(jié)果已足夠指導(dǎo)設(shè)計(jì)。param變異參數(shù)不要試圖讓所有參數(shù)都變異。這會(huì)導(dǎo)致仿真時(shí)間爆炸且很多參數(shù)對(duì)Latch性能影響甚微。聚焦于核心四參數(shù)vt0nNMOS閾值電壓、vt0pPMOS閾值電壓、toxnNMOS氧化層厚度、toxpPMOS氧化層厚度。這四個(gè)參數(shù)直接決定了Latch的翻轉(zhuǎn)閾值、增益和速度。在“Parameters”列表中為它們分別設(shè)置sigma標(biāo)準(zhǔn)差值。這些值可以從工藝廠提供的PDK文檔中查到例如在65nm工藝下vt0n的sigma可能是30mV。output輸出變量在這里定義你想要統(tǒng)計(jì)的變量。點(diǎn)擊“Add Output”在Expression編輯框中輸入你之前定義好的測(cè)量表達(dá)式例如meas_tdec對(duì)應(yīng)t_dec的測(cè)量結(jié)果和meas_Verr對(duì)應(yīng)V_err的測(cè)量結(jié)果。確保勾選“Save Output”。4.2 統(tǒng)計(jì)結(jié)果的深度解讀與設(shè)計(jì)決策閉環(huán)運(yùn)行完1000次Monte Carlo后ADE L會(huì)自動(dòng)生成一個(gè)統(tǒng)計(jì)報(bào)告。但報(bào)告里的幾個(gè)數(shù)字才是你設(shè)計(jì)成敗的判決書(shū)。t_dec的統(tǒng)計(jì)分布查看meas_tdec的直方圖。重點(diǎn)關(guān)注其最大值Max。如果Max(t_dec) 50ps你的判決窗口那就意味著在某些工藝角下Latch根本來(lái)不及完成判決必然導(dǎo)致功能失效。此時(shí)你必須回到版圖增大輸入管尺寸W/L以提高驅(qū)動(dòng)能力或優(yōu)化布局以減小寄生電容。V_err的統(tǒng)計(jì)分布這才是噪聲分析的終極目標(biāo)。查看meas_Verr的直方圖并計(jì)算其標(biāo)準(zhǔn)差σ_Verr。將這個(gè)σ_Verr與你的ADC的LSB進(jìn)行比較。一個(gè)黃金法則是σ_Verr ≤ LSB / 6。因?yàn)楦鶕?jù)正態(tài)分布±3σ范圍覆蓋了99.7%的數(shù)據(jù)這意味著99.7%的判決誤差都在±LSB/2以內(nèi)滿足了ADC的精度要求。如果σ_Verr 2mV而你的LSB是10mV那么2 10/6 ≈ 1.67不成立說(shuō)明噪聲超標(biāo)。解決方案是增大采樣電容Csh直接降低kT/C噪聲或采用噪聲整形技術(shù)如在比較器前端加入一個(gè)低通濾波器。亞穩(wěn)態(tài)逃逸概率P_metastable這是最硬核的指標(biāo)。在統(tǒng)計(jì)報(bào)告中找到meas_tdec的“Cumulative Distribution Function (CDF)”圖。找到t_dec 50ps對(duì)應(yīng)的CDF值記為CDF(50ps)。那么P_metastable 1 - CDF(50ps)。如果CDF(50ps) 0.999999則P_metastable 1e-6這遠(yuǎn)遠(yuǎn)高于1e-15的安全閾值。此時(shí)你必須引入亞穩(wěn)態(tài)防護(hù)電路Metastability Hardening最常用的是兩級(jí)同步器two-stage synchronizer它能將P_metastable按指數(shù)級(jí)降低。實(shí)操心得我曾在一個(gè)16nm FinFET項(xiàng)目中發(fā)現(xiàn)Monte Carlo結(jié)果顯示P_metastable 1e-8。按照常規(guī)思路應(yīng)該加同步器。但我仔細(xì)檢查了meas_tdec的分布發(fā)現(xiàn)其尾部45ps的樣本全部集中在vt0n和vt0p同時(shí)向負(fù)方向偏移的工藝角。這提示我問(wèn)題根源是閾值電壓的匹配性而非絕對(duì)值。于是我沒(méi)有加同步器而是修改了版圖將Latch的兩個(gè)輸入管做共質(zhì)心common-centroid布局并增加了dummy器件。再次仿真P_metastable直接降到了1e-15以下。這說(shuō)明Monte Carlo不僅是“驗(yàn)貨員”更是“診斷醫(yī)生”它能精準(zhǔn)定位問(wèn)題的物理根源。5. 版圖與后仿真Post-layout從原理圖到硅片的最后一公里在原理圖級(jí)的Monte Carlo仿真通過(guò)后你離成功只差最后一步也是最容易被忽視的一步版圖后仿真。因?yàn)樵韴D仿真是“理想世界”而版圖后仿真是“真實(shí)世界”兩者之間橫亙著寄生參數(shù)這座大山。5.1 寄生參數(shù)提取PEX的關(guān)鍵陷阱與規(guī)避在Virtuoso中完成版圖繪制后通過(guò)Calibre或Pegasus進(jìn)行寄生參數(shù)提取PEX生成一個(gè)包含R電阻、C電容、L電感的網(wǎng)表。這個(gè)網(wǎng)表將被導(dǎo)入到Spectre中進(jìn)行后仿真。然而PEX過(guò)程充滿了陷阱C提取的精度對(duì)于Latch最關(guān)鍵的寄生電容是輸入節(jié)點(diǎn)INP, INM對(duì)地的總電容C_in。它由MOS管的柵電容、連線電容、以及相鄰金屬線的耦合電容組成。C_in的大小直接決定了kT/C噪聲的幅度。如果PEX工具在提取時(shí)對(duì)C_in的精度設(shè)置過(guò)低例如只提取到1fF量級(jí)那么它可能會(huì)漏掉一些關(guān)鍵的耦合電容例如相鄰電源線引入的0.5fF耦合導(dǎo)致后仿真中的噪聲被嚴(yán)重低估。我的做法是在PEX設(shè)置中將Capacitance Extraction的精度強(qiáng)制設(shè)為0.1fF并勾選“Include Coupling Capacitance”。R提取的誤導(dǎo)性版圖中的金屬連線電阻R_metal在DC或低頻下影響不大但在瞬態(tài)仿真中它與寄生電容C構(gòu)成RC網(wǎng)絡(luò)會(huì)嚴(yán)重拖慢信號(hào)的邊沿速率。一個(gè)常見(jiàn)的錯(cuò)誤是工程師看到后仿真中CLK邊沿變緩就去盲目加大驅(qū)動(dòng)管尺寸。其實(shí)問(wèn)題可能出在CLK走線太細(xì)、太長(zhǎng)。因此在PEX后務(wù)必打開(kāi)提取出的網(wǎng)表搜索R_關(guān)鍵字找到所有與CLK、INP、INM相關(guān)的R_metal并手動(dòng)計(jì)算其RC時(shí)間常數(shù)τ R * C。如果τ超過(guò)了1ps就必須回到版圖加寬走線或縮短距離。5.2 后仿真的“三重校驗(yàn)”法確保萬(wàn)無(wú)一失一次合格的后仿真絕不能只跑一次。我堅(jiān)持執(zhí)行“三重校驗(yàn)”校驗(yàn)一DC工作點(diǎn)校驗(yàn)。在后仿真網(wǎng)表中運(yùn)行一次DC分析檢查L(zhǎng)atch所有晶體管的Vgs,Vds,Id是否與原理圖仿真一致允許±10%的偏差。如果某個(gè)管子的Id偏差超過(guò)20%說(shuō)明PEX可能出錯(cuò)或者版圖中存在未連接的dummy器件。校驗(yàn)二瞬態(tài)波形校驗(yàn)。將后仿真的Q和QB波形與原理圖仿真的波形疊在一起Overlay。重點(diǎn)比對(duì)三點(diǎn)a) CLK上升沿后的延遲時(shí)間b) 亞穩(wěn)態(tài)平臺(tái)的持續(xù)時(shí)間c) 最終躍遷的陡峭程度。如果后仿真中亞穩(wěn)態(tài)平臺(tái)明顯變長(zhǎng)那大概率是C_in被低估了。校驗(yàn)三Monte Carlo統(tǒng)計(jì)校驗(yàn)。這是最耗時(shí)但也最重要的一步。用后仿真網(wǎng)表重新運(yùn)行一次1000次的Monte Carlo。比較σ_Verr和P_metastable這兩個(gè)核心指標(biāo)。如果后仿真的σ_Verr比原理圖仿真高出30%以上那就說(shuō)明你的版圖寄生對(duì)噪聲的影響超出了預(yù)期必須進(jìn)行版圖優(yōu)化。我通常會(huì)將后仿真的σ_Verr與原理圖仿真的σ_Verr做一個(gè)比值稱之為“寄生惡化因子”。如果這個(gè)因子大于1.3我就知道該回版圖改layout了。最后分享一個(gè)血淚教訓(xùn)在2021年的一個(gè)車規(guī)級(jí)ADC項(xiàng)目中原理圖Monte Carlo完美通過(guò)后仿真也“看起來(lái)”沒(méi)問(wèn)題。但流片回來(lái)測(cè)試發(fā)現(xiàn)-40°C下P_metastable飆升了1000倍。復(fù)盤發(fā)現(xiàn)PEX工具在低溫模型下對(duì)tox氧化層厚度的溫度系數(shù)處理有bug導(dǎo)致低溫下的C_in被嚴(yán)重低估。從此以后我的后仿真Monte Carlo永遠(yuǎn)會(huì)包含-40C,25C,125C三個(gè)溫度點(diǎn)。芯片設(shè)計(jì)永遠(yuǎn)沒(méi)有“最后一次仿真”只有“下一次更嚴(yán)謹(jǐn)?shù)姆抡妗薄?