來(lái)源:Digi-Key 作者:Adam Taylor 編者按:全新的 FPGA 架構方法帶來(lái)了更精細的控制和更大的靈活性,以滿(mǎn)足機器學(xué)習 (ML) 和人工智能 (AI) 的需求。本系列文章包括兩部分,第 1 部分介紹了 Efinix 的一款此類(lèi)架構,以及如何借助開(kāi)發(fā)板快速入門(mén)。第 2 部分討論了開(kāi)發(fā)板與外部器件和外設(如攝像頭)的連接。 從工業(yè)控制和安全到機器人、航空航天和汽車(chē),FPGA 在許多應用中扮演著(zhù)重要角色。憑借可編程邏輯內核的靈活性及其廣泛的接口能力,FPGA 在需要部署 ML 推理的影像處理中的應用日漸廣泛。FPGA 非常適合用來(lái)實(shí)現具有多個(gè)高速攝像頭接口的解決方案。此外,FPGA 還能在邏輯中實(shí)現專(zhuān)門(mén)的處理管道,從而消除基于 CPU 或 GPU 的解決方案的相關(guān)瓶頸。 然而,對于許多開(kāi)發(fā)人員來(lái)說(shuō),他們的應用需要更多 ML/AI 功能及更精細的控制或路由和邏輯,而這些是采用組合邏輯塊 (CLB) 的經(jīng)典 FPGA 架構所不能提供的。全新的 FPGA 架構方法解決了這些問(wèn)題。例如,Efinix 的 Quantum 架構采用可交換邏輯和路由 (XLR) 塊。 本文討論了 Efinix FPGA 架構的主要特點(diǎn)和屬性,重點(diǎn)介紹其 AI/ML 能力并探討了其在真實(shí)世界的實(shí)現。隨后,本文討論了一款開(kāi)發(fā)板及相關(guān)工具,開(kāi)發(fā)人員可以借助它們快速開(kāi)始后續 AI/ML 成像設計。 Efinix FPGA 器件 Efinix 目前提供兩個(gè)系列的器件。最初推出的是 Trion 系列,邏輯密度為 4000 (4K) 至 120K 邏輯元件 (LE),采用 SMIC 40LL 工藝制造。最新系列的器件則是 Titanium 系列,邏輯密度為 35K 至 100 萬(wàn) (1M) 邏輯元件,采用非常流行的 TSMC 16 nm 節點(diǎn)制造。 這兩個(gè)系列均基于 Quantum 架構,這在 FPGA 領(lǐng)域是獨一無(wú)二的。標準 FPGA 架構基于 CLB,在最基礎的層面上,包含一個(gè)查找表 (LUT) 和觸發(fā)器。CLB 實(shí)現邏輯方程,然后通過(guò)路由互連。借助 XLR 塊,Efinix 的 Quantum 架構擺脫了單獨的邏輯和路由塊。 XLR 塊的獨特之處在于,可以將其配置為具有 LUT、寄存器和加法器或路由矩陣的邏輯單元。這種方法帶來(lái)一個(gè)更精細的架構,可提供路由靈活性,使復雜邏輯或路由的實(shí)現能夠達到預期的性能。 ![]() 圖 1:XLR 塊的獨特之處在于,可以將其配置為具有 LUT、寄存器和加法器或路由矩陣的邏輯單元。(圖片來(lái)源:Efinix) 最新的 Titanium 系列器件為開(kāi)發(fā)人員提供了最先進(jìn)的功能(圖 2)。搭載 XLR 內核,該系列器件可提供運行速度為 16 Gbps 或 25.8 Gbps(具體取決于所選擇的器件)的多千兆位串行鏈路。這些多千兆位鏈路對于實(shí)現芯片內外的高速數據傳輸至關(guān)重要。 ![]() 圖 2:Titanium FPGA Ti180 提供多種選擇,具體取決于總線(xiàn)寬度、I/O 和存儲器要求。(圖片來(lái)源:Efinix) Titanium 器件還提供廣泛的輸入/輸出 (I/O) 接口功能,可歸類(lèi)為通用 I/O (GPIO),并可支持單端 I/O 標準,如 3.3 V、2.5 V 和 1.8 V 的低壓 CMOS (LVCMOS)。 對于高速和差分接口,Titanium 器件提供高速 I/O (HSIO),支持單端 I/O 標準,如 1.2 V、1.5 V 的 LVCMOS,以及 SSTL 和 HSTL。HSIO 支持的差分 I/O 標準包括低壓差分信號 (LVDS)、差分 SSTL 和 HSTL。 現代 FPGA 還需要緊密耦合的高帶寬存儲器來(lái)存儲用于圖像處理應用的圖像幀、用于信號處理的采樣數據,當然還要為 FPGA 內實(shí)現的處理器運行操作系統及軟件。Titanium 系列器件能夠連接動(dòng)態(tài)數據速率四 (DDR4) 和低功耗 DDR4(x) (LPDDR4(x))。根據所選擇的具體 Titanium 器件,支持的總線(xiàn)寬度為 x32 (J) 或 x16 (M),而有些器件不支持 LPDDR4 (L)。 Titanium FPGA 基于 SRAM,需要配置存儲器,通過(guò)主/從串行外設互連器件 (SPI) 或 JTAG 進(jìn)行器件配置。為了確保這種配置方法安全,Titanium FPGA 使用 AES GCM 對比特流進(jìn)行加密,同時(shí)使用 AES GCM 和 RSA-4096 提供比特流驗證。采用這種強大的安全措施非常有必要,原因在于 FPGA 部署在邊緣,惡意攻擊者可在邊緣訪(fǎng)問(wèn)并操縱其行為。 開(kāi)發(fā)板介紹 開(kāi)發(fā)板是 FPGA 評估流程的關(guān)鍵要素,因為它們可以用來(lái)探索器件的功能和原型應用,從而幫助降低整體風(fēng)險。首款可用于評估 Titanium FPGA 和開(kāi)始原型設計應用的開(kāi)發(fā)板是 Ti180 M484(圖 3)。此開(kāi)發(fā)板具有一個(gè) FPGA 夾層卡 (FMC) 連接器和 4 個(gè)Samtec QSE 連接器。 ![]() 圖 3:除 Titanium FPGA 外,Ti180 M484 開(kāi)發(fā)套件還配備一個(gè) FMC 連接器和 4 個(gè) Samtec QSE 連接器。(圖片來(lái)源:Adam Taylor) 安裝在此開(kāi)發(fā)板上的 Ti180 FPGA 提供 172K XLR 單元、32 個(gè)全局時(shí)鐘、640 個(gè)數字信號處理 (DSP) 元件和 13 Mb 的嵌入式 RAM。DSP 元件能夠實(shí)現固定點(diǎn) 18 x 19 乘法和 48 位乘法運算。此 DSP 還可針對以雙路或四路配置運行的單指令多數據 (SIMD) 運算進(jìn)行優(yōu)化。DSP 元件也可以配置為執行浮點(diǎn)運算。 像大多數開(kāi)發(fā)板一樣,Ti180 開(kāi)發(fā)板提供了簡(jiǎn)單的 LED 和按鈕。但是,其真正的強大之處在于連接能力。Ti180 開(kāi)發(fā)板提供一個(gè)小引腳數的 FMC 連接器,可以連接各種外設。由于這是一種廣泛使用的標準,因此有許多 FMC 卡可以實(shí)現高速模數轉換器 (ADC)、數模轉換器 (DAC)、網(wǎng)絡(luò )和內存/存儲解決方案的連接。 除 FMC 連接外,此開(kāi)發(fā)板還配備 4 個(gè) Samtec QSE 連接器,供開(kāi)發(fā)人員添加擴展卡。這些 QSE 連接器用于提供 MIPI 輸入和輸出,其中每個(gè) QSE 連接器提供一個(gè) MIPI 輸入或輸出。 ![]() 圖 4:Ti180 M484 開(kāi)發(fā)套件,圖中顯示了其基于 QSE 和 FMC 連接器的多種擴展選項。(圖片來(lái)源:Adam Taylor) Ti180 開(kāi)發(fā)板還提供 256 Mb 的 LPDDR4,以支持影像或信號處理應用所需的高性能存儲器。此外,該開(kāi)發(fā)板提供了一系列時(shí)鐘選項(25、33.33、50 和 74.25 MHz),可搭配器件鎖相環(huán) (PLL) 使用以產(chǎn)生不同的內部頻率。 在開(kāi)發(fā)過(guò)程中,能夠在開(kāi)發(fā)板上實(shí)時(shí)重新編程和調試至關(guān)重要,而這需要 JTAG 連接,此板通過(guò) USB-C 接口提供了此連接。另外,還提供了兩個(gè) 256 Mb NOR 閃存器件形式的非易失性存儲器,可用于演示配置解決方案。 此開(kāi)發(fā)板由包裝盒內隨附的 12 V 通用電源適配器供電。附件還包括一個(gè) FMC 到 QSE 分線(xiàn)板,以及基于 QSE 的 HDMI、以太網(wǎng)、MIPI 和 LVDS 擴展卡。為了演示 Ti180 的影像處理能力,還提供一個(gè)雙 RPI 子卡和兩個(gè) IMX477 攝像頭卡。 軟件環(huán)境 實(shí)現針對 Ti180 開(kāi)發(fā)板的設計時(shí)要使用 Efinix 軟件 Efinity。該軟件能夠通過(guò)合成及布局布線(xiàn)生成比特流。此外,它還為開(kāi)發(fā)人員提供了知識產(chǎn)權 (IP) 塊、時(shí)序分析和片上調試功能。 請注意,需要有開(kāi)發(fā)板才能使用 Efinity 軟件。但與其他供應商不同的是,該工具沒(méi)有其他需要額外許可的版本。 在 Efinity 中,針對所選的器件創(chuàng )建項目。然后,可以將 RTL 文件添加到項目中,并為定時(shí)和 I/O 設計創(chuàng )建約束條件。利用 HSIO、GPIO 和專(zhuān)用 I/O,開(kāi)發(fā)人員還可在 Efinity 中實(shí)現 I/O 設計。 ![]() 圖 5:在 Efinity 中,針對所選器件創(chuàng )建項目。(圖片來(lái)源:Adam Taylor) FPGA 設計的一個(gè)關(guān)鍵因素是利用 IP,特別是復雜的 IP,如 AXI 互連、存儲器控制器和軟核處理器。Efinity 為開(kāi)發(fā)人員提供了一系列 IP 塊,可用于加速設計過(guò)程。 ![]() 圖 6:Efinity 為開(kāi)發(fā)人員提供了一個(gè) IP 產(chǎn)品目錄,可用于加速設計過(guò)程。(圖片來(lái)源:Adam Taylor) 雖然 FPGA 在實(shí)現并行處理結構方面表現優(yōu)異,但許多 FPGA 設計包含軟核處理器。這些處理器能夠實(shí)現順序處理,如網(wǎng)絡(luò )通信。為了能夠在 Efinix 器件中部署軟核處理器,Efinity 提供了 Sapphire 片上系統 (SoC) 配置工具。Sapphire 允許開(kāi)發(fā)人員定義一個(gè)多處理器系統,該系統具有跨多個(gè)處理器的緩存和緩存一致性,同時(shí)能夠運行嵌入式 Linux 操作系統。在 Sapphire 中,開(kāi)發(fā)人員可以選擇 1 至 4 個(gè)軟核處理器。 所實(shí)現的軟核處理器是 VexRiscV 軟 CPU,基于 RISC-V 指令集架構。VexRiscV 處理器是一款 32 位實(shí)現,具有流水線(xiàn)擴展,并提供可配置的特性集,使其非常適合用作 Efinix 器件中的軟核處理器?蛇x配置包括乘法器、原子指令、浮點(diǎn)擴展和壓縮指令。根據 SoC 系統的配置,性能范圍為 0.86 至 1.05 DMIPS/MHz。 在 Efinix 器件中設計并實(shí)現硬件環(huán)境后,即可使用 Ashling RiscFree IDE 來(lái)開(kāi)發(fā)應用軟件。Ashling RiscFree 是一款基于 Eclipse 的 IDE,能夠創(chuàng )建和編譯應用軟件,并可針對目標進(jìn)行調試,以在部署前對應用程序進(jìn)行微調。 ![]() 圖 7:Ashling RiscFree 是一款基于 Eclipse 的 IDE,能夠創(chuàng )建和編譯應用軟件,并可針對目標進(jìn)行調。(圖片來(lái)源:Adam Taylor) 如果要開(kāi)發(fā)嵌入式 Linux 解決方案,將提供所有必要的啟動(dòng)工具,包括第一級引導程序、OpenSBI、U-Boot 和使用 Buildroot 的 Linux。另外,如果需要實(shí)時(shí)解決方案,開(kāi)發(fā)人員可以使用 FreeRTOS。 AI 實(shí)現 Efinix 的 AI 實(shí)現以 RISC-V 軟核運算為基礎。其中利用 RISC-V 處理器的自定義指令功能,來(lái)實(shí)現 TensorFlow Lite 解決方案的加速。借助 RISC-V 處理器,用戶(hù)還能夠創(chuàng )建自定義指令,這些指令可用作 AI 推理后的預處理或后處理的一部分,從而創(chuàng )建出響應速度更快、更具確定性的解決方案。 要開(kāi)始 AI 實(shí)現,第一步是探索 Efinix 模型庫,這是一個(gè)已針對其終端技術(shù)優(yōu)化的 AI/ML 模型庫。對于使用 Efinix 器件的開(kāi)發(fā)人員,可以訪(fǎng)問(wèn)該模型庫,并使用 Jupyter Notebooks 或 Google Colab 來(lái)訓練網(wǎng)絡(luò )。訓練網(wǎng)絡(luò )后,便可使用 TensorFlow Lite 轉換器將其從浮點(diǎn)模型轉換為量化模型。 轉入 TensorFlow Lite 格式后,可以利用 Efinix 的 tinyML 加速器在 RISC-V 解決方案上創(chuàng )建可部署的解決方案。tinyML 生成器使開(kāi)發(fā)人員能夠定制加速器的實(shí)現并生成項目文件。當以這種方式部署時(shí),加速可達 4 至 200 倍,具體取決于所選的架構和定制方案。 總結 憑借獨特的 XLR 結構,Efinix 器件可為開(kāi)發(fā)人員提供靈活性。該工具鏈不僅能實(shí)現 RTL 設計,還能實(shí)現部署軟核 RISC-V 處理器的復雜 SoC 解決方案。AI/ML 解決方案建立在軟核 SoC 之上,可以實(shí)現 ML 推理的部署。 |