<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

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

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

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

3.2估算的流程

因為指令與行為級估算的精確度太差,電路級估算的耗時(shí)過(guò)多,所以在業(yè)界的實(shí)踐中采用較少。RTL與gate級估算是常用的選擇。實(shí)際分析的執行必須借助工具的輔助,目前業(yè)界通常的選擇是在RTL級采用power compiler,在門(mén)級采用primepower。

門(mén)級

圖2

下面以power compiler為例,說(shuō)明門(mén)級估算的步驟。

在dc compile前,設置下面的變量:

power_preserve_rtl_hier_names = false/true

編譯

寫(xiě)出ddc文件

仿真生成vcd 文件

vcd2saif轉化為.saif文件 (注意vcd2saif由csh調用,而不是在dc_shell界面調用)

讀入ddc網(wǎng)表

read_saif

report_power

4 的優(yōu)化

4.1優(yōu)化的原則

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

功耗分布

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

圖3

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

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

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

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

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

現代系統是如此復雜,以致設計者必須切分為若干層次,分步前行才能把握:

軟件 -> 架構 -> 邏輯 -> 電路

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

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

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

4.2 架構考慮

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

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

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

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

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

4)pipeline

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

5)可編程性與hard-wire的權衡

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

門(mén)級

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

圖4

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

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

圖5

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

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

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

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

功耗

圖6

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

a) 手動(dòng)方式

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

b) 自動(dòng)方式

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

dc_shell > analyze -f design.v 讀入設計

dc_shell > elaborate MY_DESIGN 構造設計

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)結合的方式可以達到最好的效率。

4.4.2 gating 單元的選擇

a)latch-based(圖7)

門(mén)級

圖7

b)latch-free(圖8)

luoji

關(guān)鍵詞: 功耗 IC設計

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>