本文轉自:自己的微信公眾號《集成電路設計及EDA教程》
推文主要內容:
- LPP: Low Power Placement
- GLPO: Gate-level power opt
低功耗技術:
- Buffer Insertion
- Cell Sizing
- Pin Swapping
- Phase Assignment
- Technology Mapping
- Factoring
有哪些低功耗策略可以應用到芯片物理布局階段從而降低芯片的功耗呢?
執行靜態功耗優化的一些設置:
1. 對於MCMM的設計而言,我們也需要在創建scenario的時候指定哪些scenario可以被用來進行靜態功耗的優化,一般選擇那些靜態功耗非常大的scenario,所用命令為:set_scenario_options -leakage_power true
2. 指定多閾值電壓約束,命令為:set_multi_vth_constraint
執行動態功耗優化的流程:執行LPP降低動態功耗的流程如下:
1. 對於MCMM的設計而言,我們首先需要在創建scenario的時候指定哪些scenario可以被用來進行動態功耗的優化,所用命令為:set_scenario_options -dynamic_power true
2. 在布局之前,讀入網表動態仿真得到的saif文件,它記錄了Cell和Net的Swithing Activity。所用命令為:read_saif。之后使能ICC中的LPP功能,這樣ICC在布局階段會自動挪動一些Cell,縮短高翻轉的Net長度,降低這些Net上的電容,從而降低與之相連的Cell的動態功耗。如果沒有saif文件的話,需要在布局之前在設計的輸入端口設置Toggle Rate並讓其往后傳遞,如果知道某些中間節點的Toggle Rate也可以設置,這樣功耗分析會更加精確。
該選項默認是關閉的,需要在布局之前開啟。
舊版的ICC中是通過下面的方式開啟的:set_power_options -low_power_placement true
Flow如下:
注意:在新版的ICC中,set_power_options命令已經被廢除;如果是新版的軟件可以用下面的命令:set_optimize_pre_cts_power_options -low_power_placement true
執行GLPO降低動態功耗的流程如下: 在布局的時候我們也可以通過門級功耗優化(Gate-level power optimization, GLPO)來優化邏輯從而降低功耗。
門級功耗優化的技術:
1. Buffer Insertion:插入Buffer以降低負載電容,並縮短輸入Transition時間,從而降低動態功耗。
2. Cell Sizing:降低High Switching Activity網絡上的電容,縮短Transition時間以降低Inernal Power。
3. 交換引腳(Pin Swapping):將高翻轉的Net連接到Cell的低電容引腳上。
4. 相位分配(Phase Assignment):進行相位翻轉來移除高翻轉的反相器
5. 工藝映射(Technology Mapping):隱藏Cell內的高翻轉網絡比如4輸入的AND門,我們可以用AND4+INV的方案實現,也能通過NAND2+NOR2的方案實現,兩種方案在Area和Delay、Energy方面的對比如下:
PPA的對比:
面積:方案(a)結構更加緊湊,因此面積更小;
速度:兩種方案都是雙級結構,方案(a)比(b)速度更快,或者至少一樣快;
能量:方案(a)內部高翻轉網絡被隱藏,因此消耗的能量更少,且效果非常明顯。
6. 代數變換分解(Algebraic Transformations Factoring):修改網絡結構,降低電容,但可能會增加活動性。
注意:可以在place_opt期間同時執行GLPO,LPP和泄漏功耗優化,也可以在place_opt之后,在psynopt期間單獨執行GLPO,可以獲得類似的結果,並可能會降低整體運行時間。
舊版ICC整體Flow如下:
在新版ICC里面,set_power_options命令被廢除,同樣通過set_scenario_options -dynamic_power true選取進行動態功耗優化的scenario,之后用place_opt -power來進行GLPO。
網易雲課堂
視頻課程
Calibredrv教程-提高流程自動化