理論:
漏電流隨著閾值電壓vt的增加而指數下降,如下圖所示:
我們可以通過在不同的時序路徑上使用不同閾值電壓的標準單元來降低漏電流。
低閾值電壓標準單元:速度快、洩漏功耗高;
高閾值電壓標準單元:速度慢、洩漏功耗低。
綜合和布局佈線工具可以根據功耗和時序的需求自動選擇不同閾值的標準單元。例如,在時序的關鍵路徑上採用低閾值電壓單元,而在非關鍵路徑上採用高閾值電壓標準單元。
後端物理實現:
1、在設定mcmm的時候設定至少有乙個scenario被用來優化leakage power:
set_scenario_status -leakage_power true
2、多閾值電壓庫單元由threshold_voltage_group屬性標識。給定的庫單元可能具有低閾值電壓、常規閾值電壓或高閾值電壓。
如果在我們使用的參考庫不具有threshold_voltage_group屬性,則可以使用set_attribute命令給庫裡面的cell設定這些屬性。例如,要將名稱以fast開頭的所有cell的threshold_voltage_group屬性設定為lvt(這裡只是自己定義的乙個屬性,可以不必和真實的閾值種類相匹配),可以用下面的命令:
icc2_shell> set_attribute -objects [get_lib_cells */fast*] \
-name threshold_voltage_group -value lvt
注意:在get_lib_cells命令中引用庫時,必須使用參考庫的名稱而不是邏輯庫(.db庫)的名稱。要搜尋所有庫,需要在庫名上使用星號(*)。
3、前面為庫裡面的cell指定了threshold_voltage_group屬性,但是工具並不能準確知道哪種屬性是常規閾值,哪種是高閾值,哪種是低閾值。要標識與每個threshold_voltage_group屬性值關聯的閾值電壓型別,可以使用下面的命令:
set_threshold_voltage_group_type
必須指定屬性值並使用-type選項來指定閾值電壓型別,該閾值電壓型別是low_vt(低閾值電壓),normal_vt(正常閾值電壓)或high_vt(高閾值電壓)之一。
例如,指定那些threshold_voltage_group屬性值為lvt的cell為低閾值電壓cell,可以使用以下命令:
icc2_shell> set_threshold_voltage_group_type -type low_vt lvt
兩者不用非得對應,lvt只是乙個自己打的標識或者庫裡面定義的乙個標識。在設計庫裡面沒有lvt的時候我們還可以把svt的cell標識成low_vt,也就是說兩者沒有必要一致,只是為了方便讓工具識別出這種cell在後邊限制這種cell的百分比。
注意:set_threshold_voltage_group_type命令指定的設定未儲存在block中,必須在ic compiler ii工具的每個session中指定。
4、用下面的命令指定設計中的低閾值電壓單元在設計中所佔的最大比例
set_max_lvth_percentage
5、通過設定以下閾值電壓百分比優化:
opt.power.leakage_type percentage_lvt
opt.power.mode leakage
6、做好以上設定之後工具便會在執行以下命令時做leakage power的優化:
place_opt , refine_opt , clock_opt
低功耗FPGA設計技術
對設計中給定的驅動器,動態功耗由下式計算 p cl vdd2 f cl是電容負載,vdd是電源電壓,f是開關頻率。總功耗是每個驅動器功耗之總和。在vdd固定的情況下,降低內部功耗就要降低平均邏輯開關頻率,減少每個時鐘沿處的邏輯開關總數 減少連線網路,特別是高頻訊號連線網路中的電容值。對低功率設計,需...
低功耗設計技術(下)
毛刺glitch 由組合電路中的訊號抖動導致 減少毛刺的方法 1 在合適的位置加上buffer 通過eda工具實現 2 加入觸發器同步 減少電晶體的數量就可以減少開關次數 表示式化簡,複合門,傳輸門 要考慮的功耗 平均功耗,最大功耗,待機功耗,關斷模式下的功耗,記憶體維持功耗,睡眠模式功耗 器件 電...
低功耗設計技術(上)
低功耗設計的原因 發熱,輻射,電池容量,環境,電遷移在高電流下導致的金屬短路斷路問題,熱載流子效應,ir drop,雜訊幅度 積體電路設計流程及對應的低功耗技術 系統 架構設計 軟硬體分離,架構的比較與選定,並行或流水線設計,單元模組的選定 rtl設計 門控時鐘,運算元隔離,記憶體分割 綜合 低功耗...