為設計尋找“完美”FPGA 的重要性日漸升級,其中功耗已成為主要考慮因素。功耗管理在大部分應用中都非常關鍵。某些標準已為單卡或者單個系統設定了功耗上限。鑒于此,設計人員必須在設計過程中更早地對功耗問題加以考慮,一般來說應該從選擇 FPGA 開始。
減少 FPGA 的功耗可以降低供電電壓,簡化電源設計和散熱管理,降低對電源分配面的要求,從而簡化電路板設計。低功耗還可以延長電池壽命,提高系統的可靠性(運行溫度較低的系統壽命更長)。
功耗挑戰
伴隨每一代工藝技術的問世,晶體管的尺寸可依照摩爾定律不斷縮小。但這種現象也會帶來副作用,即每個晶體管內的漏電流會增大,進而導致靜態功耗增大(未工作狀態下 FPGA 消耗的總電流增大)。FPGA 性能的提升會提高時鐘速率,使動態功耗上升。靜態功耗是晶體管漏電流造成的,動態功耗則取決于可編程邏輯和 I/O 的開關頻率。由于每一代 FPGA 的容量都在增大,會使兩種功耗不斷增加。更高的邏輯容量意味著每個器件會有更多漏電流和更多在更高速度下運行的晶體管。
鑒于這些問題的存在,設計人員必須在設計過程中盡早對電源和熱管理問題有更加清楚的認識。給器件加上散熱器并不足以解決這些問題。因此設計人員必須盡量減少設計中的邏輯用量。
首先來看幾點指南,有助于理解在設計過程各個階段應采取何種措施來降低FPGA的功耗。很明顯,在設計過程的初期徹底理解這些問題能帶來最大的收益。
圖 1 說明了包括 FPGA 選擇以及低功耗設計技巧在內的貫穿整個設計過程的不同設計點
?
7 系列工藝技術
在選擇 FPGA 的過程中, 應謹慎考慮工藝技術,它能幫助用戶判斷器件的漏電流和性能。賽靈思 7 系列FPGA 采用 28 HPL (28nm 高性能低功耗)工藝,在提高性能的同時可顯著降低功耗(見第 41 期《賽靈思中國通訊》的封面故事)。選擇采用低漏電流的 HPL 工藝制造的器件,可以避免在FPGA 設計中使用復雜且成本高昂的靜態功耗管理方案。
盡管 28 HP 工藝 FPGA 的性能并沒有超越 7 系列的其它 FPGA,但其靜態功耗還不到競爭對手 FPGA 靜態功耗的一半,而且不會造成嚴重的漏電流問題。圖 2 顯示了 7 系列產品的全面降耗情況,整體功耗僅為上一代40nmFPGA 器件的一半。
?
設計人員可以在開發階段選擇較大的 FPGA,然后在生產過程中選擇較小的 FPGA。選擇較小的 FPGA 不僅可以降低成本,還能降低系統功耗。
所有 7 系列 FPGA 均采用統一的架構。這種統一架構便于在賽靈思 7 系列的不同 FPGA 器件之間方便地進行向上或向下遷移。如果需要從 Virtex?-6 或者 Spartan?-6 器件遷移至7 系列器件或者在 7 系列器件之間遷移,請參閱“7系列用戶指南”(UG429)。
?
賽靈思堆疊硅片互聯技術
對較大的系統來說,設計人員一般會選擇多個 FPGA。這種架構往往需要在各個 FPGA 之間高速傳輸數據,這是一項復雜、困難的工作。選擇采用賽靈思堆疊硅片互聯技術制造的大型 7 系列 FPGA,比如 XC7V1500T 和XC7V2000T 器件,就可以避免這個問題。簡單地說,堆疊硅片互聯技術就是將多片芯片布置在具有成千上萬連接關系的插入式結構中,用以制造統一的大型器件。堆疊硅片互聯技術的優勢之一在于,與采用標準單片電路的類似尺寸的器件相比,可顯著降低靜態功耗。
堆疊硅片互聯技術 (SSI) 還能大幅度降低 I/O 互聯功耗。與在電路板上布置多塊 FPGA 的方法相比,SSI 技術有很大的優勢,其 I/O 互聯功耗比采用 I/O 和收發器構建的等效接口低 100 倍(帶寬/W)。功耗大幅下降是因為所有連接都構建在芯片上,無需功耗將信號驅動到片外,這樣可實現難以置信的高速度和低功耗。
電壓擴展增強選項
賽靈思 7 系列 FPGA 提供重要的電壓擴展選項。
7 系列 FPGA 為 -3L 和 -2L 器件提供擴展 (E) 溫度范圍(0-100 攝氏度)。由于 28 HPL 工藝提供的余量,-2LE 器件可在 1v 或 0.9v 下運行。這些器件被分別命名為 -2L (1.0V) 和 -2L(0.9V)。運行在 1.0V 下的 -2L 器件的速度性能與 -2I 和 -2C 器件相當,但靜態功耗顯著降低。運行在 0.9V 的 -2L 器件性能與 -1I和 -1C 器件相似,但靜態和動態功耗都有所下降。
僅僅將這些器件的電壓降低到0.9V 就可降低靜態功耗約 30%。降低電壓也會降低性能,但賽靈思根據速度和更加嚴格的漏電流規格對這些 -2L(0.9V) 器件進行篩選。這種篩選方法能夠使器件在最劣工藝條件下的功耗比標準速度等級器件的功耗降低 55%。
選擇 -2L 器件,用戶還能進一步降低動態功耗。由于動態功耗與 VCCINT2成正比,VCCINT下降 10% 可帶來功耗20% 的降幅。
功耗估算工具
今天的市場上有豐富的工具可供設計人員選擇,用以在整個開發過程中評估 FPGA 設計的散熱和電源要求。圖 3是FPGA 開發過程中每個階段可供使用的賽靈思工具。
?
為降低功耗,用戶必須盡一切可能減少設計中使用的邏輯數量。首先是使用專用的硬件模塊,而不是在 CLB 中實現相同的邏輯。
在設計初期,XPower Estimator(XPE) 電子數據表能夠在初步設計和實施之前對功耗進行早期估測。XPE 可用于架構評估和器件選擇,幫助確定應用所需的合適的電源和散熱管理組件。
PlanAheadTM 軟件則用于估測設計電源在 RTL 級的分配情況。設計人員可以使用約束條件或者 GUI 來設定器件的運行環境、I/O 屬性和默認活躍度。PlanAhead 軟件隨即讀取 HDL 代碼,估算所需的設計資源,并對每種資源的運行狀態進行統計分析,得出功耗估算報告。由于能夠掌握有關設計意圖的更加詳細的信息,因此 RTL功耗估計器的準確性優于 XPE 電子數據表,但不及Xpower Analyzer 得出的后期布局布線分析結果準確。
Xpower Analyzer (XPA) 是一種專門用于分析布局布線設計功耗的工具。它采用全面綜合的GUI,可以對特定運行條件下的功耗和發熱量信息進行詳盡的分析。
用戶可以在兩種不同視圖間切換,用以確認各種類型模塊(時鐘樹、邏輯、信號、IO 模塊、 BRAM 等硬 IP核或 DSP 模塊)的功耗或設計層級功耗。兩種視圖都能讓用戶進行詳細的功耗分析。并為確定設計中最耗電的模塊或部件提供了一種非常有效的方法,從而簡化了功耗優化工作。
軟件功耗優化
用戶可通過盡量減少同時工作的 Block RAM 端口的數量來優化使用Block RAM 的設計的功耗。這種優化方式可對跨多個 Block RAM 的 RAM或 ROM 分解的描述進行修改,可通過XST 中的“-power yes”選項來啟用優化功能。該優化通過調整地址線以及端口使能和寫使能信號來最大程度地減少每個時鐘周期中處于活動狀態的 Block RAM 端口的數量,同時能夠確保用戶的設計滿足時序約束條件。
下一步,不考慮性能影響,強制進行最高能效的 Block RAM 映射。選擇ram_style 約束的 block_power2 選項,前提是用戶已經知道與該存儲器相關的時序路徑并非關鍵路徑。節能幅度可達15% 至 75%。
另外,還可以使用 XST 中的區域優化模式。該選項可以最大程度地減少設計使用的資源數量。但應注意進行區域優化可能會降低性能。
另一種技巧是進行活動感知優化,或者說智能門控。這些算法能夠分析邏輯等式,檢測在每個時鐘周期中有哪些寄存器源沒有參與結果運算。軟件隨后利用 FPGA 邏輯中可用的多余時鐘使能 (CE) 資源生成精細門控信號,用于關閉無用的開關活動。用戶可使用 map–power high 選項控制該智能時鐘和數據門控功能。總體可降低超過 15% 的內核動態功耗,在大多數情況下插入的額外門控邏輯不會影響性能。
還有一種降低功耗的方法是使用容量感知優化。主要有兩種方法:
? 時鐘負載分組:該方法對同步元件(比如觸發器或者 DSP 模塊)的布局進行重組,以最大程度地縮小每個時鐘網絡的覆蓋范圍。如果用戶將水平或垂直時鐘柱的數量降到最低,軟件就能關閉時鐘域中不用的分支。這樣可以同時降低時鐘資源和緩沖要求,進而節省內核動態功耗。這個過程可以用 map –power on選項來控制。
? 數據負載分組:這種算法能夠在保證用戶滿足性能要求的情況下最大程度地縮短設計的總體走線長度。數據負載分組可以降低功耗的原因在于,動態功耗取決于扇出能力和用戶布線結構的類型和長度。該分組算法同樣由 map –power on 選項啟用,通過將相關邏輯盡量靠攏的方式降低功耗。
ISE? Design Suite 為綜合、映射和布線布局的功耗優化提供了預先設定的目標和策略。對于采用非默認約束條件對綜合進行設置的方法來說,該方案是一種很好的替代選擇。但是運行該選項可能會增加各個路徑的時延。
最后,賽靈思實現工具能夠自動關閉未使用的收發器、鎖相環、數字時鐘管理器和 I/O。在7 系列器件中,賽靈思已經加入了針對未使用 Block RAM 的電源門控功能。只有當用戶在設計中使用 Block RAM 時才會產生漏電流,而非器件中所有 Block RAM 都會產生漏電流。在器件中,只對實例化的 Block RAM 供電,對未使用的 Block RAM 不供電。
?
低功耗設計技巧
設計人員可使用多種技巧和技術來降低 FPGA 設計的功耗。首先是使用專用的硬件模塊,而不是在 CLB 中實現相同的邏輯。為降低功耗,用戶必須盡一切可能減少設計中使用的邏輯數量。這樣用戶就能夠盡量縮小器件尺寸,降低靜態功耗。
使用專用的硬 IP 模塊是既能降低靜態和動態功耗,又能輕松滿足時序要求的最重要途徑之一。硬 IP 核能夠降低靜態功耗的原因在于晶體管的總體數量低于采用 CLB 邏輯的等效組件。
一般情況下,用戶應推導出盡可能多的資源。用戶可利用代碼中或者約束文件中的屬性,將推導出的資源單獨或分組調入 FPGA 架構或者硅片資源。用戶也可使用賽靈思 Core GeneratorTM工具定制專用硬件,用于實例化特定的資源。
另外,用戶可以將未使用的硬 IP核巧妙地用于其它并不明顯的任務。DSP48 slice 能夠用于多種邏輯功能,比如乘法器、加法器/累加器、寬幅邏輯比較器、移位器、模式匹配器和計數器。用戶可將 Block RAM 作為狀態機、數學函數、ROM 和寬幅邏輯查找表(LUT) 使用。
控制信號的最佳利用
控制信號(用于控制時鐘、設置、復位和時鐘使能等同步元素的信號)可以影響器件的密度、利用率和性能。以下方法有助于將功耗影響降至最低。
首先應避免在寄存器或者鎖存器上同時使用設置和復位。賽靈思 FPGA 中的觸發器可同時支持異步和同步復位和設置控制。但是底層觸發器每次只能完成一次設置、復位、置位或者清除。在RLT 代碼中為一項以上的這些功能進行編碼會導致在實現一種狀態時使用觸發器的 SR 端口,其余的狀態在架構邏輯中實現,故占用更多的 FPGA 資源。
如果一個狀態是同步的,另一個是異步的,異步狀態將成為使用 SR 端口實現的狀態,而同步狀態將在架構邏輯中實現。總的來說,最好避免一種以上的設置/復位/置位/清除狀態。另外,一個 slice 中的4個觸發器組中,每個組只有一個屬性能夠判斷觸發器的 SR 端口是同步還是異步。
另外,應使用高態有效控制信號。寄存器的控制端口為高態有效。不建議在 FPGA 設計中使用低態有效復位。由于需要在驅動寄存器的控制端口之前對信號進行反轉,因此低態有效信號需要使用更多的查找表。這種反轉必須使用查找表完成,故會占用查找表輸入。
因此,低態有效控制信號可能會導致更長的運行時間,降低器件的利用率,給時序和功耗造成不良影響。
盡量在 HDL 編碼或者實例化組件中使用高態有效控制信號。只要能夠控制設計中控制信號的極性,用戶就應在代碼的最頂層反轉信號。I/O 邏輯能夠容納推導出的反轉器,無需額外的FPGA 邏輯或者走線,故能夠改善利用率、性能和功耗。
采用部分重配置,設計人員能夠有效地按時間段對 FPGA 進行劃分,并單獨運行設計的各個組成部分。這種設計需要的器件尺寸要小得多,因為不是設計的每個部分都需要一直運行。
非必要的設置或復位
代碼中的非必要設置或復位會導致本來可以推導出的移位寄存器查找表(SRL)、查找表 RAM、Block RAM 和其它邏輯結構不能推導。雖然設計人員可能會覺得別扭,但許多電路都可以設定為自復位或者根本就不需要復位。例如,如果電路被用于實例化寄存器,就不需要復位,因為寄存器的初始化隨配置的完成自動進行。
通過減少使用非必要的設置或復位,以及更高的器件利用率,設計人員可實現更好的布局、更高的性能、更低的功耗。
如果用戶還想進一步降低功耗,另一個值得注意的方面是時鐘和Block活動。用戶應充分發揮BUFGMUX、BUFGCE 和 BUFHCE 的作用來對整個時鐘域進行門控,以達到降低功耗的目的。這些約束條件能夠關閉整個時鐘域的時鐘。類似的,如果應用只需關閉設計中部分區域的時鐘,可以使用 FPGA寄存器的時鐘使能引腳。
覆蓋多個時鐘域的設計會消耗更多時鐘資源,也會消耗更多功耗。只要可能,應將間歇使用的邏輯布置在單個時鐘域(圖 5)中。這樣有助于降低功耗。雖然工具會自動進行這方面的嘗試,但在部分設計中需要手動操作才能完成。
另一項技巧是限制數據的運動(圖6)。請勿將操作數在 FPGA 內搬移,僅搬移結果。使用的總線數量越少,長度越短,容量就越低,運算速度就越快,同時功耗也就越低。設計人員還應該在布局規劃的過程中注意將設計的引腳與相應邏輯進行合理布置。
部分重配置降低靜態功耗
可以使用較小型的器件來降低靜態功耗。采用部分重配置,設計人員能夠有效地按時間段對 FPGA 進行劃分,并單獨運行設計的各個組成部分。這種設計需要的器件尺寸要小得多,因為不是設計的每個部分都需要一直運行。
部分重配置既可降低動態功耗,又可降低靜態功耗。例如,許多設計必須高速運行,但它們峰值性能的運行時間可能很短。為節省功耗,設計人員可以利用部分重配置技術,為高性能設計添加一個可切換的低功耗版本,而不是一直處于最高性能下運行。在系統需要的時候,可以切換回高性能設計。
這個原則也適用于 I/O 標準,特別是在設計不是隨時都需要高能耗接口的時候。LVDS 需要較大的直流電供電,因此不管其活動程度如何,均屬于高能耗接口。設計人員可采用部分重配置,在設計不需要最高性能的時候,將 I/O從 LVDS 切換到較低功耗的接口,比如LVCMOS,然后在系統需要進行高速傳輸的時候切換回 LVDS。
時序約束對低功耗設計來說也具有重要意義。如果用戶在溫控環境中運行,請注意可以降低器件的速率來滿足時序要求。請務必讓器件的運行速率不超過設定的時鐘最高速率。讓時鐘的運行速度更快并不會收到更好的設計效果!一般來說,這樣做會占用更多的架構資源,因為這會減少資源共享,增加邏輯/寄存器數量,增加布線,減少對FPGA 專用功能的調用。所有這些都會給動態功耗造成顯著影響。
I/O 功耗已經成為總功耗的主要組成部分。在部分設計中,有高達 50%的功耗來自 I/O,尤其是在存儲密集的系統中。
可編程的轉換速率和驅動強度能夠降低 I/O 驅動的動態功耗。雖然許多設計人員青睞高速差分I/O 功能,但不是每個接口都需要。像 HSLVDCI 這樣的標準能夠節約大量 FPGA 間的通信功耗以及低速存儲器接口功耗。
所有的賽靈思 7 系列器件都能夠提供可編程的轉換速率和驅動強度。賽靈思 FPGA 采用數字控制阻抗 (DCI) 技術,可設置為三種狀態。DCI 可以避免在FPGA 向存儲器寫入的過程中產生端接功耗,故器件只在讀取的時候才產生端接功耗。
7 系列器件包含針對 HSTL 和SSTL 的用戶可編程參考接收器功耗模式。用戶可以根據 I/O 的具體情況控制這兩種可編程功耗模式,使用戶能夠在功耗和性能之間求得平衡,從而降低DC 功耗。
收發器功耗
賽靈思 7 系列 FPGA 的收發器已針對高性能和低抖動進行了優化。這些收發器能夠提供多種低功耗運行功能,便于設計人員定制靈活的運行模式和尺度,以實現功耗和性能的平衡。
在 7 系列 FPGA 中,共享 LC 鎖相環可降低大量功耗。對具有相同線速的四通道設計(比如 XAUI)來說,可使用一個四 PLL(而不是單通道 PLL)來降低功耗。類似的,在某些情況下,由于 PLL 在允許的范圍內既能高速運行又能低速運行,最好選擇較低的運行范圍來降低功耗。
用戶還可以選擇啟用單獨的 TX/RXPOWERDOWN 選項。在最低功耗模式下可啟動 PLL 功耗降低選項(比如在經常用于 PCIe? 系統的 D3 狀態下)。
設計過程的每個階段在編碼前理解和運用節能設計技巧是降低系統功耗的最重要的方法。在設計過程的適當階段使用各種賽靈思工具也有助于幫助用戶滿足功耗規范,同時為板級設計人員提供了關于選擇必備電源的數量、類型和規格的信息。賽靈思7 系列 FPGA 通過采用工藝技術和架構設計,實現了前所未有的能耗經濟性。
評論