新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 芯片設(shè)計(jì)中的功耗估計(jì)與優(yōu)化技術(shù)

        芯片設(shè)計(jì)中的功耗估計(jì)與優(yōu)化技術(shù)

        作者: 時(shí)間:2016-09-12 來(lái)源:網(wǎng)絡(luò) 收藏

        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。

        門(mén)級(jí)

        圖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

        4 的優(yōu)化

        4.1優(yōu)化的原則

        圖3是幾個(gè)典型設(shè)計(jì)中分布數(shù)據(jù):

        功耗分布

        (數(shù)據(jù)來(lái)自“International Solid-State Circuits Conference”)

        圖3

        我們的目標(biāo)是減少時(shí)鐘樹(shù)、標(biāo)準(zhǔn)單元和存儲(chǔ)器的功耗。功耗與性能通常是充滿矛盾的:

        1)使時(shí)鐘變慢(更少的轉(zhuǎn)換),但我們想要更快的處理速度。

        2)減小Vdd,但Vdd變小會(huì)限制時(shí)鐘速度。

        3)更少的電路,但更多的晶體管可以做更多的工作。

        簡(jiǎn)言之,我們想用最少的能量完成最大量的任務(wù)。實(shí)現(xiàn)方式是對(duì)電路動(dòng)作的控制精細(xì)化,僅讓恰好需要的電路,在需要的時(shí)間內(nèi)動(dòng)作,而不浪費(fèi)分毫。完成這一任務(wù),需要設(shè)計(jì)者有效率地管理電路的動(dòng)作。

        現(xiàn)代系統(tǒng)是如此復(fù)雜,以致設(shè)計(jì)者必須切分為若干層次,分步前行才能把握:

        軟件 -> 架構(gòu) -> 邏輯 -> 電路

        每一層次中,設(shè)計(jì)者對(duì)電路動(dòng)作的控制范圍和手段都是不同的。軟件是硬件動(dòng)作的總調(diào)度師,設(shè)計(jì)者可以根據(jù)特定應(yīng)用,關(guān)掉整個(gè)模塊或減少無(wú)效的動(dòng)作。進(jìn)入架構(gòu)層,視角轉(zhuǎn)為怎樣將設(shè)定任務(wù)合理分配到各個(gè)模塊,協(xié)調(diào)動(dòng)作最有效率,如pipeline、分布式計(jì)算、并行計(jì)算等。在邏輯層,則考慮怎樣實(shí)現(xiàn)一步動(dòng)作僅使需要的電路動(dòng)作。電路層的視角更為精細(xì),通過(guò)調(diào)節(jié)平衡信號(hào)到達(dá)時(shí)間,驅(qū)動(dòng)單元大小等手段,使電路的動(dòng)作耗能最小。這里存在一個(gè)重要規(guī)律,稱作效率遞減率:

        在高的抽象層次減少功耗的效率會(huì)比低的層次更高。

        所以,降低功耗是一個(gè)系統(tǒng)工程,需要軟件、硬件、電路、工藝等人員的共同努力。這里,我們將采用架構(gòu)與邏輯的視角進(jìn)行下面的討論。

        4.2 架構(gòu)考慮

        1)切分工作模式,硬件要可以提供一個(gè)接口,以使軟件可以控制電路模塊的動(dòng)作與否。不工作的模塊掛起。

        2)分布式計(jì)算:將整個(gè)任務(wù)切分到不同模塊,在內(nèi)部處理高活動(dòng)性信號(hào)。

        雖然總計(jì)算量沒(méi)有改變,但對(duì)單個(gè)模塊,時(shí)間要求降低,可以降頻或降壓。

        3)并行計(jì)算:相同時(shí)間內(nèi)計(jì)算量相同,但可降頻/壓。

        (計(jì)算量=開(kāi)關(guān)的次數(shù),開(kāi)關(guān)次數(shù)沒(méi)變,但每次開(kāi)關(guān)的功耗成本降了)

        4)pipeline

        每步的計(jì)算量減少,可以在性能相同的情況下,降低工作頻率。

        5)可編程性與hard-wire的權(quán)衡

        可編程性越強(qiáng),完成相同的任務(wù)耗電越多。

        門(mén)級(jí)

        (見(jiàn)參考文獻(xiàn)[7])

        圖4

        4.3 RAM的功耗優(yōu)化

        很明顯,大的RAM比小的RAM耗電要多,將整塊的RAM分成小塊可以降低存取功耗。

        圖5

        值得注意的一點(diǎn)是,多數(shù)設(shè)計(jì)者認(rèn)為片選信號(hào)無(wú)效,RAM即進(jìn)入最小功耗。實(shí)際上,若此時(shí)其數(shù)據(jù)/地址端口信號(hào)有翻轉(zhuǎn),會(huì)耗費(fèi)相當(dāng)?shù)碾娏?約占激活功耗的20%)。在不存取時(shí),最佳的方式是,保持片選無(wú)效,地址、數(shù)據(jù)是恒定值。

        4.4時(shí)鐘樹(shù)單元/連線

        4.4.1 時(shí)鐘門(mén)控的原理

        在典型的數(shù)字芯片中,時(shí)鐘網(wǎng)絡(luò)的功耗可以占到總量的50%,這是一個(gè)龐大的數(shù)字。一個(gè)行之有效的方案是使用時(shí)鐘門(mén)控,將當(dāng)前未工作邏輯的時(shí)鐘樹(shù)關(guān)閉。比如下面的邏輯,在EN是0時(shí),可以將右側(cè)的register bank的時(shí)鐘關(guān)閉。

        功耗

        圖6

        時(shí)鐘門(mén)控邏輯加入的方式有兩種:手動(dòng)和自動(dòng)。

        a) 手動(dòng)方式

        在每個(gè)IP模塊的時(shí)鐘根節(jié)點(diǎn)加入,EN信號(hào)可以由程序設(shè)定產(chǎn)生。

        b) 自動(dòng)方式

        dc_shell > set_clock_gating_style (options) 選擇時(shí)鐘門(mén)控的方式和條件

        dc_shell > analyze -f design.v 讀入設(shè)計(jì)

        dc_shell > elaborate MY_DESIGN 構(gòu)造設(shè)計(jì)

        dc_shell > insert_clock_gating 將符合條件的邏輯門(mén)控

        dc_shell > create_clock -period 10 -name CLK 創(chuàng)建時(shí)鐘

        dc_shell > propagate_constraints -gate_clock 加入時(shí)鐘門(mén)控單元的時(shí)序約束

        手動(dòng)和自動(dòng)結(jié)合的方式可以達(dá)到最好的效率。

        4.4.2 gating 單元的選擇

        a)latch-based(圖7)

        門(mén)級(jí)

        圖7

        b)latch-free(圖8)

        luoji

        關(guān)鍵詞: 功耗 IC設(shè)計(jì)

        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 行唐县| 太白县| 云安县| 岳普湖县| 定襄县| 龙门县| 白山市| 乐至县| 平定县| 高青县| 平舆县| 越西县| 梅河口市| 峨眉山市| 湘阴县| 潼南县| 年辖:市辖区| 平利县| 凤凰县| 金坛市| 无极县| 岗巴县| 汝城县| 宜城市| 栾城县| 酒泉市| 来凤县| 门头沟区| 皮山县| 绩溪县| 弥渡县| 张北县| 鹤壁市| 镇安县| 崇礼县| 北宁市| 响水县| 蚌埠市| 普定县| 察雅县| 罗定市|