
新聞中心 NEWS CENTER
利用庫中信息手算功耗
利用庫中信息手算功耗
2010年8月12日
比較兩種電路的功耗,一種常用的做法是STA跑出sdf文件,vcs跑出后仿波形,再分別用primepower工具進行功耗分析。對于簡單的門級電路,這樣的流程顯得復雜低效,這時手算功耗可能會更加有用。
手算功耗方法
1. internal power。對于每個pin,根據跳變的transition time在庫文件中找到每次跳變消耗的能量。對于輸出pin,還要求有其output_load 。同時計算其跳變次數,累加得到跳變消耗的短路能量。
2. switch power。對于每個輸入pin,計算其跳變次數,每次跳變消耗能量為:C×V×V,C = fanout_load ×C_wire_load + Cpin
其中: |
fanout_load為該pin的等效輸入fanout |
C_wire_load為線負載模型電容系數 |
Cpin為該pin的輸入電容 |
3. 前兩者的能量累加除以總時間即為動態功耗;除以transition time則可估算峰值功耗。
4. leakage功耗等于每個cell的leakage功耗累加,需要注意的是cell的輸入輸出不同,leakage功耗也會略有差別。
手算功耗示例
下面是一個常見電路的例子:
假設En與輸入保持不變 ClkSrc頻率為1MHz。
5. Internal power
電平跳變的點只有Reg的CP端,查lib文件知一個周期CP端消耗的internal能量為0.015+0.022pJ 。(這里會因為沒有準確的transition time而有很小的誤差)。因此,internal功耗為0.037pJ/1uS = 37nW 。
6. Switch power
同樣電平跳變的點只有Reg的CP端,CP端電容為0.002594pf,fanout為1,對應線負載電容為0.0061pf 。庫電壓為0.9V 。因此switch能量為(0.002594+0.0061 )×0.9 ×0.9 = 0.007pJ,除以周期功率為7nW 。
注意:switch power只在管腳的上跳沿計算,持續時間也為transition time 。
7. 峰值功耗
本電路transition time約為0.6ns,因此下跳沿峰值功耗為 0.022pJ/0.6ns = 36.8uW 。上跳沿的峰值功耗為(0.015+0.007 )/0.6ns = 36.8uW 。
8. Leakage power
MUX器件的leakage加上Reg的leakage:0.03738+0.09871 = 0.136nW 。
與PrimePower結果對比
序號 | 分類 | 總功耗 | internal | switch | 上跳沿 | 下跳沿 | 泄漏功耗 |
1 | pp工具 | 37.66 | 37.51 | 0 | 25.2 | 37.3 | 0.1477 |
2 | 手算結果 | 44 | 37 | 7.042 | 36.8 | 36.8 | 0.136 |
計算結果與PP跑出來結果基本相同,除了兩處區別:
1、結果中沒有包含輸入port的switch power。因此導致總功耗、switch功耗、上跳沿功耗均比手算結果小了 7nW 。這是因為此switch行為源自前級輸入,對工具理解該switch功耗實際為前級消耗,故沒有算在此電路中,報的total power也不會包含此處功耗。如果需要評估此類功耗,可以用report_power ‐input_net來單獨報出。
結果如上,可見7.042nW與估算的7nW也十分接近。
2、泄漏功耗略有區別,這是因為估算時沒有考慮MUX和Reg的輸入輸出狀態。