PPA, Performance, Power, Area 是衡量一顆芯片的基本指標,這三大指標中 Power 是最詭詐的,它不像 Performance 跟 Area 是可相對精確計算的,而 Power 在芯片回來之前都只能估算。至于為什么,老驢大致總結了幾點,請驢友補充:
leakage power, 不論是綜合還是 PostRoute, 計算 leakage 都是從某個固定 PVT library 中查表,然而實際芯片并不能確定地工作于某個固定的電壓值,一方面是供電電源無法保證完全沒有偏差,另一方面是 IR-drop 的影響;更不能保證工作溫度一定卡到某個攝氏度;工藝偏差在 timing 上有各種模型進行模擬,然而在 power 上并沒有。
internal power, 除了固定的 PVT 之外,toggle rate 也只是估算,通常工具只能從波形里讀取時序邏輯、blackbox 等的翻轉信息,至于組合邏輯的 toggle rate 大都是估算得到的。
Switch power, 除了無法精確得到 toggle rate 的信息之外,實際芯片的工作電壓跟工作時鐘頻率都會有偏差。
Glitch power, 目前大部分 power 分析工具可以估算邏輯 Glitch 引起的功耗,然而要計算邏輯 Glitch 必須要反標 net delay, 不論是 cell Delay 還是 net Delay 在估算時都只在某個固定的 PVT 跟 RC corner, 如此計算得到的值勢必跟實測值有差別。
其他,如 I/O, 如 package, 如 Analog, 其功耗模型有多精確?
先撇開 Silicon, 從綜合到 Postroute 功耗的差別有多大呢?找到一本 07 年的老書《Closing the Power GapBetween ASIC & Custom,Tools and Techniques for LowPower Design》通篇有理有據,除了工藝老了一點,其他都很好。取書中一張圖,涵蓋了綜合到 Postroute 的每一步。
先回顧一下功耗的三大部分 Leakage, Internal, Switch 都跟哪些因素有關?
Leakage Power: 跟工作電壓 VDD, 閾值電壓 Vth, 管子寬長比及輸入 pin 的狀態有關;
Internal Power: 跟 Arc/pin 上有效的 toggle rate, SDPD, 輸入 pin 的 transition 及輸出負載有關;
Switch power:跟工作電壓,工作時鐘頻率,Toggle rate 及輸出負載有關。
再看,從綜合到 PostRoute 在設計上發生了哪些變化?
純邏輯綜合:沒有線長的概念,沒有長線的 buffer, 沒有 clock tree, 沒有 hold buffer, clock 是 ideal 的,通常需要過約從而導致使用更大面積跟功耗的 cell,沒有 net 電容,沒有串擾信息;
物理綜合:工具相對精確的估算線長并做 buffering, 如果是 Ispatial ECF flow 可以 build clock tree, 沒有 hold buffer,clock 是 ideal 的,不需要過約,有 net 電容,沒有串擾信息;
P&R:真實的繞線,真實的 clock tree, 修過 hold, clock 是 propagated, 用 signoff 約束,有 net 電容,有串擾信息;
每一部分設計上的改變對功耗影響有多大,取決于設計特性跟工藝:
比如,對于 Port 多 Density 低的設計,會有許多長線,所以長線上的 buffer 會有許多;
比如,只有一個 clock 跟幾千個寄存器的設計和有幾千個 clock 跟幾十萬個寄存器的設計相比,clock tree 的結構長短區別會很大,clock tree 功耗占比自然也不同;
比如,.18 跟 5nm 相比,net 電容在整個設計中的比重完全不同,有沒有 net 電容對 5nm 而言至關重要;
比如,congestion 特別嚴重的設計,cell 會被推散,crosstalk 也可能更嚴重。
等等不一而足,所以在討論從綜合到 PostRoute 的功耗差異時,需要有明確的前提,需要根據不同類型的設計具體問題具體分析,只能在某個小范圍內歸納總結,很難找到一個通用法則。
最后再聊聊動態功耗優化,如果不考慮多電壓域,目前在實現端行之有效的動態功耗優化辦法無非是:clock gating, MB merge, 帶仿真波形。
而帶仿真波形的優化手段無非是 Resize,Reconnect, Buffering, Cell replace,而不論哪種方法都依賴于負載電容,在 40nm之后如果在優化時只看 pin 電容而看不到 net 電容,綜合后的結果跟 PostRoute 的結果有巨大差異的概率非常大,所以如果要帶著波形去做動態功耗優化,就請從物理綜合開始。
審核編輯 黃昊宇
-
GAP
+關注
關注
0文章
15瀏覽量
8318
發布評論請先 登錄
相關推薦
評論