CMOS管功耗 = 動態功耗 + 靜態功耗
動態功耗有兩種表述,兩種表述的區別之處在於:把對管子內部電容充放電消耗的功耗歸於誰,第一種表述常見於理論分析,第二種表述常見於EDA工具功耗計算。
第一種表示:
-
動態功耗 = 開關功耗 + 短路功耗
開關功耗:指管子在翻轉過程中對『相關電容』進行充放電消耗的功耗,此處『相關電容』包含管子內部結點電容和負載電容。
短路功耗:指管子在翻轉過程中,PMOS和NMOS同時導通,從電源VDD到地VSS之間短路通路消耗的功耗。
第二種表示:
動態功耗 = 負載功耗 + 內部功耗
負載功耗:指管子在翻轉過程中對『負載電容』進行充放電消耗的功耗。
內部功耗:指管子在翻轉過程中,對內部結點電容進行充放電消耗的功耗及短路電流消耗的功耗。
EDA工具計算動態功耗時,會分別計算內部功耗和負載功耗。
-
內部功耗:當前方法學將內部功耗模擬成輸入transition跟輸出負載 (load capacitance) 的函數,foundry會將每個管子的內部功耗定義在library中,常見的是二維表格,index是(input transition, output load cap),偶爾也有三維表格,index是(input transition, output load cap, second output load cap)。
在library中會分別定義cell的rise_power 和fall_power。通常,在90nm之后對每個cell 會根據每個輸入pin的狀態和每條timing arc分別定義內部功耗,即所謂的:path dependencies internal power。庫一定的情況下,每個EDA工具的計算公式應該大差不差,此處以Genus的計算公式為例:
-
TR 指一個arc 或pin上有效的toggle rate. arcij 的有效toggle rate取決於該arc被激活的概率 (probability) 和對應輸入pin 的toggle rate。
-
Φ 是從library中查表得到的internal power值。
-
Si 是致輸出發生翻轉的輸入pin的transition。
-
Cj是輸出pin的負載電容。
例:以2輸入的與門為例,上述library片段中定義了A1 pin到Z pin的內部功耗,假設A1的transition是18ps, Z的load是0.336pf, A1的total rate 是0.5, probability是1,因為在library中transition index沒有18ps,需要在12和24ps之間做插值,則該與門的內部功耗為:
toggle_rateA1 × probabilityA1 → Z × ΦA1 → Z(0.0018, 0.336)
=0.5 × rise_power(0.0018, 0.336 ) + 0.5 × fall_power(0.0018, 0.336 )
= 0.5 × 0.0061 + 0.5 × 0.0059
負載功耗:此處的負載包括這個cell 驅動的所有net 和所有sink cell輸入pin的電容,其計算公式為:
-
CL 是負載電容 = sum(capacitances of the net, input pins driven by the net). 在genus里可以通過attribute pin_capacitance 和 wire_capacitance 得到對應的值。
-
V 是工作電壓。
-
TR 是toggle rate.
3.單元功耗