什麼是 FPGA (Field Programmable Gate Array)?它是如何運作的?

 AI(人工智慧)的根本取決於旨在模仿人類認知過程的演算法,然而,硬體在此等式中也同樣關鍵。協助人工智慧任務的三種主要硬體解決方案包括現場可程式閘陣列(FPGA)、圖形處理器(GPU)和中央處理器(CPU)。雖然GPU和CPU廣為人知,但FPGA往往較不為人所知。在這篇部落格文章中,我們將探討FPGA的複雜性及其在科技界的應用。

什麼是FPGA?

現場可程式閘陣列(FPGA)是一種多功能積體電路(IC),可以由終端使用者編程和重新編程,以執行廣泛的功能,這與GPU和CPU中固定的功能不同。FPGA的核心由一系列可配置的邏輯塊(CLB)、互連和I/O塊組成,這些塊可以配置以執行各種功能。FPGA架構的配置通常使用一種語言(即HDL,硬體描述語言)來指定,這與用於ASIC(特殊應用積體電路)的語言類似。

FPGA architecture

FPGA架構

  1. 可配置邏輯塊(CLB):作為FPGA功能的核心,這些塊包含邏輯閘和少量記憶體,可以編程以執行各種邏輯功能。它們是創建更複雜數位電路的構建模組。

    FPGA Logic Blocks

    LUT(查詢表)實現組合邏輯功能;MUX(多工器)用於選擇邏輯,DFF(D型正反器)儲存LUT的輸出。

  2. 可程式互連:連接邏輯塊的可程式佈線網絡。這些互連可以配置以在不同邏輯塊之間路由訊號,透過定義資料如何流經FPGA,從而創建複雜的數位電路。

    FPGA Interconnect


  3. I/O塊(輸入/輸出塊): 位於每個實體輸入或輸出引腳旁邊,這些塊將FPGA的內部邏輯連接到外部環境。它們可以編程為輸入、輸出或三態,使FPGA能夠與外部設備和系統通信。


    I/O blocks

 

FPGA類型

Types of FPGAs

  • 低階FPGA:專為低功耗、低邏輯密度和每晶片低複雜度而開發。低階FPGA的例子包括Altera的Cyclone系列、Xilinx的Spartan系列、Microsemi的Fusion系列以及Lattice Semiconductor的Mach XO/ICE40。 
  • 中階FPGA:旨在平衡效能和成本。中階FPGA的例子包括Altera的Arria系列、Xilinx的Artix-7/Kintex-7系列、Microsemi的IGL002以及Lattice Semiconductor的ECP3和ECP5系列。

  • 高階FPGA:專為邏輯密度和高效能而開發。高階FPGA的例子包括Altera的Stratix系列、Xilinx的Virtex系列、Achronix的Speedster 22i系列以及Microsemi的ProASIC3系列。

 

FPGA的優勢

  • 靈活性:FPGA可以重新編程以執行不同的任務或在設備部署後更新功能。這使得無需重新設計硬體即可進行修改和改進。 
  • 快速原型設計:設計人員可以在FPGA上快速實施和測試其設計,使其成為原型設計和迭代開發過程的理想選擇。 
  • 較低的初始成本:對於中低產量生產,FPGA通常比開發ASIC的初始成本更低,因為沒有昂貴的製造費用。 
  • 縮短上市時間:由於FPGA在設計後不需要製造過程,它們可以顯著縮短新設備的上市時間。

 

FPGA應用

FPGA Applications

  • 電信:FPGA對於訊號處理和更新網路協定至關重要,無需更換硬體。
  • 汽車系統:FPGA用於駕駛輔助、資訊娛樂和V2X通訊,允許售後更新。
  • 數據中心:加速資料處理、加密和網路管理,提高伺服器效率。
  • 航空航天與國防:FPGA在惡劣環境中提供可靠性,處理雷達、通訊和加密。
  • 消費電子產品:用於相機、電視和家庭系統中的處理,改善數位體驗。
  • 工業控制:簡化控制系統、自動化和機器視覺,促進即時處理。
  • 醫療與科學儀器:FPGA在影像設備中至關重要,能快速處理複雜演算法,確保快速診斷。透過數據採集和分析的精準度和速度支援研究。
  • 金融科技:透過低延遲、高吞吐量的處理能力實現更快速的高頻交易。
  • 人工智慧和機器學習: 加速 AI/ML 訓練和推論,支援快速開發和部署。

 

FPGA 與 ASIC 之間的差異是什麼?

FPGA 是一種可編程硬體架構的積體電路,而 ASIC(特殊應用積體電路)是一種為特定應用或目的而非通用用途設計的半導體晶片。ASIC 採用硬體連線來執行特定功能,一旦製造完成就無法重新編程或重新設計。以下是兩者之間的詳細比較:

 功能 FPGA ASIC
靈活性 高(可重新編程) 低(不可重新編程)
效能 低於 ASIC 針對特定任務的效能更高
功耗 高於 ASIC 低(針對效率優化)
開發成本 低(無非重複工程成本) 高(高非重複工程成本)
單位生產成本 高於 ASIC 低(針對批量生產優化)
上市時間 較短(可重新編程、適應性強) 較長(由於設計和製造)
可重編程性 是(生產後可更改演算法) 否(固定設計)
合適的生產量 小至中等規模 大量(以抵消非重複工程成本)
設計週期 較短 較長
 

總而言之,FPGA 和 ASIC 之間的選擇取決於特定的應用需求。FPGA 因其適應性和快速部署而受到青睞,非常適合不斷變化的環境、原型開發和需要靈活性的中型生產。相反,ASIC 在效率方面表現出色,提供優化的性能和更低的功耗,使其成為大規模、穩定應用更好的選擇,在這些應用中,高初始成本可以透過大規模生產的效益來抵消。選擇使用 FPGA 還是 ASIC最終取決於所需的靈活性、性能需求、功耗和生產量等因素。