本篇開始討論一下芯片中的誤差。先大體給誤差分類,而後講解芯片Signoff是經過什麼機制去控制誤差帶來的不肯定性風險的。安全

誤差分類微信
在芯片設計、製造、應用等各個環節都不可避免地會引入誤差,其直接形成的影響是晶體管、電阻電容以及繞線等電特性的不肯定性。無源器件尺寸的誤差形成的影響顯而易見,那麼對於有源器件,從MOS管線性區的I-V特性公式能夠看出:ide
引入誤差的因素,主要分爲工藝(Process),電壓(Voltage)和溫度(Temperature)三類,下面分別講解:性能
Process測試
公式中的遷移率、柵氧化層電容、寬長比、閾值電壓等受芯片製造過程當中光刻、刻蝕、離子注入等操做精度的影響。有些誤差是系統性的,對全部芯片的影響是一致的,另外一些誤差則是局部的,微觀上體如今同一顆芯片上徹底相同的兩個邏輯單元表現出的電性能會有差別。flex
Voltageui
公式中的柵極電壓,漏源電壓等與電源電壓的穩定性以及到達晶體管的電壓降(IR Drop)有關。前者是系統性的,芯片外接的電源電壓波動影響片上全部的器件,後者是局部的,微觀上體如今從電源管腳到達晶體管的IR Drop各不相同,各個區域的電流消耗不同也會致使IR Drop的差別。spa
Temperature.net
公式中的遷移率和閾值電壓直接受溫度變化的影響,芯片應用時的環境溫度是系統性的影響因素,在Signoff是要充分考慮,民用、軍用或者太空級別的應用場景對溫度變化範圍的要求也不一樣;此外,因爲片上功耗分佈的不均勻致使局部的溫度差別一樣須要考慮。設計
除了上述三個主要因素,這裏還想強調兩個點:噪聲引入的誤差和時鐘誤差
Noise
這裏所述的noise更多的是芯片應用時,從輸入管腳引入的噪聲,或者MOS管自身的襯底噪聲或者熱噪聲。特別是對於芯片中的模擬射頻電路,好比鎖相環,數模轉換,放大器等,噪聲是其電路設計時重點須要考慮的因素,有些是從結構的角度,有些是從工藝的角度。例如,利用差分信號能夠抑制共模噪聲,增長Guide Ring能夠減小外圍器件對其的噪聲干擾等等。
Clock
對於數字電路,時鐘的質量對其時序的影響很是關鍵。無論時鐘是片外輸入,仍是片上PLL生成,都不是理想時鐘,會引入不肯定性。其中,PLL一個很重要的指標就是jitter,並且每每大的SoC中一個源時鐘會分頻產生不少時鐘,分給不一樣的子系統使用,因爲時鐘經歷的路徑不同,也會對其質量產生影響,因此設計時通常會要求設置clock uncertainty,來模擬考慮時鐘頻率不肯定性的影響。

風控機制
上述的系統性誤差,通常經過不一樣的PVT Corners來控制,例如ssgnp0p72vm40c、tt0p8v85c 、ffgnp0p88v125c等等,他們分別對應不一樣的.lib庫文件,Foundary提供的Signoff Guide中通常會給出安全的Signoff Corner列表。具體關於工藝角的選擇,電壓的選擇,溫度的選擇以及RC Corner的選擇下回再展開講解。
上述的局部的誤差,通常經過OCV(On Chip Violation)機制來控制,從最先的Flat OCV,到AOCV(Advanced OCV),在到目前的POCV(Parametric OCV),一直在解放思想,釋放過約的Margin。
目前比較流行的POCV或SOCV,相比AOCV到底有多大的差異呢?這個須要根據狀況具體分析,爲了給你們更直觀的概念,下面基於某一個Post-Route的Database,分別用AOCV和POCV的方式進行STA分析,能夠得出以下圖所示的比較結果:
能夠看出,相比於AOCV來講,POCV下降了悲觀度,特別是對於Hold Timing,能節省不少面積和功耗。有些大公司還執着於用Flat OCV去Signoff,在先進工藝下的代價是很大,尤爲是在極低電壓下。
對於噪聲引入的誤差,一方面,能夠在仿真時引入噪聲源來模擬其帶來影響,另外一方面,更多的是經過成功經驗獲得最佳實踐的方式來控制風險。而對於時鐘頻率誤差,則能夠經過設置不一樣的uncertainty的方式加以控制,例如根據時鐘的源頭的不一樣,設置不一樣時鐘之間的uncertainty。
此外,爲了充分識別出工藝誤差對芯片的影響,在量產前,Foundary通常會要求把某些測試批次的Wafer故意往變慢或者變快的方向去調整工藝,看看哪種方案對其芯片的影響是最優的。這也屬於流片後管控誤差風險的一部分。

結語
和不少不如意的事情同樣,誤差既然難以免,工程師們不會選擇去無休止地抱怨她,而是去擁抱她,抱緊她,再抱緊點......
本文分享自微信公衆號 - 白山頭講IC(gray_mount)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。