FPGA (Field Programmable Gate Array)即現場可編程門陣列。它是在PLA、PAL、GAL、CPLD等可編程器件的基礎上進一步發展的產物。它是作為專用集成電路(ASIC)領域中的一種半定制電路,既解決了定制電路的不足,又克服了原有可編程器件門電路數有限的缺點。
1、 FPGA簡介
FPGA普遍用于實現數字電路模塊,用戶可對FPGA內部的邏輯模塊和I/O模塊重新配置,以實現用戶的需求。它還具有靜態可重復編程和動態在系統重構的特性,使得硬件的功能可以像軟件一樣通過編程來修改。可以毫不夸張的講,FPGA能完成任何數字器件的功能,下至簡單的74電路,上至高性能CPU,都可以用FPGA來實現。FPGA如同一張白紙或是一堆積木,工程師可以通過傳統的原理圖輸入法,或是硬件描述語言自由的設計一個數字系統。
2、FPGA發展史
FPGA的發展歷史如下圖所示。相對于PROM、PAL/GAL、CPLD而言,FPGA規模更大性能更高。

圖1 FPGA發展史
FPGA芯片主流生產廠家包括Xilinx、Altera、Lattice、Microsemi,其中前兩家的市場份額合計達到88%。目前FPGA主流廠商全部為美國廠商。國產FPGA由于研發起步較美國晚至少20年,目前還處于成長期,僅限于低端,在通信市場還沒有成熟應用。
2015年12月,Intel公司斥資167億美元收購了Altera公司。Altera被收購后不久即制定了英特爾處理器與FPGA集成的產品路線圖。這兩種產品集成的好處是可以提供創新的異構多核架構,適應例如人工智能等新市場的需求,同時能大幅縮減功耗。

圖2 FPGA在電信領域的應用歷史
FPGA在航天、軍工、電信領域有非常成熟和廣泛的應用。以電信領域為例,在電信設備一體機階段,FPGA由于其編程的靈活性以及高性能被應用網絡協議解析以及接口轉換。
在NFV(NetworkFunction Virtualization階段,FPGA基于通用服務器和Hypervisor實現網元數據面5倍的性能提升,同時能夠被通用Openstack框架管理編排。
在云時代,FPGA已經被作為基本IaaS資源在公有云提供開發服務和加速服務,AWS、華為、BAT均有類似通用服務提供。
截至目前,Intel的Stratix 10器件已被成功應用于微軟實時人工智能云平臺Brainwave項目。
3、兩家主流FPGA公司發展近況
Xilinx聚焦芯片領先和豐富的加速解決方案,通過開放策略獲得主流云平臺支持,確立了其在數據中心的領先地位。其UltraScale+系列FPGA領先友商1年多,使其在云平臺競爭中占領先機,其VU9P器件被大量應用于包括AWS、Baidu、Ali、Tencent及華為在內的多家公司的云計算平臺。
為滿足加速器領域對FPGA芯片日益遞增的性能需求,Xilinx已發布面向數據中心的下一代ACAP芯片架構、推出7nm Everest器件。此器件已不屬于傳統的FPGA,它集成了ARM、DSP、Math Engine處理器陣列等內核,將于2019年量產。相較于VU9P,Everest支持的AI處理性能將能提升20倍。
Intel則提供從硬件到平臺到應用的全棧解決方案,不開放硬件和平臺設計以避免生態碎片化,投入巨大但進展緩慢。

圖3 Xilinx產品系列圖

圖4 Intel(以Stratix系列為例)產品工藝年代
FPGA在數據中心服務器市場的實際應用中存在一定技術難點,具體包括如下幾方面:
1、編程門檻較高:硬件描述語言不同于軟件開發語言,需要開發者對底層硬件有著較深刻的認識;因此人才也就成為限制FPGA應用的一個重要因素。據了解,目前國內從事FPGA開發的人員初步估計大約兩萬多人。
2、集成難度較大:FPGA開發與應用需要軟硬件的協同,包括使用高級語言的系統建模、硬件代碼(電路)設計、硬件代碼仿真、底層驅動軟件與硬件邏輯的聯調等等。
3、開發周期相對軟件要長:硬件開發比軟件開發過程復雜,調試周期也被拉長。
4、很難獲取獨立邏輯IP。