基于ISE設(shè)計提供低功耗FPGA解決方案
布線
一旦將邏輯塊分配到FPGA上的物理位置,我們就必須為各塊之間的連接進(jìn)行布線。布線器采用一種協(xié)商擁擠布線算法,該算法在初始迭代中允許信號間短路。在后續(xù)迭代中,對短路的產(chǎn)生逐漸加大處罰,直到僅剩一個信號使用布線導(dǎo)體。對時間關(guān)鍵型連接布線的方式,應(yīng)盡量縮短其延遲,這涉及密集型的RC延時計算。不過,大多數(shù)連接并非時間關(guān)鍵型。 在功耗監(jiān)控型布線器中,我們選擇優(yōu)化這類非關(guān)鍵型連接的電容。為達(dá)到這一目的,我們針對非時間關(guān)鍵型連接修改了布線器的成本函數(shù),以便考慮電容,這與上述根據(jù)其他因素(如估算的延遲或不足)的方法截然相反。
該布線圖中的每個節(jié)點表示一個布線導(dǎo)體或邏輯塊引腳,每條邊線表示一個可編程布線開關(guān)。布線器必須在源引腳和目標(biāo)引腳之間選擇一條路徑。圖中各節(jié)點內(nèi)部所示為該節(jié)點的原始成本和電容成本。若要盡量降低原始成本,源引腳和目標(biāo)引腳之間的布線就應(yīng)采納藍(lán)色路徑。然而,在功耗監(jiān)控型流程中,布線器會使用綠色路徑,因為這條路徑的總體電容較低。
功耗監(jiān)控型布局與布線的結(jié)果
我們使用傳統(tǒng)布局布線流程和上述功耗型流程兩種方法,對一組工業(yè)設(shè)計進(jìn)行了布局布線。這些設(shè)計的初始輸入附加一個基于線性反饋移位寄存器(LFSR-based)的偽隨機(jī)矢量生成器,從而增加了內(nèi)置的自動輸入矢量生成功能。這樣,無需大量使用外部波形就能完成動態(tài)功耗的板級測量。
我們把這些工業(yè)設(shè)計映射到了Spartan-3、Viitex-4和Viltex-5器件中。結(jié)果顯示,動態(tài)功耗降低率對于Spartan-3FPGA達(dá)14%,對于Virtex_4FPGA達(dá)11%,對于Virtex-5FPGA達(dá)12%。就所有設(shè)計平均而言,動態(tài)功耗降低率對于Spartan-3FPGA為12%,對于Virtex-4FPGA為5%,對于Virtex-5FPGA為7%。就所有系列平均而言,速度性能下降在3%和4%之間。我們隊為,這樣小的性能損失在注重功耗的設(shè)計中是可以接受的??紤]到這些僅僅是軟件修改的初始結(jié)果,我們認(rèn)為所取得的功耗效益是令人振奮的。
降低邏輯塊內(nèi)部功耗
本文討論的布局和布線優(yōu)化旨在降低互連架構(gòu)中的功耗。我們還設(shè)計了一種降低邏輯塊內(nèi)部功耗的方法,尤其是在未使用全部查找表(LUT)時,降低LUT中的功耗。K個輸入的LUT是小存儲器,只用幾個K輸入即可實現(xiàn)任意邏輯功能。圖3所示為用一個假設(shè)的三輸入LUT(輸入A1、A2和A3)實現(xiàn)二輸入邏輯與功能的過程。多路復(fù)用器樹左側(cè)的LUTSRAM所示內(nèi)容為邏輯與的真值表。
通常,未使用的輸入作為無關(guān)項處理,假設(shè)為0或1。所以,為了在圖3所示的情況下說明這一點,Xilinx軟件在LUTSRAM存儲器內(nèi)容的上下兩半部分中重復(fù)了該邏輯功能??蛻粼O(shè)計中經(jīng)常出現(xiàn)未使用的LUT輸入,特別是Virtex-5設(shè)計,它的LUT有六個輸入。
為了評價在工業(yè)設(shè)計上進(jìn)行的這一優(yōu)化,我們進(jìn)行了板級功耗測量,發(fā)現(xiàn)動態(tài)功耗節(jié)省了幾個百分點。這些結(jié)果說明大有前途,因為可以在布線后進(jìn)行優(yōu)化,不會造成面積或性能損失,從這種意義上講,這種優(yōu)化是免費的。
結(jié)語
結(jié)果顯示,在通過Xilinx ISE設(shè)計工具降低功耗方面已經(jīng)取得長足的進(jìn)步。在使用軟件進(jìn)一步降低功耗方面,我們認(rèn)為前景一片光明。注重降低功耗的解決方案由功耗監(jiān)控型CAD算法和功耗優(yōu)化器件(如Virrex-5FPGA)組成,這一成功事例令人鼓舞。低功耗軟硬件的不斷進(jìn)步將為Xilinx FPGA打開進(jìn)入新興功耗敏感型市場的大門。
評論