下圖是library中一個寄存器Q pin 的internal_power table, 表中該pin 的internal power 大多都是負值。其實library 中的internal_power 不是功率,而是熱量,單位是焦耳不是瓦特
原因:
Internal power 為負值是由Liberate K 庫的建模方式決定的,Liberate K 庫的時候,對internal power 的建模有三種模式,由變量 pin_based_power 的值控制。
pin_based_power=1, Default值,monitor Vdd and Gnd, 這種建模方式,上升『熱量』跟下降『熱量』分別是上升/下降的實測『熱量』減去1/2*CVout^2, 在該模式下,上升『熱量』永遠都是正值,因為上升過程對電容進行充電,負載看到的Vout 不可能超過Vdd; 但是下降功耗可能為負,因為有時一些電流會由於耦合電容而流回電源,導致輸出節點的電壓過沖,在輸出電壓開始下降之前Vout超過Vdd, 從而下降『熱量』為負。
pin_based_power=0, monitor Vdd only, 這種建模方式,上升『熱量』是實測上升『熱量』減去負載消耗的『熱量』CVout^2, 下降『熱量』就是實測熱量。所以該模式下,上升『熱量』可能為負,但下降『熱量』永遠為正。
pin_based_power=2, also monitor current on side inputs, 這種建模方式跟第一種建模方式情況一致,只是在K 庫的時候考慮了輸入pin 的狀態。
不論哪種建模方式,雖然上升『熱量』或下降『熱量』有可能為負,但是總的『熱量』(Edyn,fall + Edyn,rise ) 肯定是正的。
補充
在K 庫時,internal power分Switching power 跟 Hidden power 兩類。
-
Switching power: 輸入翻轉會導致輸出翻轉,通常在library中對應pin 的internal power 有『related_pin』, 表是二維表,index 分別是輸入transition 跟輸出load. 也有輸出pin 的internal power 沒有『related_pin』, 此時表是一維表,index 是輸出load.
-
Hidden power: 輸入翻轉不會導致輸出翻轉,用library 中input pin 的internal power 做計算,input pin 的internal power 只跟該pin 的transition 相關,所以用transition 做index 進行查表