FPGA 基礎知識 – 第 5 篇:Intel (Altera) 的 FPGA 使用入門
資料提供者:DigiKey 北美編輯群
2020-05-07
編者說明:最佳的處理解決方案通常由 RISC、CISC、圖形處理器與 FPGA 等組合方案提供;也可由 FPGA 本身或以處理器硬核為部分結構的 FPGA 提供。然而,有許多設計人員對 FPGA 的功能、發展歷程、使用方式不太熟悉。本系列文章包含多個部分。第 1 篇詳細介紹 FPGA;第 2 篇聚焦於 Lattice Semiconductor 提供的 FPGA 產品;第 3 篇著重介紹 Microchip Technology (出自子公司 Microsemi Corporation) 的 FPGA 元件系列及設計工具。第 4 篇深入探討 Xilinx 提供的組件和工具。第 5 篇 (即本文) 將介紹 Altera 的產品,該公司已被 Intel 收購,如今在 Intel 成立可編程解決方案事業群 (本文以下都將使用 Intel 這個名稱)。
正如第 1 篇所討論,現場可編程閘極陣列 (FPGA) 具有許多特性,因此無論是在獨立還是異質架構中使用,都是寶貴的運算資產;然而許多設計人員不熟悉 FPGA,也不知道如何將這些元件整合到自己的設計中。為了克服這個障礙,我們需要深入探討主流廠商的 FPGA 架構以及相關工具。
高階 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 個邏輯元件/單元、562,176 個 RAM 總位元數,以及 130 個輸入/輸出 (I/O)。MAX 10 適合使用的評估板,一個是 Intel 的 EK-10M08E144,另一個是 HINJKIT,這是一款出自 Alorium Technology, LLC 的 FPGA IoT 感測器集線器開發套件 (圖 3)。HINJKIT 是一款特別有意思的產品,因為此產品的 MAX 10 FPGA 包含 Alorium Technology 的 AVR 相容 8 位元微控制器,因此 HINJKIT 能搭配 Arduino IDE 使用。該板件也為第三方物聯網載板、模組與配件提供高介面彈性。
圖 3:HINJKIT 是 Alorium 的 MAX 10 FPGA 開發平台,為第三方物聯網載板、模組與配件提供高介面彈性。(圖片來源:Alorium Technology)
Intel 的 Cyclone 10 GX FPGA 提供 12.5 GB 收發器型功能、1.4 Gbit/s 的低電壓差動訊號傳輸 (LVDS),及高達 72 位元寬的 DDR3 SDRAM 介面,使數據傳輸率能高達 1,866 Mbits/s。Cyclone 10 GX FPGA 針對高頻寬效能應用進行最佳化,例如機械視覺、視訊連接和智慧型視覺相機。
相較之下,Cyclone 10 LP FPGA 針對低靜態功率、低成本應用進行最佳化,例如 I/O 擴充、感測器融合、馬達/動作控制、晶片至晶片橋接,以及控制應用。GX 和 LP 元件系列皆支援垂直移轉,讓設計人員能使用一個元件開始進行設計,並在未來移轉到鄰近的密度。
Cyclone 10 產品組合的代表性成員是 10CL006YU256A7G,此產品具備 6,272 個邏輯元件/單元、276,480 個總 RAM 位元數,以及 176 個 I/O。相關的開發與評估板及模組非常多,包括 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 系列的較早世代。)
圖 4:低成本 P0496 DE10-NANO 開發套件是穩固的硬體設計平台,讓使用者能試驗和評估 Cyclone FPGA。(圖片來源:Terasic Inc.)
Arria 10 元件以 TSMC 的 20 nm 製程技術為基礎,結合了雙核心 Arm Cortex-A9 MPCore 硬處理器系統 (HPS) 和可編程結構,該結構中包含硬化的浮點 DSP 區塊。Arria 10 元件還有嵌入式高速收發器、硬記憶體控制器與協定智慧財產 (IP) 控制器,全都包含於一個高度整合的封裝中。
Arria 10 產品組合的代表性元件是 10AX022C4U19E3SG,此產品包含 220,000 個邏輯元件/單元、13,752,320 個 RAM 總位元數,以及 240 個 I/O。要使用此 FPGA 進行開發,適合的平台是 Intel 的 DK-DEV-10AX115S-A Arria 10 GX FPGA 評估板 (圖 5)。此板件可讓設計人員開發和測試 Arria 10 型 PCI Express (PCIe) 3.0 設計;開發和測試內含 DDR4、DDR3、QDR IV 和 RLDRAM III 記憶體的記憶體子系統;並利用 FPGA 夾層卡 (FMC) 連接器連接到 Intel 夥伴提供的 FMC 夾層卡,來開發模組化與可擴充式設計。
圖 5:DK-DEV-10AX115S-A Arria 10 GX FPGA 開發套件提供一個完整的設計環境,其中包含開發和測試 PCIe 型設計、記憶體子系統以及以 FMC 卡為基礎的系統所需的所有硬體和軟體。(圖片來源:Intel)
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 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 夾層卡,來開發模組化的可擴充式設計。
圖 6:DK-DEV-1SGX-L-A Stratix 10 GX FPGA 評估板提供了一個完整的設計環境,其中包含開發和測試 PCIe 型設計、記憶體子系統以及以 FMC 卡為基礎的系統所需的所有硬體和軟體。(圖片來源:Intel)
使用 Intel 的 FPGA 和d SoC 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 版、Quartus Prime Standard 版,以及 Quartus Prime Lite 版。Pro 和 Standard 版需要付費才能提供授權,Lite 版則可免費下載。
Pro 版經過最佳化,可藉由 Agilex、Stratix 10、Arria 10 和 Cyclone 10 GX 元件系列支援下一代 FPGA 和 SoC FPGA 中的進階特點;Standard 版廣泛支援較早期的元件系列,以及 Cyclone 10 LP 元件系列;Lite 版不需要授權檔案即可免費下載,是高量元件系列的理想入門版本。
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 和其他第三方提供了功能強大的開發套件和工具套組,可滿足硬體開發人員、軟體開發人員以及人工智慧與電腦視覺系統創造者的需求。
延伸閱讀

聲明:各作者及/或論壇參與者於本網站所發表之意見、理念和觀點,概不反映 DigiKey 的意見、理念和觀點,亦非 DigiKey 的正式原則。