采用FPGA的低功耗系統(tǒng)設(shè)計(jì)
結(jié)合采用低功耗元件和低功耗設(shè)計(jì)技術(shù)在目前比以往任何時(shí)候都更有價(jià)值。隨著元件集成更多功能,并越來(lái)越小型化,對(duì)低功耗的要求持續(xù)增長(zhǎng)。當(dāng)把可編程邏輯器件用于低功耗應(yīng)用時(shí),限制設(shè)計(jì)的低功耗非常重要。本文將討論減小動(dòng)態(tài)和靜態(tài)功耗的各種方法,并且給出一些例子說(shuō)明如何使功耗最小化。
功耗的三個(gè)主要來(lái)源是啟動(dòng)、待機(jī)和動(dòng)態(tài)功耗。器件上電時(shí)產(chǎn)生的相關(guān)電流即是啟動(dòng)電流;待機(jī)功耗又稱作靜態(tài)功耗,是電源開(kāi)啟但I/O上沒(méi)有開(kāi)關(guān)活動(dòng)時(shí)器件的功耗;動(dòng)態(tài)功耗是指器件正常工作時(shí)的功耗。
啟動(dòng)電流因器件而異。例如,基于SRAM的FPGA具有高啟動(dòng)電流,因?yàn)檫@類器件剛上電時(shí)是沒(méi)有配置的,而需要從外部存儲(chǔ)芯片下載數(shù)據(jù)來(lái)配置它們的可編程資源,如路由連接和查找表。相反地,反熔絲FPGA不需要上電配置,因而沒(méi)有高啟動(dòng)電流。
像啟動(dòng)電流一樣,待機(jī)功耗主要依賴于器件的電子特性。由于SRAM FPGA互連中SRAM單元的數(shù)量相當(dāng)大,它們甚至在待機(jī)時(shí)也要消耗數(shù)百毫安電流。反熔絲FPGA具有金屬到金屬互連,不需要額外的晶體管來(lái)保持互連,因而也就不會(huì)產(chǎn)生額外的功耗。但是,對(duì)上述兩種FPGA類型來(lái)說(shuō),漏電流將隨工藝幾何尺寸的縮小而增加,這加劇了功耗問(wèn)題。
另一個(gè)難題是動(dòng)態(tài)功耗,其動(dòng)輒比待機(jī)功耗大好幾倍。動(dòng)態(tài)功耗與FPGA內(nèi)部單元(如寄存器和組合邏輯)寄生電容的充電和放電頻率成比例,因而通常要針對(duì)設(shè)計(jì)進(jìn)行優(yōu)化。
下面將介紹FPGA設(shè)計(jì)中常用的一些可以降低功耗的技術(shù):
采用FQGA的低功耗系統(tǒng)設(shè)計(jì)技術(shù)
1. 狀態(tài)機(jī)編碼。大量的邏輯資源是由實(shí)現(xiàn)的有限狀態(tài)機(jī)的類型來(lái)定義的。One-hlt狀態(tài)機(jī)編碼創(chuàng)建每個(gè)狀態(tài)的一個(gè)觸發(fā)器的狀態(tài)機(jī),與Gray和二進(jìn)制狀態(tài)機(jī),較少利用one-hot狀態(tài)機(jī)可以獲得功效更好的設(shè)計(jì)。一些綜合器軟件能自動(dòng)對(duì)狀態(tài)機(jī)進(jìn)行編碼,但最有效的方法是直接在HDL代碼中定義狀態(tài)值。
2. 保護(hù)賦值。賦值保護(hù)的關(guān)鍵在于:若最終的輸出不需要更新,則阻止輸入信號(hào)向下傳播到其它邏輯塊。對(duì)輸入信號(hào)的賦值保護(hù)可確保僅在適當(dāng)時(shí)改變輸出值,從而將不必要的輸出開(kāi)關(guān)減至最少。
在大型組合邏輯(例如寬總線復(fù)用器)的輸入端加鎖存器,這能抑制無(wú)效的開(kāi)關(guān)活動(dòng),因?yàn)閮H當(dāng)輸出需要更新時(shí)輸入才被鎖好。類似地,可利用控制寄存器來(lái)打開(kāi)或關(guān)閉低級(jí)別的模塊(如子模塊中的狀態(tài)機(jī))。使大總線和子模塊保持在一個(gè)恒定狀態(tài)有助于減少不相關(guān)輸出開(kāi)關(guān)的數(shù)量。
3.組合環(huán)。在不注意的時(shí)候,設(shè)計(jì)師偶爾可能在FPGA設(shè)計(jì)中創(chuàng)建了組合環(huán)。當(dāng)一組相關(guān)的組合邏輯在特定的條件下不斷振蕩時(shí),就會(huì)形成這些組合環(huán)。振蕩器將消耗FPGA中的許多電流。因此,最好是評(píng)估振蕩器,或確保在重新評(píng)估之前任何反饋邏輯都由一個(gè)寄存器來(lái)進(jìn)行門(mén)控。
4.門(mén)控時(shí)鐘。對(duì)于暫時(shí)不使用的模塊,系統(tǒng)可以減慢或停止其時(shí)鐘。在任一給定時(shí)間,通過(guò)時(shí)鐘可以節(jié)省功耗。門(mén)控時(shí)鐘可以極大地節(jié)省功耗,因?yàn)橛性磿r(shí)鐘緩沖器的數(shù)目減少,翻轉(zhuǎn)觸發(fā)器的次數(shù)將減少,因而那些觸發(fā)器的輸出端將減少可能反轉(zhuǎn)。門(mén)控時(shí)鐘要求仔細(xì)地規(guī)劃和分割算法,但節(jié)省的功耗相當(dāng)可觀。
系統(tǒng)級(jí)應(yīng)用的功耗節(jié)省方法:
1. 系統(tǒng)時(shí)鐘速度。系統(tǒng)時(shí)鐘頻率對(duì)電路板的總功耗有顯著影響,因?yàn)闀r(shí)鐘信號(hào)的開(kāi)關(guān)活動(dòng)最多,電容性負(fù)載最大。不過(guò),時(shí)鐘速度又與帶寬性能直接相關(guān)。為了在功耗和吞吐量之間取得一個(gè)最佳平衡,設(shè)計(jì)者可以向不需要快時(shí)鐘的元件提供較慢的時(shí)鐘,而向那些對(duì)帶寬很關(guān)鍵的元件提供快時(shí)鐘,或使用一個(gè)內(nèi)建的鎖相環(huán)來(lái)為需要高速性牟的特定模塊產(chǎn)生一個(gè)快時(shí)鐘。
2. 元件使能。有時(shí),即使它們行為對(duì)目前功能而言是不必需的,輸出端仍會(huì)被賦值。為了減少示使用的I/O產(chǎn)生的多余功耗,可以把一個(gè)系統(tǒng)控制器映射到FPGA,以關(guān)閉暫時(shí)不用的器件。當(dāng)一個(gè)器件與當(dāng)前操作無(wú)關(guān)時(shí),系統(tǒng)控制可以解除其使用信號(hào);或者,若該器件將在長(zhǎng)時(shí)間內(nèi)不被訪問(wèn),則可以把它置于睡眠模式。在低功耗FPGA中實(shí)現(xiàn)這樣一個(gè)系統(tǒng)控制器可以減少系統(tǒng)的總開(kāi)關(guān)活動(dòng),并智能地使一些暫不需要的器件保持在睡眠模式。元件使能類似于賦值保護(hù),只不過(guò)元件使能是在系統(tǒng)級(jí)實(shí)現(xiàn)的,它控制的對(duì)象是電路板上的元件而非FPGA中的模塊。
3. 智能協(xié)處理器。一般來(lái)說(shuō)不得,液晶顯示屏和微處理器占用了設(shè)計(jì)中的大部分功耗預(yù)算,
因此,常常通過(guò)降低LCD屏幕亮度或部分關(guān)閉屏幕來(lái)節(jié)省功耗。同樣地,使微處理器保持在睡眠模式也可以延長(zhǎng)電池壽命。
不幸的是,微處理器通常需要處理多個(gè)器件的中斷服務(wù)程序,這就使微處理器很難處于睡眠模式。鑒于此,把外圍振作和中斷控制等任務(wù)卸載到一個(gè)低功耗FPGA上可以大大降低功耗。在FPGA中實(shí)現(xiàn)的一個(gè)低功耗中斷控制器或數(shù)據(jù)協(xié)處理能夠自己處理一些中斷活動(dòng),所以可以避免為了低優(yōu)先級(jí)活動(dòng)而喚醒微處理器。
對(duì)于那些嚴(yán)格要求低功耗的系統(tǒng)而言,采用合適的低功耗可編程邏輯器件和可以節(jié)省功耗的設(shè)計(jì)技術(shù),有助于使系統(tǒng)功耗降至最小。
評(píng)論