二十多年來,FPGA 為世人提供了最靈活、適應性極強、快速的設計環(huán)境。早期的 DSP 設計人員發(fā)現,可將一種可再編程的門海用于數字信號處理。如果把內置到 FPGA 架構中的乘法器、加法器和累加單元結合起來,就可以利用大規(guī)模并行計算實現有效的濾波器算法。
在未加工頻率性能方面的損失,通過并行計算得到了彌補,而且得遠大于失,可謂“失之東隅,收之桑榆”;由此獲得的 DSP 帶寬完全可與替代方案媲美。隨著時間的推移,乘法器和加法器的實施越來越高效。1998 年,Xilinx 順理成章推出了第一個集成于 Virtex-II FPGA 系列產品中的嵌入式乘法器。Xilinx Virtex-II 和 Virtex-II Pro 系列產品深得人心,推動基于 FPGA 的 DSP 更上層樓,打破了每秒十億次 MAC 運算的壁障。
在數字通訊、軍事、國防、視頻和圖像市場需求的助推下,Xilinx 進一步做出調整,成功應對了一系列獨特挑戰(zhàn),使極大規(guī)模并行實施方式跨上又一個新臺階。隨著乘法器和加法器性能和數量的增長,對功耗進行管理也變得越來越困難。
Xilinx 的工程師們設計出了 DSP48 Slice,使這一難題迎刃而解。DSP48 Slice是一種超低功耗、高性能、全方位的數字信號處理元件,可方便地實現級聯,而不占用任何 FPGA 架構資源。此元件在 Virtex-5 器件中得到進一步加強,并重新命名為 DSP48E Slice,能支持更高的精度、SIMD(單指令多數據)操作、集成模式檢測電路和邏輯單元。
對快速數據輸入和系數存儲器的需求促使 Xilinx 構建起一個數字信息處理平臺,其中的 DSP48E Slice 含有率之大前所未見,并且擁有極其充裕的 Block RAM 和分布式 RAM。作為畫龍點睛之筆,Xilinx 在此平臺中使用了運行速度高達 3.125 Gbps 的集成高速串行通道,在芯片上移入和移出數據變得更為快捷。風云際會,這些元件組合在一起,Virtex-5 SXT 平臺由此應運而生。
Virtex-5 SXT 引擎 – DSP48E Slice
想要理解 FPGA 中數字信號處理的演變過程,必須回顧一下 DSP48E Slice(見圖 1),及其設計的三個主要方面。
集成乘法器和第二階段。利用集成的二級加法器/減法器/累加器擴展乘法器的運算?,F在,在單獨一個 DSP48E Slice 中,就可以執(zhí)行最常見的 DSP 運算組合了。
緊縮實施。為了提高性能、降低功耗,各個 DSP48E Slice 被設計成獨立元件,然后通過接口像積木塊一樣連接到一起,而每一個 DSP48E Slice 都包含獨立于 FPGA 架構的專用路徑和緩沖。
全方位定制設計。Xilinx 很早就確定,要實現高性能和低功耗,一個按照最新工藝尺寸度身打造的全方位定制設計是必不可少的。Xilinx 設計團隊與 Arithmetica 通力協作,將乘法器和加法器電路 MathIP 庫加以集成,進一步提高了效率。
以這種設計為依托,DSP48E Slice 的實施在性能和低功耗效率方面達到了前所未有的水平。Virtex-5 器件中的 DSP48E Slice 分別以高速 550 MHz、中速 500 MHz 和低速 450 MHz 運行。無論您單獨使用一個 DSP48E Slice 還是將所有 640 個 DSP48E Slice 匯集到最大的 Virtex-5 SXT 器件中,都可以達到這一性能(使用專用的級聯邏輯實現每秒 3520 億次乘法累積運算)。而且,實現這一令人嘆為觀止的性能,僅僅使用了 DSP48E Slice,完全沒有消耗邏輯或 FPGA 路徑資源。
這種專用的級聯邏輯意味著能耗的計算是基于每一個 DSP48E Slice 的,也即其運行速度和輸入的翻轉率。單個 DSP48E Slice 的實測典型功耗為 1.38 mW/100 MHz。不難算出,假定 Virtex-5 SX95T 器件中所有 640 個 Slice 均以 550 MHz 運行,而翻轉率為通常的 38%,則所有 DSP48E Slice 的總體動態(tài)功耗為 4.92W。
低功耗、高性能設計技術
為了充分利用獨特的 Virtex-5 SXT 架構進行數字信號處理,建議遵循如下的簡易指南:
實施能最大化使用 DSP48E Slice 的濾波器算法。每一個 25 x 18 位的 DSP48E Slice 都等同于 500 個以上可編程邏輯 Slice,功耗為同等邏輯實施的 1/10,單獨或鏈接運行速度高達 550 MHz。
利用 DSP48E Slice 的所有功能。每一個 DSP48E Slice 都可配置成獨立的 25 x 18 乘法器,一個 25 x 18 位乘法器兼加法器/減法器/累加器,或者一個 48 x 48 位加法器或減法器。每一個 DSP48E Slice 都支持 SIMD 運行以及對稱或收斂圓整。
實施定點或浮點運算。DSP48E Slice 不僅對于定點 FIR、FFT 或復雜的過濾器運算而言是理想的產品,25 x 18 的輸入大小和級聯路徑還使我們可以使用兩個 DSP48E Slice 來實現高效的 24 x 24 無符號浮點運算。
在數字信號應用中使用 DSP48E Slice
Virtex-5 SXT 平臺中 DSP48E Slice、Block RAM、邏輯和數千兆位級收發(fā)器的獨特結合,為 DSP 過濾器的應用提供了高成本效益、高性能、低功耗的解決方案。為了說明這一點,讓我們看看 Virtex-4 SX 和 Virtex-5 SXT 器件平臺中無線卡的應用,對比一下兩種情況下的功耗差別。
WiMAX 數字前端 (DFE) 集成了以下內容:數字上變頻 (DUC) /數字下變頻 (DDC)、振幅因數縮小 (CFR) 和自動增益控制 (AGC)。本設計中要求的過濾功能正好與一個 Virtex-4 SX25 FPGA 或一個 Virtex-5 SX35T FPGA 所能提供的 DSP48E Slice 相匹配。本設計運行頻率為 276 MHz,消耗 Virtex-4 SX25 FPGA 中 73% 的 DSP48 資源(128 個中的 95 個),或者 Virtex-5 SX35T FPGA 中 48% 的 DSP48E 資源(196 個中的 95 個)。
盡管單看 WiMAX DFE 方案的表現和用于其實施的資源已令人驚嘆,真正堪稱一絕的還是其功耗效率。本設計主要使用 DSP48 或者 DSP48E Slice,但也消耗 Block RAM 和邏輯。表 1 對這些方案進行了對比,并展示由 Virtex-4 到 Virtex-5 器件的實測功耗和降低水平。
結論
對數字信號處理的要求在不斷提高,提供可擴展高性能 DSP 的呼聲日益響亮,因此,在每秒幾百 GMAC 甚至更高的水平上管理功耗的難題也愈見急迫。Xilinx Virtex-5 SXT FPGA 平臺提供了獨特的單芯片解決方案,充分利用大規(guī)模并行計算達到超高性能,同時將功耗降到最低。
圖 1 – Virtex-5 FPGA 中 DSP48E Slice 的結構圖
表 1 – 真實應用情況下的實測功耗