什麼是低功耗設計?

定義

低功耗設計是一套技術和方法,目的在降低積體電路 (IC)整體的動態和靜態功耗(static power consumption)。

Figure 1方程式中各別功率元件(power components)所示,低功耗設計的目標是盡可能降低各個功率元件,從而降低整體功耗。整個功率方程式包含動態和靜態功率。動態功率由開關功率(switching power)和短路功率(short-circuit power)組成;而靜態功率則由漏電流(leakage)或在沒有活動時流過電晶體的電流組成。每個功率元件的值與以下任一因素有關:

  • 活動
  • 頻率
  • 轉換時間
  • 電容負載
  • 電壓
  • 漏電流
  • 峰值電流

例如:當電壓越高,則每個元件消耗的功率就越大,導致整體功率越高。相反地,當電壓越低,總功率就越低。為了以最低的功耗實現最佳性能,需藉由各種低功耗技術和方法,嘗試並測試每一個不同因素的取捨。

低功耗設計的需求

電子產業相關公司不斷突破產品新特色和新功能的極限,集中在輕便、手持、以電池供電的設備中。對於這一類產品,能透過最小化功耗來延​​長電池壽命,不但可以做出具差異化的市場區隔,對於終端用戶相關應用開發也是非常關鍵。而縮短設備從休眠狀態(OFF/SLEEP state)切換到運作狀態(ON/ACTIVE state)所需的時間也同樣重要,因為終端用戶都希望能在休眠/運作切換獲得無縫體驗的同時,也能享受更長的電池壽命。

對於「插電」的產品,功耗也很重要,因為加裝散熱器、復雜的冷卻系統、增加電力成本等,都會影響整個系統的成本。例如:在使用大規模並行系統的伺服器農場(server farm)中,降低單一晶片的功率可以顯著節省功耗,因為整個系統中都使用這種晶片。使用更新、更節能的IC來升級系統,可顯著降低功耗和成本。

低功耗設計技術

有許多可行的低功耗設計技術,有一些非常容易上手,有一些則相當複雜。

時脈閘控技術(Clock Gating)

此技術通常運用在邏輯合成期間。其中的暫存器(flops)被優化成時脈閘控結構,進而節省了多工器(mux)的面積,並減少整個時脈網路(clock net)的開關活動(參見下圖Figure 2)。根據這個功率方程式,我們的目標是降低電容負載 (透過面積減少的方式)和減少動態功率的開關功率活動因子。這是一種非常簡單且易於取得的技術,可以降低功率和面積。但是,它需要依賴邏輯合成工具來執行優化。幸運的是,這個技術很普及,並且大多數工具和流程中都支援這項技術。

多電壓技術(Multi Voltage)

這是一種藉由性能特性(performance characteristics)來區分晶片功能的技術—也許其中一個模塊是高性能的,而晶片其餘部分的性能則較低,如下圖 Figure 3 所示。為了實現高性能模塊的目標,通常需要更高的電壓;而為了節省較低性能模塊的功耗,可以使用較低的電壓。這樣的方式,取代了在更高電壓下設計整個模塊,雖然比較簡單,但功耗也更高。這個功率方程式中,電壓降低,每個靜態和動態功率也會跟著降低。在多電壓設計中的個別電壓島(voltage islands)上進行設計尤為複雜。電壓島之間的電壓交叉點可能需要電壓位準偏移器(Level Shifter; LS)單元,在不同的電壓特性下執行並分析模塊。

電源閘控技術(Power Gating)

如同多電壓技術,在這個技術當中,IC上的功能也被區分開來,但這次功率區域的電源連接了電源開關,如下圖Figure 4 所示。電源閘控可以有效地完全關閉一個模塊的電源。在這個功率方程式中,將電壓歸零也會使功率歸零,進而在模塊關閉時節省靜態和動態功率。電源閘控通常可以提供最佳的節能效果,因此在維持功能的同時,能盡可能經常地關閉最多的功率區域,是最理想的目標。為了以電源閘控實現節能效果,必須在設計中加入電源開關,這需要隔離閘(isolation gates)在電源關閉時提供電源區域的邊界一個已知狀態。同時,必須考慮設計的電源狀態,以及針對給定電壓的ON/OFF狀態組合。最後,需要加入電源管理單元(PMU),進而控制電源開關和隔離單元的致能訊號(isolation enable signal) ,以確保在斷電和通電期間,這些訊號有正確的啟動順序,讓關閉期間需要被控制的變數都可以在正確的時間點有正確的值。

