(1)門級電路的功耗優(yōu)化綜述
門級電路的功耗優(yōu)化(Gate Level Power Optimization,簡稱GLPO)是從已經(jīng)映射的門級網(wǎng)表開始,對設計進行功耗的優(yōu)化以滿足功耗的約束,同時設計保持其性能,即滿足設計規(guī)則和時序的要求。功耗優(yōu)化前的設計是已經(jīng)映射到工藝庫的電路,如下圖所示:
門級電路的功耗優(yōu)化包括了設計總功耗,動態(tài)功耗以及漏電功耗的優(yōu)化。對設計做優(yōu)化時,優(yōu)化的優(yōu)先次序如下:
由此我們可以找到, 優(yōu)化時,所產(chǎn)生的電路首先要滿足設計規(guī)則的要求,然后滿足延遲(時序)約束的要求,在滿足時序性能要求的基礎上,進行總功耗的優(yōu)化,再進行動態(tài)功耗的優(yōu)化和漏電功耗的優(yōu)化,最后對面積進行優(yōu)化。
優(yōu)化時先滿足更高級優(yōu)先權(quán)的約束。進行低級優(yōu)先權(quán)約束的優(yōu)化不能以犧牲更高優(yōu)先權(quán)的約束為代價。功耗的優(yōu)化不能降低設計的時序。為了有效地進行功耗優(yōu)化,需要設計中有正的時間冗余(timing slacks)。功耗的減少以時序路徑的正時間冗余作為交換,即功耗優(yōu)化時會減少時序路徑上的正的時間冗余。因此,設計中正的時間冗余越多,就越有潛力降低功耗。
通過上面的描述,對門級功耗優(yōu)化有了一下了解之后,這里先介紹一下靜態(tài)功耗優(yōu)化的方法——多閾值電壓設計,然后介紹基于EDA工具的動態(tài)功耗的優(yōu)化,接著介紹總體功耗的優(yōu)化;在最后介紹一種常用的門級低功耗的方法——電源門控。電源門控我放在明天發(fā)表,今天的內(nèi)容主要就是圍繞靜態(tài)、動態(tài)、總功耗來寫。
(2)多閾值電壓設計
①多閾值電壓設計原理
由于半導體工藝越來越先進,半導體器件的幾何尺寸越來越小,器件中的晶體管(門)數(shù)越來越多,器件的供電電壓越來越低,單元門的閾值電壓越來越低。由于單位面積中的單元門越來越多,功耗密度高,器件的功耗大。因此,設計時,我們要對功耗進行優(yōu)化和管理。在90nm或以下的工藝,靜態(tài)功耗要占整個設計功耗的20%以上。因此,使用超深亞微米工藝時,除了要降低動態(tài)功耗,還要降低靜態(tài)功耗。在超深亞微米工藝,單元門的閾值電壓和漏電功耗(靜態(tài)功耗)有如下圖所示的關(guān)系:
由圖可見,閾值電壓Vt以指數(shù)關(guān)系影響著漏電功耗。閾值電壓Vt與漏電功耗和單元門延遲有如下關(guān)系:
閾值電壓Vt越高的單元,它的漏電功耗越低,但門延遲越長,也就是速度慢;
閾值電壓Vt越低的單元,它的漏電功耗越高,但門延遲越短,也就是速度快。
我們可以利用多閾值電壓工藝庫的這種特點,進行漏電功耗的優(yōu)化,設計靜態(tài)功耗低性能高的電路。
一般的設計中,一個時序路徑組((timing path group)有多條時序路徑,延遲最大的路徑稱為關(guān)鍵路徑。根據(jù)多閾值電壓單元的特點,為了滿足時序的要求,關(guān)鍵路徑中使用低閾值電壓的單元(low Vt cells),以減少單元門的延遲,改善路徑的時序。而為了減少靜態(tài)功耗,在非關(guān)鍵路徑中使用高閾值電壓的單元(high Vt cells),以降低靜態(tài)功耗。因此,使用多閾值電壓的工藝庫,我們可以設計出低靜態(tài)功耗和高性能的設計。上面的描述如下圖所示:
②門級網(wǎng)表/RTL代碼的多閾值電壓設計
多閾值電壓設計可以在門級網(wǎng)表或者RTL代碼的時候就進行,也可以在后面布線后進行。門級網(wǎng)表/RTL代碼的多閾值電壓設計(或者說是靜態(tài)功耗優(yōu)化)流程如下所示:
一個對應的示例腳本如下所示:
set target_library "hvt.db svt.db lvt.db"
······
current_design top
source myconstraint.tcl
······
set_max_leakage -power 0mw
compile
······
與以前的腳本不同,設置target_library時,我們用了多個庫。上列中,目標庫設置為 "hvt.db svt.db lvt.db"腳本中使用set_max_leakage_power命令為電路設置靜態(tài)功耗的約束。在運行compile命令時,Power Compiler將根據(jù)時序和靜態(tài)功耗的約束,在目標庫選擇合適的單元,在滿足時序約束的前提下,盡量使用Svt或Hvt單元,使優(yōu)化出的設計性能高,靜態(tài)功耗低。
PS:如果在Physical Compiler工具(現(xiàn)在我們使用DC的拓撲模式)里做漏電功耗優(yōu)化時,我們可以保留一點正的時間冗余(positive slack),使電路不會在極限的時序下工作.這些時間冗余量也可被后面其他的優(yōu)化算法所使用。設置時間冗余的命令如下:
set physopt_power_critical_range 時間量
③布線后的多閾值電壓設計
上面是門級網(wǎng)表/RTL代碼的多閾值電壓設計,下面簡單介紹布線后的多閾值電壓設計,流程如下圖所示:
相應的一個示例腳本如下所示:
set target_library "hvt.db svt.db lvt.db"
read_verilog routed_design.v
current_design top
source top.sdc
······
set_max_leakage -power 0mw
physopt-preserve_footprint -only_power_recovery -post_route-incremental
physopt命令中使用了“-poat_route”的選項,特別用于進行布線后的漏電功耗的優(yōu)化。優(yōu)化時,單元的外形名稱(footprint)保留下來,原有的布線保持不變。
④多閾值電壓設計與多閾值庫的報告
進行漏電功耗的優(yōu)化時,Power Compile將報告如下的漏電優(yōu)化的信息:
LEAKAGE POWER的列(Column)展出了內(nèi)部優(yōu)化的漏電成本值。它和報告出來的漏電功耗可能不一樣。我們用“report_power”命令得到功耗的準確的報告。
我們現(xiàn)在來看一下多閾值庫。多閾值庫定義了兩個屬性,一個為庫屬性:default_threshold_voltage_group,另一個為單獨庫單元的屬性:threshold_voltage_group。然后報告多閾值電壓組的命令是:report_threshold_voltage_group.我們可以使用多閾值庫的這兩個屬性,報告出設計中使用多域值庫單元的比例,一個示例的腳本如下所示:
set_attr -type stringlvt.db:slowdefault_threshold_voltage_group LVt
set_attr -type string svt.db:slow default_threshold_voltage_group SVt
set_attr -type string hvt.db:slowdefault_threshold_voltage-group HVt
report_threshold_voltage_group
報告得到的結(jié)果如下所示:
(3)基于EDA工具的動態(tài)功耗優(yōu)化
前面介紹了靜態(tài)功耗的優(yōu)化,下面介紹動態(tài)功耗的優(yōu)化。動態(tài)功耗優(yōu)化通常在做完時序優(yōu)化后進行。動態(tài)功耗優(yōu)化時,需要提供電路的開關(guān)行為,工具根據(jù)每個節(jié)點的翻轉(zhuǎn)率,來優(yōu)化整個電路的動態(tài)功耗。用compile/physopt命令可以同時對時序和功耗做優(yōu)化。設置動態(tài)功耗的命令為:
set_max_dynamic_power xxmw.(一般設置為0)
動態(tài)功耗優(yōu)化的流程如下所示:
一個對應的示例腳本如下所示:
read_verilog top.v
source constraints.tcl
set target_library "tech.db"
compile
read_saif
set_ max_dynamic_power 0 mw
compile -inc
動態(tài)功耗的優(yōu)化的實現(xiàn)如上面所示。優(yōu)化過程用了很多技術(shù)比如插入緩沖器、相位分配之類的。由于這些都是power compiler在背后自動實現(xiàn)(或者說是進行低功耗優(yōu)化時工具使用的原理),不需要我們進行設置,因此這里不進行介紹。
(4)總體功耗優(yōu)化
前面分別介紹了靜態(tài)功耗和動態(tài)功耗的優(yōu)化方法。我們可以把它們結(jié)合在一起,進行整個設計總功耗的優(yōu)化。總功耗是動態(tài)功耗和靜態(tài)功耗的和,總功耗的優(yōu)先級比動態(tài)功耗和靜態(tài)功耗高??偣膬?yōu)化時,工具盡量減少動態(tài)功耗和靜態(tài)功耗的和。優(yōu)化時如果減少了漏電功耗增加了動態(tài)功耗,但它們的和減少了,優(yōu)化是有效的。反之亦然。我們可以通過設置開關(guān),使動態(tài)功耗優(yōu)化和靜態(tài)功耗優(yōu)化用不同的努力級別(effort levels)和權(quán)重(weights)進行優(yōu)化。
總功耗的優(yōu)化流程如下圖所示:
一個對應的示例腳本如下所示:
read_verilog top.v
source constraints.tcl
set target_library "hvt.db svt.db lvt.db"
······
compile
read_saif
set_max_total_power 0 mw -leakage_weight 30
compile -inc
······
腳本中,target_library設置為多閾值電壓的庫,用于做靜態(tài)功耗的優(yōu)化。讀入含有開關(guān)行為的saif文件,用于約束動態(tài)功耗的優(yōu)化。在設置總功耗的約束時,我們可以在set_max_total_power命令中使用靜態(tài)或/和動態(tài)功耗權(quán)重(weight)的選項,使工具在優(yōu)化時,偏重于靜態(tài)或動態(tài)功耗。假設P、Pd和Pl分別為總功耗、動態(tài)功耗和靜態(tài)功耗,Wd和Wl分別為動態(tài)功耗和靜態(tài)功耗的權(quán)重,則
總功耗P = (Wd*Pd+Wl*P1)/Wd
我們可以在DC或PC中設定只對功耗做優(yōu)化。這時候,工具僅優(yōu)化設計的功耗,而不會對更高優(yōu)先級的約束做任何的優(yōu)化和修正設計規(guī)則DRC違例。但是這種優(yōu)化也不會使設計的更高優(yōu)先級約束的性能變差和引起DRC違例。這種優(yōu)化的優(yōu)點在于運行時間較短,可用于優(yōu)化設計的動態(tài)功耗、靜態(tài)功耗和總功耗。在DC和PC中,只能以增量編輯的形式工作。
PC中只對功耗做優(yōu)化的命令如下:
set_max_total -power 0 mw
physopt -only_power_recovery
DC中只對功耗做優(yōu)化的命令如下(由于現(xiàn)在PC在DC中,因此下面的腳本更常用):
set compile_power_opto_only true
set_max_leakage_power 0 mw
compile -inc
-
晶體管
+關(guān)注
關(guān)注
77文章
10020瀏覽量
141689 -
電壓設計
+關(guān)注
關(guān)注
0文章
4瀏覽量
5851 -
門級電路
+關(guān)注
關(guān)注
0文章
15瀏覽量
2063
發(fā)布評論請先 登錄
低功耗藍牙智能門鎖應用
電機溫度監(jiān)測系統(tǒng)低功耗無線節(jié)點模塊設計
RISC-V核低功耗MCU動態(tài)時鐘門控技術(shù)解析
蜂窩物聯(lián)網(wǎng)的超低功耗特性
英諾達推出RTL功耗優(yōu)化工具
PHY6235—藍牙低功耗和專有2.4G應用的系統(tǒng)級芯片(SoC)
低功耗處理器的優(yōu)勢分析
stm32低功耗設計技巧
PHY6235—藍牙低功耗和專有2.4G應用的系統(tǒng)級芯片(SoC)
ARM開發(fā)板的功耗分析與優(yōu)化
低功耗SOC芯片的優(yōu)勢
UWB模塊的功耗分析
國產(chǎn)網(wǎng)表級功耗分析EDA大幅提升精度與性能

xWRL6432低功耗雷達-功耗優(yōu)化技術(shù)

優(yōu)化低功耗測量的技巧和竅門

評論