新聞中心

EEPW首頁(yè) > 電源與新能源 > 設(shè)計(jì)應(yīng)用 > Xilinx FPGA的功耗優(yōu)化設(shè)計(jì)

Xilinx FPGA的功耗優(yōu)化設(shè)計(jì)

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

降低靜態(tài)功率的另一個(gè)方法是仔細(xì)審查,避免冗余的直流消耗源。中經(jīng)常會(huì)使用到具有多余或隱藏DCM或PLL的模塊,這種情況可能在模塊后忘記將多余的資源去除,或者在構(gòu)建下一代產(chǎn)品時(shí)使用了一些遺留代碼。將DCM或PLL抽象到設(shè)計(jì)的頂層,這樣模塊之間就可以共享資源,從而可進(jìn)一步減小設(shè)計(jì)的規(guī)模并降低直流功率。

更好地使用存儲(chǔ)器模塊也可幫助降低設(shè)計(jì)的動(dòng)態(tài),從而進(jìn)一步降低總體。由于動(dòng)態(tài)是容抗(面積或長(zhǎng)度)和頻率的函數(shù),因此應(yīng)當(dāng)檢查設(shè)計(jì)中訪問(wèn)塊存儲(chǔ)器的方式并確定能夠?qū)θ菘购皖l率進(jìn)行的區(qū)域。

提供兩種類(lèi)型的存儲(chǔ)器陣列。18Kbit或36Kbit的BRAM是針對(duì)大存儲(chǔ)器模塊而的。LUTRAM基于中的查找表,是針對(duì)細(xì)粒度存儲(chǔ)而的。 Virtex-5 FPGA中,LUTRAM的單位是64bit。

在這兩種類(lèi)型中,BRAM通常功耗要大一些。啟用后的BRAM靜態(tài)功率是其功耗的最大部分,跳變帶來(lái)的功耗居于第二位。設(shè)計(jì)人員可以采取一些步驟來(lái)優(yōu)化BRAM的功耗。例如,可以僅在讀或?qū)懼芷诓艈⒂肂RAM。對(duì)于較小的存儲(chǔ)器模塊可以使用LUTRAM來(lái)代替BRAM,將BRAM留給較大的存儲(chǔ)器模塊使用。此外,還可以嘗試將BRAM用于多個(gè)大型模塊。另一種技術(shù)是合理安排存儲(chǔ)器陣列來(lái)減少其占用的延遲面積、使性能最大化并盡量降低其功耗。圖1左側(cè)給出了一個(gè)針對(duì)速度和面積而優(yōu)化的2K x 36bit存儲(chǔ)陣列。

我們利用四個(gè)2K x 9bit模塊并行構(gòu)成這一存儲(chǔ)陣列,并在需要新值時(shí)啟用(Enable)所有四個(gè)模塊。另一方法是采用四個(gè)512 x 36bit模塊來(lái)安排2K x 36bit,但利用低兩位地址解碼來(lái)選擇訪問(wèn)哪個(gè)512 x 36bit模塊。在后一種情況下,某個(gè)時(shí)間僅訪問(wèn)一個(gè)存儲(chǔ)器塊,功耗將比第一種方法降低75%。

圖1右側(cè)顯示的是公司的塊存儲(chǔ)器生成器(Block Memory Generator),利用它可以生成任意大小的存儲(chǔ)器陣列并可以針對(duì)速度或功率對(duì)其進(jìn)行優(yōu)化。圖2則給出了具體應(yīng)用中的Xilinx Power Estimator,比較了在給定的使能速率下N個(gè)模塊同時(shí)啟動(dòng)與N/4模塊啟動(dòng)時(shí)的功耗情況。結(jié)果顯示動(dòng)態(tài)功率降低了75%。


圖1 速度和面積與功率優(yōu)化存儲(chǔ)器陣列(左)
以及Xilinx Block Memory Generator與功率面積選擇(右)

Xilinx工具可幫助選擇適合的存儲(chǔ)器陣列。考慮某個(gè)設(shè)計(jì)中需要兩組存儲(chǔ)器區(qū)域。一種情況下需要運(yùn)行在300MHz的16組64 x 32bit存儲(chǔ)器結(jié)構(gòu)(總位數(shù)為32K),另一種情況下需要16組512 x 36bit 存儲(chǔ)器架構(gòu) (總位數(shù)為294K)。

看一下16組64 x 32bit存儲(chǔ)器結(jié)構(gòu)的功率比較,XPE工具顯示出小存儲(chǔ)器陣列最好用LUTRAM來(lái)實(shí)現(xiàn),這樣比用BRAM節(jié)約85%的功耗(如圖3)。這是因?yàn)槿绻捎肂RAM的話,只能用16個(gè)18K位的模塊來(lái)實(shí)現(xiàn)16個(gè)極?。?4 x 32bit)的存儲(chǔ)器,有很多空間被浪費(fèi)了。而第二種情況16組18K位陣列的功率比較,XPE顯示情況正好相反,應(yīng)當(dāng)采用大一些的存儲(chǔ)器陣列來(lái)實(shí)現(xiàn)(圖4)。這種情況下,采用BRAM比采用LUTRAM可以節(jié)約28%的功耗,這是因?yàn)槿绻捎肔UTRAM就需要啟用更多的小粒度對(duì)象并增加更多的互連。

Xilinx FPGA的時(shí)鐘門(mén)控功能

Xilinx FPGA的時(shí)鐘門(mén)控功能提供了一些非常有意思的用途。例如,可以利用BUFGMUX時(shí)鐘緩沖器將FPGA內(nèi)的某個(gè)全局時(shí)鐘關(guān)閉,或者動(dòng)態(tài)選擇較慢的時(shí)鐘。還可以使用BUFGCE時(shí)鐘緩沖器進(jìn)行按時(shí)鐘周期(cycle-by-cycle)的門(mén)控,與ASIC設(shè)計(jì)中使用的時(shí)鐘門(mén)控技術(shù)類(lèi)似。設(shè)計(jì)中可以同時(shí)使用這兩種功能。



評(píng)論


相關(guān)推薦

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

關(guān)閉