電源閘控時的保存狀態

狀態保存技術(或暫存器保存 (register retention) 技術),是一種與電源閘控一起使用的技術。在每個關閉的模塊中,當模塊為OFF狀態時,模塊中部分或所有的暫存器會保存它們原先的數值。當模塊通電時,之前保存的數值就會被恢復。因此,保存模塊斷電時的狀態很重要,這樣模塊就可以快速恢復原先的狀態,而不必再需要額外的時間從INIT狀態轉換到當前狀態。減少切換至保存的狀態所需的時間和步驟,既可以節省功率,也可以縮短模塊恢復至原先功能狀態所需的時間。除了電源閘控所需的技術外,元件資料庫中還必須具有可使用於RTL所需的暫存器配對的保存型暫存器(retention flops)。除了將訊號新增至電源閘控之外,還需要將SAVE/RESTORE訊號也新增至PMU的訊號控制序列中(參見Figure 5)

其他先進技術

包括前述各項技術的組合在內,目前有許多更先進的低功耗設計技術。在現今許多晶片中,經常會使用到較低電壓、帶有電源閘控的模塊,並具有絕緣、保存和平移位器。半導體well biasing、零接腳(zero-pin)保存暫存器、特殊化的低功耗元件資料庫單元、動態電壓和頻率調節(DVFS)、自適化電壓和頻率調節(AVFS),以及其他客製化的設計,也是在業界會採用的先進低功耗技術。

低功耗設計方法

假設有一個範例,系統規格已確定、也完成系統模擬和微架構設計(microarchitecture),針對特定製程,低功耗IP也已經選定,同時RTL 和 UPF 也已撰寫完成。在這些條件下的IC設計中,低功耗設計和驗證方法會有五個主要階段。

靜態功率驗證和探索

在靜態驗證中,第一個步驟是確保設計流程所需設計檔案(RTL、UPF 和 SDC)在結構和語法上(syntactically)都是正確的。根據定義,靜態驗證不需使用測試向量(test vector),因此這是在進入模擬或實作流程之前,針對輸入進行檢查最有效的方法。通常來說,Lint和CDC檢查對於確保RTL的完整性(clean)很重要。UPF檢查可以獨立完成,也可以與相應的 RTL 一起完成,確保它們的完整性,並且 SDC 也可以與 RTL 一起進行靜態檢查。在架構功率探索中,可以通過估計的開關或模擬的實際波形,來初步估算RTL 的功率。通過初步的RTL 功率分析,可以儘早做出選擇,以改進設計的整體架構。

動態功率驗證和分析

在動態功率驗證中,有幾個重要面向需要檢查。首先,檢查PMU 控制訊號的序列是否正常運作,可以關閉、限制隔離、儲存、恢復、移除隔離限制和通電(power up)。這是與設計 RTL 和 UPF 一起進行的極其重要的檢查,以確保設計可以正常運行。接著,在設計中會發現什麼類型的波形和切換活動(toggle activity)呢?這將決定所採用的動態功率,因為它取決於活動因子。活動因子越高,使用的功率就越多。因此,產生的波形對於在設計過程的初期和後期準確估算功率非常重要。

軟體驅動的功率分析

在以模擬器為基礎(emulation-based)的低功率流程中,能夠為設計的功率分佈取得正確的峰值區間(peak windows)非常重要。使用模擬器讓我們得以觀察更廣的數據範圍,進而選擇對於生成波形最有價值的時間區間,以估算功率。

功率實作

