基于ISE設計提供低功耗FPGA解決方案
從Xilinx公司推出FPGA二十多年來,研發工作大大提高了FPGA的速度和面積效率,縮小了FPGA與ASIC之間的差距,使FPGA成為實現數字電路的優選平臺。今天,功耗日益成為FPGA供應商及其客戶關注的問題。
本文引用地址:http://www.104case.com/article/269341.htm降低FPGA功耗是降低封裝和散熱成本、提高器件可靠性以及打開移動電子設備等新興市場之門的關鍵。
Xilinx在提供低功耗FPGA解決方案方面較有經驗。本文說明如何應用計算機輔助設計(CAD)技術,如Xilinx ISE(集成軟件環境)9.2i版本軟件使功能有效降低。
CMOS電路中的功耗由靜態(漏電)功耗和動態功耗兩部分組成。動態功耗是由電路信號上的瞬變所致,由下式決定:

式中Ci表示信號i的電容;fi為"開關率",表示信號i上的瞬變率;V是電源電壓。
靜態功耗是電路在靜止、空閑狀態下的功耗。工藝尺寸縮小(如65納米工藝)意味著更低的電源電壓和更小的晶體管尺寸,致使導線長度縮短、電容量減小以及總動態功耗降低。較小的工藝幾何尺寸還意味著較短的晶體管溝道和較薄的柵極氧化層,致使靜態功耗隨著工藝尺寸縮小而增加。
FPGA的功耗
對于實現給定的邏輯電路而言,FPGA的可編程性和靈活性使其功耗效率比定制ASIC要低。FPGA的配置電路和配置存儲器要占用硅片面積,致使導線延長和互連電容增加。在FPGA中,預制金屬導線段上附加的可編程布線開關產生互連,從而加重了信號產生的電容性負載。
FPGA中的動態功耗大部分消耗在可編程布線架構中。同理,靜態功耗與晶體管總寬度成正比。FPGA的晶體管有相當一部分是互連架構,這是造成漏電流的主要因素。因此,互連架構應該是FPGA功耗優化的主要攻關目標。
當然,可以通過工藝技術、硬件架構或電路級修改來解決功耗問題。例如,Virtex-5FPGA含有"對角線"互連資源,允許用較少的布線導體構成連接,從而減少互連電容。在晶體管級,Virex-4和Virtex-5兩種FPGA都是采用三氧化層工藝技術來抑制漏電流。根據其速度、功耗和可靠性要求,可以為每個晶體管使用三種氧化層厚度。與在標準FPGA架構中實現同樣功能相比,擴大使用DSP和處理器等硬IP模塊也可以降低功耗。
不必花費錢去更改硬件,也可以降低功耗。您可以通過新型的功率驅動的CAD算法和設計流程(如ISE9.2i軟件中采納的算法和設計流程)來解決功耗問題。
布局
Xilinx布局器的核心算法采用了解析(數學)技術。這種算法從有重疊的初始設計布局開始,然后使用強化抽象法從高度擁擠區去除邏輯塊,最終形成可行的無重疊布局。一旦完成解析布局,便在已布局的設計上運行交換式局部優化,以進一步細化布局。本布局器使用的傳統成本函數按下式考慮導線長度和時間:
總成本=a×w+bT
式中W和T分別是導線長度成本和時間成本,a和b是標量加權系數。a和b的值可以根據時間對導線長度的相對優先級設定。布局器的成本核算方案如圖1所示。
因為進行布局時還沒有實際線路,所以導線長度成本是依據導線長度估算。同理,時間成本是依據用戶提供的限制條件和連接延遲的估算值。為了優化功耗,我們用為成本函數增加功耗成分的方法擴展了解析布局和局部優化,如圖1右側所示。修改后的成本函數如下:
總成本=a×W+b×T+c×Pdynamic
式中Pdynamic是估算的動態功耗,c是標量加權系數。可以從仿真中提取信號開關率數據,然后將其提供給工具。反之,如果不提供任何開關率數據,則工具根據邏輯功能為初始輸入,為后續輸出假定一個默認的開關率,并且將開關率推廣到其余信號。為了獲得最佳結果,需要有用戶提供的開關率數據。
在布局過程中,信號的電容是未知的,因此必須估算。根據布局過程中已有的信號參數,我們建立一個電容估算經驗模型:

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