FPGA 選件高級概述
市場上有許多不同類型的 FPGA,每種類型都有不同的功能和特性組合。可編程結構是任何 FPGA 的核心,它以可編程邏輯塊陣列的形式呈現,也稱為邏輯元件 (LE)(圖 1(a))。FPGA 結構可進一步擴展,以包括 SRAM 塊(稱為塊 RAM (BRAM))、鎖相環 (PLL) 和時鐘管理器之類的東西(圖 1(b))。此外,還可以添加數字信號處理 (DSP) 塊(稱為 DSP 切片)和高速串行器/解串器 (SERDES)(圖 1(c))。
?
?
圖 1:最簡單的 FPGA 僅包含可編程結構和可配置通用 IO (GPIO) (a);不同架構是在此基本結構上增加其他元件而形成:SRAM 塊、PLL 和時鐘管理器 (b);DSP 塊和 SERDES 接口 (c);以及硬處理器內核和外設 (d)。(圖片來源:Max Maxfield)
外設接口功能(如 CAN、I2C、SPI、UART 和 USB)可以實現為可編程結構中的軟內核,但許多 FPGA 將其作為硬內核在硅片中實現。同樣,微處理器也可以實現為可編程結構中的軟內核,或作為硬內核在硅片中實現(圖 1(d))。具有硬處理器內核的 FPGA 稱為片上系統 (SoC) FPGA。不同 FPGA 針對不同的市場和應用提供不同的功能、特性和容量集合。
FPGA 供應商有很多,包括 Intel(收購了 Altera)、Efinix、Lattice Semiconductor、Microchip Technology(收購了 Atmel 和 Microsemi),以及 Xilinx。
所有這些供應商都提供多個 FPGA 系列:有的提供 SoC FPGA,有的提供面向人工智能 (AI) 和機器學習 (ML) 應用的器件,有的則提供適用于航天應用的耐輻射器件。由于產品系列眾多,每個系列提供不同的資源,因此為眼前的任務選擇最佳器件可能很棘手。
Intel FPGA 和 SoC FPGA 介紹
Intel 提供各種各樣的可編程器件產品,性能和功能從中等到極高都有,并涵蓋傳統 FPGA 到 SoC FPGA(即,將 FPGA 可編程結構和一種或多種強化處理器內核結合在一起的器件)。
Intel 的產品系列當前有五個主動 FPGA 系列,包括 Max 10、Cyclone 10,和 Arria 10(圖 2)。Intel 還提供極高端的 Stratix 10 及其更新的最先進 Agilex 器件。
?
?
圖 2:在 Intel 的五個 FPGA 系列中,其中三個(從成本最低 (Max 10) 到最高容量及性能 (Arria 10))的目標應用和市場覆蓋從板卡管理和 I/O 擴展,一直到嵌入式視覺和軍事/國防。Stratix 10 和更新的 Agilex 器件進一步提升了性能。(圖片來源:Max Maxfield)
Intel 的 Max 10 FPGA 集成片載 NOR 閃存,以提供 FPGA 配置。其他產品系列有基于 SRAM 的配置單元,并且會在上電時從板載外部存儲器件或系統的其他位置(如在外部處理器的控制之下)加載配置。除 MAX 10 系列以外,所有其他 Intel FPGA 系列都可作為 FPGA 或 SoC FPGA 的形式提供,并與強化微處理器系統集成。
MAX 10 FPGA 的集成功能包括模數轉換器 (ADC) 和雙通道配置閃存,后者可提供在單個芯片上存儲與動態切換兩張圖像的功能。MAX 10 FPGA 還具有 Nios II 軟核心處理器支持、DSP 塊和軟雙倍數據速率 3 (DDR3) 存儲控制器。
MAX 10 產品組合中的代表性器件是 10M16SCU169I7P。該產品具有 16,000 個邏輯單元和 130 個輸入/輸出 (I/O),而且總 RAM 位數為 562,176。Intel 的 EK-10M08E144 是適用于 MAX 10 的評估板,另一個是 HINJKIT,這是 Alorium Technology, LLC 的 FPGA 物聯網傳感器集線器開發套件(圖 3)。尤其值得關注的是,HINJKIT 的 MAX 10 FPGA 包括 Alorium Technology 的 AVR 兼容 8 位微控制器,使 HINJKIT 能與 Arduino IDE 配合使用。該板還可為第三方物聯網載板、模塊和配件提供高度的接口靈活性。
Intel 的 Cyclone 10 GX FPGA 提供 12.5 GB 基于收發器的功能、1.4 Gbit/s 低壓差分信號 (LVDS),以及適用于最高 1,866 Mbits/s 數據速率的高達 72 位寬 DDR3 SDRAM 接口。Cyclone 10 GX FPGA 針對機器視覺、視頻連接和智能視覺相機等高帶寬性能應用進行了優化。
與之相比,Cyclone 10 LP FPGA 則針對低靜態功耗、低成本應用進行了優化,例如 I/O 擴展、傳感器融合、電機/運動控制、芯片到芯片橋接以及控制應用。GX 和 LP 器件系列都支持垂直遷移,使設計人員從一個器件開始著手設計,然后在未來遷移到相鄰密度。
Cyclone 10 產品組合中的代表性器件是 10CL006YU256A7G。該產品具有 6,272 個邏輯單元和 176 個 I/O,而且總 RAM 位數為 276,480。相關的開發和評估板及模塊還有很多,包括 P0496 DE10-NANO Cyclone V SE SoC 套件(圖 4)、P0553 TSoM Cyclone V SE 評估板(也基于 Cyclone V SoC FPGA)和 P0581 TSoM Cyclone V SE FPGA 評估板,它們都是 Terasic Inc 的產品。(注意,這些板上的 Cyclone V FPGA 是 Cyclone 10 系列的較早期產品。)
Arria 10 器件基于 TSMC 的 20 納米 (nm) 工藝技術,將雙核 Arm Cortex-A9 MPCore 硬處理器系統 (HPS) 與可編程結構組合在一起,該結構還包括強化浮點 DSP 塊。Arria 10 還裝載了嵌入式高速收發器、硬存儲控制器,以及協議知識產權 (IP) 控制器,全都包含在單個高度集成的封裝中。
Arria 10 產品組合中的代表性器件是 10AX022C4U19E3SG。該產品具有 220,000 個邏輯單元和 240 個 I/O,而且總 RAM 位數為 13,752,320。Intel 的 DK-DEV-10AX115S-A Arria 10 GX FPGA 評估板(圖 5)是開發此 FPGA 的合適平臺。該板讓設計人員能夠開發與測試基于 Arria 10 的 PCI Express (PCIe) 3.0 設計;開發與測試由 DDR4、DDR3、QDR IV 和 RLDRAM III 存儲器組成的存儲器子系統;并且通過使用 FPGA 夾層卡 (FMC) 連接器連接到由 Intel 合作伙伴提供的 FMC 夾層卡,來開發模塊化的可擴展設計。
Intel 的 Stratix 10 FPGA 和 SoC FPGA 采用 Intel Hyperflex FPGA 架構。此器件產品線中的 FPGA 可應對高吞吐量系統的需求,其具有最高 10 TFLOPS 的浮點性能,并支持從 28.3 Gbits/s (GX) 到 57.8 Gbits/s 收發器,后者在最多 144 個收發器通道中,能夠滿足 5G 通信、云計算、網絡虛擬化和光纖傳輸網絡的帶寬要求。產品變體包括 PCIe Gen4 接口,最高能以每秒傳輸 16 GB 的速度 (GT/s) 提供 x16 配置,以及一種可支持特定 Intel Optane DC 永久性存儲器的全新存儲控制器。
Intel 的 DK-DEV-1SGX-L-A Stratix 10 GX FPGA 評估板(圖 6)支持利用 Stratix 10 產品線進行開發。該板讓設計人員能夠開發與測試基于 Stratix 10 的 PCI Express (PCIe) 3.0 設計;開發與測試由 DDR4、DDR3、QDR IV 和 RLDRAM III 存儲器組成的存儲器子系統;并且通過使用 FPGA 夾層卡 (FMC) 連接器連接到同樣由 Intel 合作伙伴提供的 FMC 夾層卡,開發模塊化的可擴展設計。
使用 Intel 的 FPGA 和 SoCs FPGA 進行設計和開發
在本 FPGA 系列文章的第 1 部分中,我們指出這些器件的傳統設計方法是讓工程師使用 Verilog 或 VHDL 等硬件描述語言 (HDL),在抽象級別(即寄存器傳送級 [RTL])上捕獲設計意圖。首先可以對這些 RTL 描述進行仿真,以驗證其是否符合要求,然后將其傳送給綜合工具,生成用于對 FPGA 進行配置(編程)的配置文件。
抽象的下一步是捕獲設計意圖,主要是使用 C/C++ 之類的編程語言或 SystemC 這樣的特殊實現工具;后者是一組 C++ 類和宏,可提供事件驅動的仿真接口。這些方法有助于并發進程的仿真,每個進程都使用簡單的 C++ 語法進行描述。對于此類描述,可以通過像常規程序一樣運行來進行分析和配置,然后傳遞給高級綜合 (HLS) 引擎,由該引擎輸出 RTL,而 RTL 會傳輸至常規綜合引擎。
Open CL(開放運算語言)在概念上更加抽象,該框架適用于編寫可跨異構平臺執行的程序。除了 FPGA,這些平臺還包括中央處理單元 (CPU)、圖形處理單元 (GPU)、數字信號處理器 (DSP),以及其他處理器或硬件加速器。OpenCL 指定用于為這些器件進行編程的編程語言(基于 C99 和 C++11),并且指定應用程序編程接口 (API),以對平臺進行控制并在運算設備上執行程序。
對于 Intel FPGA 和 SoC FPGA,用戶使用 Intel 的 Quartus Prime 設計軟件為所有產品系列開發設計。該軟件分為三個版本:Quartus Prime Pro Edition、Quartus Prime Standard Edition 和 Quartus Prime Lite Edition。Pro 和 Standard Edition 需要付費許可證,而 Lite Edition 可供免費下載。
Pro Edition 經過優化,可借助 Agilex、Stratix 10、Arria 10 和 Cyclone 10 GX 器件系列支持下一代 FPGA 和 SoC FPGA 中的高級功能;Standard Edition 廣泛支持 Cyclone 10 LP 器件系列及其他更早期的器件系列;而 Lite Edition 可免費下載而無需許可證文件,為大容量器件系列提供理想的切入點。
Intel 提供各式各樣的其他設計工具和資源,包括 Intel DSP Builder、Intel 高級綜合 (HLS) 編譯器,以及 Intel FPGA SDK for OpenCL。
Intel Distribution of the OpenVINO Toolkit 也非常實用,可幫助開發人員構建人工智能 (AI)、計算機視覺、音頻、語音和語言應用程序,實現從邊緣至云的深度學習推理。除了 FPGA,該工具套件還支持使用常見的 API,跨 Intel 架構和 AI 加速器(CPU、iGPU、Intel 的 Movidius 視覺處理單元 (VPU) 和 Intel 的 Gaussian & Neural Accelerator (GNA))異構執行。該工具套件由基于 Cyclone V GT FPGA 的 OpenVINO 入門套件提供支持。
總結
最佳處理設計解決方案常常是由處理器與 FPGA 的組合提供,或由 FPGA 單獨提供,或以硬處理器內核作為部分結構的 FPGA 提供。作為一項技術,FPGA 多年來發展迅速,能夠滿足靈活性、處理速度、功耗等多方面的設計需求,非常適合智能接口、機器視覺和人工智能等眾多應用。
Intel 提供從低到極高范圍、從傳統 FPGA 到 SoC FPGA 的可編程器件產品。如上所述,要使用此類器件進行設計,Intel 和其他第三方都提供強大的開發套件和工具,以滿足硬件開發人員、軟件開發人員以及人工智能和計算機視覺系統構建者的需求。
評論
查看更多