楊瑞瑞,唐偉文
(成都三零嘉微電子有限公司,四川 成都 610041)
應用于便攜式、手持設備、物聯網等環境的低功耗或微功耗SoC芯片,對功耗指標的要求非常嚴格。如果芯片實際功耗消耗值不能滿足能耗比指標要求,那么即使芯片功能沒有問題,但由于功耗消耗過大也將無法進行推廣應用。所以,SoC集成電路功耗控制,在低功耗芯片的設計中至關重要。
低功耗芯片設計過程中,在方案階段采用低功耗架構、RTL代碼設計時采用低功耗設計電路,在后端設計中采用低功耗的設計流程等,以保障芯片的能耗比滿足設計需求。但是,如何確定采取低功耗策略的電路是否滿足指標要求、是否可以進入下一步的設計流程是關鍵。因此,在每個階段的設計中,通過功耗評估方法驗證采用的低功耗策略是否滿足要求至關重要。
本文針對設計過程中的功耗控制,提出在三個階段進行功耗評估,分別是方案階段功耗評估、RTL代碼階段功耗評估以及流片前簽核階段的功耗評估。在每個階段進行的功耗評估方法不同,得到的準確度將不同,達到的目的也不同。表1介紹了在芯片全流程設計過程中,在不同設計階段進行的功耗評估。

圖1 低功耗芯片設計流程
方案階段進行的功耗評估,主要使用公式計算的方法。此階段評估值誤差較大,但能夠輔助確定方案設計的合理性,驗證所選擇工藝平臺的正確性,與設計結果不產生較大差異。
RTL階段的功耗評估,是在電路功能設計完成后,通過專業的功耗評估工具,加入合理的約束,通過不同應用模式激勵產生的波形,得到比較準確的邏輯門翻轉率,從而對不同應用模式的功耗進行評估。此階段的評估準確率可達70%。
后端物理版圖設計完成后簽核階段的功耗評估,是流片前的最后一次功耗評估。由于后端版圖設計完成后,用于功耗評估的門電路是芯片實際物理門電路,因此準確率可達85%~90%。評估方法是讀入后仿網表和SDF反標文件,產生不同應用模式激勵下的后仿波形,得到準確的物理門電路翻轉率,通過專業工具計算得到功耗值。下面對三個階段的功耗評估方法分別做詳細介紹。
首先要分析功耗的來源和組成部分。在一個完整的SoC設計電路中,功耗從頂層劃分主要有三部分:

其中,Pdigital是芯片中使用的模擬IP在工作時消耗的功耗,模擬部分的功耗值通過查詢模擬IP的數據手冊獲得,數據手冊會詳細介紹模擬IP工作在不同模式或者不同配置下的功耗值。Pdigital是芯片中數字標準單元部分的功耗消耗值,工作電壓為內核電壓。Ppad是芯片管腳在工作時消耗的功耗值,當芯片與外部通信時,芯片的管腳會進行翻轉產生功耗。當然,如果芯片工作的場景只有內部模塊在工作,接口不進行數據傳輸,那么Ppad只產生較小的漏電功耗。
按照理論公式計算[1-2]:

其中f是系統工作頻率;A是跳變因子,即整個電路的平均翻轉比例;C是門電路的總電容;V是供電電壓;τ是電平信號上升/下降的時間;Ileak是漏電電流;Pswitch是跳變功耗,是器件在工作過程中對電容充放電形成的;Pshortcircuit是短路功耗,是器件在工作時由電源到地形成的通路造成的;Pleakage是漏電流功耗,也叫靜態功耗,是由亞閾值電流和反向偏壓電流造成的。
假設已經選定某一工藝平臺,如果使用式(2),其中門電路的電容C以及電平信號上升/下降的時間τ,基本無法填入合適的值。因此,本文使用其他方法完成內核功耗的評估。在本階段進行功耗評估計算,需要已知芯片設計的電路門數(大部分數字IP具備繼承性,可以獲得電路的門數,文中使用的計算單位為最小二輸入與非門NAND2)、工作模式頻率以及芯片管腳在工作模式時的使用情況。查詢工藝庫里面最小二輸入與非門NAND2短路功耗表,結合工作頻率進行如下計算:

