3 功耗估算
功耗估算的價(jià)值是盡可能早地以定量方式看到優(yōu)化結(jié)果,以助于設(shè)計(jì)者的初期架構(gòu)探索。在每個(gè)階段, 如產(chǎn)品規(guī)劃、架構(gòu)制訂、代碼書(shū)寫(xiě)、綜合、P&R等,設(shè)計(jì)者都面臨若干選擇,能馬上看到選擇的結(jié)果,而不是到設(shè)計(jì)流程的末尾,可以有效減少開(kāi)發(fā)時(shí)間。
3.1估算的方法
功耗的估算可以在設(shè)計(jì)流程的各個(gè)階段進(jìn)行,對(duì)應(yīng)設(shè)計(jì)表征的不同形式。
software level ->behavior level -> RT -> gate -> circuit
越早的階段,抽象層次越高,其精確度越差,但可以更早給設(shè)計(jì)者反饋,同時(shí)得到估算結(jié)果消耗的時(shí)間越少。
1. 軟件級(jí)
首先,定義系統(tǒng)將執(zhí)行的典型程序。典型的程序通常會(huì)有上百萬(wàn)的機(jī)器周期,進(jìn)行一次完整的RTL級(jí)的仿真可能需要數(shù)月時(shí)間,這是不可接受的。解決的方法是在更高層次建立基本組成單元的功耗模型。
比較實(shí)用的方法是根據(jù)特定的硬件平臺(tái),統(tǒng)計(jì)出每條指令對(duì)應(yīng)的功耗數(shù)據(jù),進(jìn)行指令級(jí)的仿真。
2. 行為級(jí)
在進(jìn)行分析前,我們首先應(yīng)了解電路的功率消耗原理,實(shí)際電路的電力消耗如圖1所示。
圖1
Prms = 1/2 * f * Vdd^2 * sigma(Ci * Ai)
--- f : clock frequency
--- Vdd : voltage
--- Ci is capacitance load of node,
--- Ai is the average switching activity of their node
在行為級(jí)設(shè)計(jì)表征中,物理電路單元尚未建立,難點(diǎn)是得到電容與活動(dòng)率的值。存在兩種思路:
1) 理論估計(jì):
根據(jù)電路復(fù)雜度得到C,復(fù)雜度由算術(shù),邏輯操作的數(shù)量,狀態(tài)的數(shù)目與轉(zhuǎn)換率衡量。
complex = f (arith ope, boolean ope, state, transition)
可以根據(jù)信息理論估算活動(dòng)率。
2) 實(shí)驗(yàn)估計(jì):
由快速綜合得到寄存器傳輸級(jí)的原型,進(jìn)而估計(jì)電容與活動(dòng)率。
3. 寄存器傳輸級(jí)
第一步是在庫(kù)中為高層的設(shè)計(jì)組件建立功耗信息算式,得到方式是在不同環(huán)境變量組合下通過(guò)仿真,統(tǒng)計(jì)功耗數(shù)據(jù),繪制成曲線形式。然后,通過(guò)靜態(tài)分析電路結(jié)構(gòu)或動(dòng)態(tài)仿真,收集電路動(dòng)作幾率數(shù)據(jù),代入上述算式,得到各個(gè)組件的功耗值。最后,把所有組件的功耗值求和,得到總功耗。
4. 門(mén)級(jí)
與寄存器傳輸級(jí)的區(qū)別在于,基本單元是工藝庫(kù)中的標(biāo)準(zhǔn)單元,功耗方程通過(guò)電路仿真得到,所以更精確。
5. 晶體管與版圖層
所有的連線的電容、單元的負(fù)載,驅(qū)動(dòng)都已得到,根據(jù)晶體管和連線模型的電壓、電流方程,可以算出精確的功耗數(shù)據(jù)。
3.2估算的流程
因?yàn)橹噶钆c行為級(jí)估算的精確度太差,電路級(jí)估算的耗時(shí)過(guò)多,所以在業(yè)界的實(shí)踐中采用較少。RTL與gate級(jí)估算是常用的選擇。實(shí)際功耗分析的執(zhí)行必須借助工具的輔助,目前業(yè)界通常的選擇是在RTL級(jí)采用power compiler,在門(mén)級(jí)采用primepower。
圖2
下面以power compiler為例,說(shuō)明門(mén)級(jí)估算的步驟。
在dc compile前,設(shè)置下面的變量:
power_preserve_rtl_hier_names = false/true
編譯
寫(xiě)出ddc文件
仿真生成vcd 文件
vcd2saif轉(zhuǎn)化為.saif文件 (注意vcd2saif由csh調(diào)用,而不是在dc_shell界面調(diào)用)
讀入ddc網(wǎng)表
read_saif
report_power
評(píng)論