基於 RTL預測的功耗估算、邏輯合成、添加DFT電路和實體實作(physical implementation)都在低功耗中扮演重要的特定角色。以 RTL為基礎的功耗預測,使我們得以使用初始的功耗估算,在早期進行 RTL 修改。在邏輯合成中,RTL、SDC 和 UPF 都經過靜態和動態完整驗證;隔離器、位準偏移器和保存型暫存器也都使用特定製程元件庫實作。其中時序、面積和功率都是用於產生電路檔(Netlist)和相關 UPF' 的成本函數。通常在此期間,DFT 電路的添加也會同時發生。一旦Netlist和 UPF’完成,另一輪檢查也會或靜態、或動態地在這個階段完成—一旦處理好,結果就會被導入實體實作。在實體實作中,佈局規劃是對佈局和電源佈線進行宏觀考量的情況下完成的。接著,在實際上插入和放置電源開關的位置進行佈局;然後重覆執行佈局、佈線估計、邏輯優化和時脈樹(clock tree)合成,以再次針對時序、面積和功耗進行取捨。最後,進到佈線步驟,其中優先訊號(時脈、電源啟動、開關連接)的預先佈線完成,接著進行設計中其餘部分的細部佈線—這些都強調可以更精細地降低功率,同時也試圖滿足時序和面積的目標。

簽核(Signoff)

UPF一致性應該在簽核時再次進行檢查。但是,這一次使用邏輯合成中的Netlist和 UPF',以及物理實作中的 PGNetlist 和 UPF來進行,以確保對Netlist和 UPF 所做的連接和更改的一致性和完整,並保留功耗設計意圖(power intent)。針對「RTL和UPF 」、「Gate-level Netlist和UPF’」以及「PG Netlist和UPF”」所進行的邏輯等效性檢查,確保邏輯功能得以維持。最後,靜態時序分析應使用UPF進行,以確保設計符合時序;而功率分析應使用詳細的波形特性,以提供準確的功耗估算結果。

低功耗設計工具

在低功耗設計方法中,每個階段所需的低功耗設計工具如下:

  1. 靜態功率驗證和探索。靜態驗證需要 Lint 和 CDC的工具,以確保 RTL 完整性。對於 UPF,需要一個 UPF 檢查器來確保 UPF 是完整的。而針對功率勘察,則需要 RTL 功率估算工具。
  2. 動態功率驗證和分析。需要使用功率感知模擬器來驗證電源序列並生成波形。功率感知的除錯工具(debug tool)以及可以調整RTL 模擬數據並轉換為閘門模擬數據的工具也是必需的,因為這些對於節省時間,以及為功耗分析提供準確波形都至關重要。
  3. 軟體驅動的功率分析。通過模擬,可以產生以週期為基礎的功率,觀察更長的波行特性,可針對功率分析選擇正確的功率/時序視窗。
  4. 功率實作。基於 RTL 預測的功耗估算、邏輯合成、DFT 電路添加(掃描鏈添加(Scan Insertion)、記憶體自我測試單元(MBIST)、邏輯自我測試單元(Logic BIST) 等)和實體實作(平面規劃、佈局、時脈樹合成、佈線)是實現低功耗設計所必需的。
  5. 簽核。對「Gate-level Netlist和UPF’」以及「PG Netlist和UPF”」進行UPF檢查至關重要,可以確保功耗意圖的正確,並在整個流程中維持下去。具有功率感知功能的邏輯等效性檢查,對於確保在整個流程中維持邏輯功能也非常重要。靜態時序分析和功率分析工具,對於驗證時序和提供準確的功耗估算結果也同樣相當重要。

新思科技提供哪些低功耗設計解決方案?

新思科技提供已驗證的低功耗流程和方法的解決方案,涵蓋低功耗設計和驗證流程的所有面向,如Figure 6所示。

靜態功率驗證和勘察

功能驗證

軟體驅動的功率分析

  • ZeBu 提供功率感知模擬
  • ZeBu Power Analyzer 提供基於週期的功率估計,並生成可用於詳細功率分析的波形

功率實作

簽核