其中k1表示電路工作時的翻轉率,即由于翻轉產生短路功耗門電路的比例,根據經驗,值為1/20;N表示電路的等效門數;f表示電路的工作頻率;Pshortcircuit_nand2表示工藝庫中最小二輸入與非門NAND2的短路功耗,可以通過查工藝庫獲得;k2表示翻轉功耗與短路功耗比,根據經驗,值為(0.8~1);Pleakage_nand2表示工藝庫中最小二輸入與非門NAND2的漏電功耗,可以通過查工藝庫獲得。
以SMIC55nm LL工藝為例,門電路約90萬邏輯門,工作頻率為50 MHz。查詢工藝庫中NAND2的短路功耗為0.002 825 pW[3],漏電功耗為23.39 pW[3],代入公式得到內核工作時的功耗值:

查詢工藝庫中使用管腳庫的短路功耗表,結合工作頻率,評估芯片管腳 PAD 的工作功耗:

其中k1表示PAD工作時的翻轉率,根據經驗,值為1/20;N表示工作PAD的個數;f表示PAD工作的時鐘頻率;Pshortcircuit_pad表示工藝庫中PAD工作時產生的短路功耗,可以通過查工藝庫獲得;C為等效電容,根據經驗,值為20 pF;V為PAD工作電壓,一般為3.3 V/2.5 V;Pleakage_pad為PAD的漏電功耗,可以通過查工藝庫獲得。
以SMIC55nm LL工藝為例,4個PB8的管腳工作,工作頻率為50 MHz。查詢工藝庫中PB8的短路功耗為99.32 pW[3],漏電功耗是0.012 49 μW[3],代入公式計算得到管腳PAD工作時的功耗值:

最后,通過查詢數據手冊,獲得模擬IP工作時的功耗值,將三部分相加,獲得總的Ptotal功耗值。本階段的功耗評估通過公式計算以及引入一些經驗值,方法簡單,準確率較低,主要目的是確認低功耗芯片方案階段所使用的工藝、電路規模、以及工作頻率的合理性,為后期設計打下基礎。
代碼階段的功耗評估,是在RTL代碼設計完成后,對應用場景下功耗消耗的評估,準確率比方案階段高。如果在本階段評估數據與指標存在非常大差距,可以及時更改設計,造成較小的迭代。
使用的評估工具是Spyglass。在Spyglass工具中對代碼進行綜合,工具將RTL代碼綜合成門電路網表,然后讀入應用場景激勵下生成的VCD或者FSDB波形,對門電路進行反標,獲得門電路在應用場景下的翻轉率,讀入工藝庫進行計算,得到功耗消耗值。
使用Spyglass進行功耗評估的基本語法為[4]:

本階段的功耗評估值準確率約為70%。如果評估結果能夠滿足指標要求,設計進入下一步后端布局布線生成物理GDS版圖。
簽核階段功耗評估是最接近真實功耗消耗的數據,因為此時的門電路核線延時均是物理實際電路,得到的評估值也是最準確的。本階段功耗評估數據準確率可達85%~90%。
本階段采用PTPX工具進行功耗分析,方法是將完成后端布局布線、時序收斂后的版圖提取出后仿網表和反標SDF文件,應用后仿環境產生不同應用場景激勵下的VCD或者FSDB波形。在PTPX工具中讀入已產生的波形,對物理門電路進行映射,獲得門電路在應用場景下的真實翻轉率,讀入工藝庫進行計算,得到功耗消耗值。
下面以SMIC55nm LL工藝為例,介紹使用PTPX工具評估典型環境下功耗消耗的基本語法[5]:

通過讀入不同環境參數的工藝庫,可以計算出不同環境下的功耗結果,如表1所示。
經過工具計算不同測試環境下的功耗值,若達到預期目標,可以進行芯片流片。

表1 測試環境電壓和溫度
在低功耗SoC芯片設計過程中,通過以上三個階段的功耗評估,不僅可以保證超低功耗芯片設計的成功,而且能夠保證芯片設計流程的順暢,無需巨大的芯片設計迭代,保障了芯片流片的成功。