作者:Adam Taylor
編者按:全新的 FPGA 架構(gòu)方法帶來(lái)了更精細(xì)的控制和更大的靈活性,以滿足機(jī)器學(xué)習(xí) (ML) 和人工智能 (AI) 的需求。本系列文章包括兩部分,第 1部分介紹了 Efinix 一款此類架構(gòu)的產(chǎn)品,以及如何借助開(kāi)發(fā)板開(kāi)始使用該產(chǎn)品。本文是第 2 部分,討論了開(kāi)發(fā)板與外部器件和外設(shè)(如攝像頭)的連接,以及如何利用
FPGA 消除圖像處理的瓶頸。
從工業(yè)控制和安全到機(jī)器人、航空航天和汽車,F(xiàn)PGA 在許多應(yīng)用中扮演著重要角色。憑借可編程邏輯內(nèi)核的靈活性及其廣泛的接口能力,F(xiàn)PGA 在可以部署機(jī)器學(xué)習(xí)(ML) 的影像處理中的應(yīng)用日漸廣泛。由于其并行邏輯結(jié)構(gòu),F(xiàn)PGA 非常適合用來(lái)實(shí)現(xiàn)具有多個(gè)高速攝像頭接口的解決方案。此外,F(xiàn)PGA還能在邏輯中使用專門的處理管道,從而消除與基于 CPU 或 GPU 的解決方案相關(guān)的共享資源瓶頸。
本文將再次介紹 Efinix 的 Titanium FPGA,并探討該 FPGA 的 Ti180 M484開(kāi)發(fā)板附帶的參考圖像處理應(yīng)用。其目的是了解設(shè)計(jì)的構(gòu)成部分,并明確 FPGA 技術(shù)能夠消除哪些方面的瓶頸或?yàn)殚_(kāi)發(fā)人員帶來(lái)其他好處。
基于 Ti180 M484 的參考設(shè)計(jì)
從概念上看,該參考設(shè)計(jì)(圖 1)接收來(lái)自幾個(gè)移動(dòng)行業(yè)處理器接口 (MIPI) 攝像頭的圖像,在 LPDDR4x
中執(zhí)行幀緩沖,然后將圖像輸出到高清多媒體接口 (HDMI) 顯示器。利用一個(gè) FPGA 夾層卡 (FMC) 和開(kāi)發(fā)板上的四個(gè) Samtec QSE接口提供攝像頭輸入和 HDMI 輸出。
FMC 轉(zhuǎn) QSE 擴(kuò)展卡與 HDMI 子卡配合使用,提供輸出視頻路徑,而 3 個(gè) QSE 連接器用于與 DFRobot SEN0494 MIPI攝像頭連接。如果沒(méi)有多個(gè) MIPI 攝像頭,可以使用單個(gè)攝像頭,通過(guò)回環(huán)單個(gè)攝像頭通道來(lái)模擬其他攝像頭。
從高層次看,這種應(yīng)用可能看起來(lái)很簡(jiǎn)單。但是要以高幀率接收多個(gè)高清 (HD) MIPI 流頗具挑戰(zhàn)性。這恰好是 FPGA技術(shù)的優(yōu)勢(shì)所在,因?yàn)樗试S設(shè)計(jì)人員并行利用多個(gè) MIPI 流。
該參考設(shè)計(jì)的架構(gòu)利用了 FPGA 的并行和順序處理結(jié)構(gòu)。并行結(jié)構(gòu)用于實(shí)現(xiàn)圖像處理管道,而 RISC-V 處理器提供用于 FPGA 查詢表 (LUT)的順序處理。
在許多基于 FPGA的圖像處理系統(tǒng)中,圖像處理管道可以分成兩個(gè)部分,即輸入和輸出流。輸入流連接到攝像頭/傳感器接口,各種處理功能則應(yīng)用至傳感器輸出。這些處理功能包括 Bayer轉(zhuǎn)換、自動(dòng)白平衡和其他增強(qiáng)功能。在輸出流中,準(zhǔn)備圖像用于顯示。這包括改變顏色空間(例如從 RGB 更改為 YUV),以及后處理為所需的輸出格式,如HDMI。
通常,輸入圖像處理鏈以傳感器的像素時(shí)鐘頻率運(yùn)行。這與輸出鏈的時(shí)序不同,輸出鏈以輸出顯示頻率進(jìn)行處理。
幀緩沖區(qū)用于連接輸入和輸出處理管道,它通常存儲(chǔ)在 LPDDR4x等外部高性能存儲(chǔ)器中。該幀緩沖區(qū)在輸入和輸出管道之間去耦,從而允許以適當(dāng)?shù)臅r(shí)鐘頻率通過(guò)直接內(nèi)存訪問(wèn)來(lái)訪問(wèn)幀緩沖區(qū)。
Ti180 參考設(shè)計(jì)采用了與上述概念類似的方法。輸入圖像處理管道實(shí)現(xiàn)了一個(gè) MIPI 攝像頭串行接口 2 (CSI-2) 接收器知識(shí)產(chǎn)權(quán) (IP)內(nèi)核,該內(nèi)核建立在支持 MIPI 物理層 (MIPI D-PHY) 的 Titanium FPGA 輸入/輸出 (I/O) 之上。MIPI接口頗為復(fù)雜,因?yàn)槌说退俸透咚?a target="_blank">通信,它還在同一差分對(duì)上同時(shí)使用單端和差分信號(hào)。將 MIPI D-PHY 集成到 FPGA I/O中,降低了電路板設(shè)計(jì)的復(fù)雜性,同時(shí)還可簡(jiǎn)化物料清單 (BOM)。
收到攝像頭的圖像流后,參考設(shè)計(jì)會(huì)將 MIPI CSI-2 RX 的輸出轉(zhuǎn)換為高級(jí)可擴(kuò)展接口 (AXI) 流。AXI
流屬于單向高速接口,提供從主設(shè)備到從設(shè)備的數(shù)據(jù)流。除了在主設(shè)備和從設(shè)備之間傳輸?shù)奈帐中盘?hào)(tvalid 和tready),還提供了邊帶信號(hào)。這些邊帶信號(hào)可用于傳遞圖像時(shí)序信息,如幀的開(kāi)始和行的結(jié)束。
AXI 流是圖像處理應(yīng)用的理想選擇,使 Efinix 能夠提供一系列的圖像處理 IP,然后可以根據(jù)應(yīng)用的需要輕松集成到處理鏈中。
接收后,MIPI CSI-2 圖像數(shù)據(jù)和時(shí)序信號(hào)被轉(zhuǎn)換為 AXI 流,并輸入到直接內(nèi)存訪問(wèn) (DMA) 模塊,該模塊將圖像幀寫入 LPDDR4x并充當(dāng)幀緩沖區(qū)。
此 DMA 模塊在 Sapphire 片上系統(tǒng) (SoC) 內(nèi) FPGA 中的 RISC-V 內(nèi)核控制下運(yùn)行。該 SoC 提供停止和開(kāi)始 DMA寫入等控制功能,此外還為 DMA 寫入通道提供必要的信息,以便將圖像數(shù)據(jù)正確寫入
LPDDR4x。這包括有關(guān)存儲(chǔ)器位置的信息以及圖像寬度和高度(以字節(jié)為單位)。
該參考設(shè)計(jì)中的輸出通道在 RISC-V SoC 的控制下從 LPDDR4x 幀緩沖區(qū)讀取圖像信息。數(shù)據(jù)作為 AXI 流從 DMA IP輸出,然后從傳感器提供的 RAW 格式轉(zhuǎn)換為 RGB 格式(圖 2),并準(zhǔn)備通過(guò)板載 Analog Devices 的 ADV7511 HDMI發(fā)射器輸出。
借助 DMA,Sapphire SoC RISC-V 也能夠訪問(wèn)存儲(chǔ)于幀緩沖區(qū)中的圖像,以及統(tǒng)計(jì)和圖像信息摘要。Sapphire SoC 還能將覆蓋層寫入LPDDR4x 中,以便與輸出的視頻流合并。
現(xiàn)代 CMOS 圖像傳感器 (CIS) 有幾種工作模式,可配置為提供片上處理,以及幾種不同的輸出格式和時(shí)鐘方案。通常通過(guò) I2C 接口提供這種配置。在該Efinix 參考設(shè)計(jì)中,與 MIPI 攝像頭的 I2C 通信由 Sapphire SoC RISC-V 處理器提供。
在 Titanium FPGA 中集成 RISC-V 處理器減少了最終解決方案的整體尺寸,因?yàn)椴恍枰渴饡?huì)增加設(shè)計(jì)風(fēng)險(xiǎn)的復(fù)雜 FPGA狀態(tài)機(jī),也不需要會(huì)增加 BOM 的外部處理器。
集成該處理器后,還可以支持額外的 IP 與 MicroSD 卡進(jìn)行通信。這能夠支持可能需要存儲(chǔ)圖像以供日后分析的現(xiàn)實(shí)應(yīng)用。
總的來(lái)說(shuō),Ti180 參考設(shè)計(jì)的架構(gòu)經(jīng)過(guò)優(yōu)化,可實(shí)現(xiàn)緊湊、低成本但高性能的解決方案,使開(kāi)發(fā)人員能夠通過(guò)系統(tǒng)集成降低 BOM 成本。
參考設(shè)計(jì)的主要優(yōu)點(diǎn)之一是可用于在定制硬件上啟動(dòng)應(yīng)用開(kāi)發(fā),使開(kāi)發(fā)人員能夠利用設(shè)計(jì)的關(guān)鍵元素,并以此為基礎(chǔ)進(jìn)行所需的定制。這包括能夠利用 Efinix 的TinyML 流程來(lái)實(shí)現(xiàn)運(yùn)行于 FPGA 上的視覺(jué) TinyML 應(yīng)用。這既可利用 FPGA 邏輯的并行特性,又可輕松地將自定義指令添加至 RISC-V處理器中,從而能夠在 FPGA 邏輯內(nèi)創(chuàng)建加速器。
實(shí)現(xiàn)
正如第 1 部分所述,Efinix 架構(gòu)的獨(dú)特之處在于,它使用可交換邏輯和路由 (XLR)單元來(lái)提供路由和邏輯功能。像上述參考設(shè)計(jì)這樣的視頻系統(tǒng)屬于邏輯和路由都很復(fù)雜的混合系統(tǒng):需要大量的邏輯來(lái)實(shí)現(xiàn)圖像處理功能,還需要廣泛的路由來(lái)以所需的頻率連接IP 單元。
該參考設(shè)計(jì)使用了器件內(nèi)約 42% 的 XLR 單元,留下了充足的空間來(lái)添加內(nèi)容,包括邊緣 ML 等定制應(yīng)用。
塊 RAM 和數(shù)字信號(hào)處理 (DSP) 塊的使用也非常高效,只使用了 640 個(gè) DSP 塊中的 4 個(gè)和 40% 的存儲(chǔ)塊(圖 3)。
在器件 IO 上,LPDDR4x 的 DDR 接口用于為 Sapphire SoC 提供應(yīng)用存儲(chǔ)器以及提供圖像幀緩沖區(qū)。所有器件專用的 MIPI 資源與50% 的鎖相環(huán)一起使用(圖 4)。
通用 I/O (GPIO) 用于提供 I2C 通信以及幾個(gè)連接到 Sapphire SoC 的接口,包括 NOR FLASH、USB UART 和 SD卡。HSIO 用于向 ADC7511 HDMI 發(fā)射器提供高速視頻輸出。
采用 FPGA 進(jìn)行設(shè)計(jì)的一個(gè)關(guān)鍵因素是,不僅要在 FPGA 中實(shí)現(xiàn)和擬合設(shè)計(jì),還要能夠在 FPGA內(nèi)放置邏輯設(shè)計(jì),并在路由時(shí)達(dá)到所需的時(shí)序性能。
單時(shí)鐘域 FPGA 設(shè)計(jì)的時(shí)代已經(jīng)一去不復(fù)返了。在 Ti180參考設(shè)計(jì)中,有幾個(gè)不同的時(shí)鐘,都以高頻率運(yùn)行。最終時(shí)序表顯示了系統(tǒng)內(nèi)時(shí)鐘達(dá)到的最大頻率。在此表中也可以看到時(shí)鐘約束中要求的時(shí)序性能(圖 5),其中 HDMI輸出時(shí)鐘的最大時(shí)鐘頻率為 148.5 MHz。
針對(duì)時(shí)鐘約束的時(shí)序?qū)崿F(xiàn)顯示了 Titanium FPGA XLR 結(jié)構(gòu)的潛力,因?yàn)樗鼫p少了可能的路由延遲,從而提高了設(shè)計(jì)性能(圖 6)。
總結(jié)
Ti180 M484 參考設(shè)計(jì)清楚地展示了 Efinix FPGA 的能力,尤其是 Ti180。該設(shè)計(jì)利用幾個(gè)獨(dú)特的 I/O
結(jié)構(gòu)來(lái)實(shí)現(xiàn)復(fù)雜的圖像處理路徑,支持多個(gè)傳入的 MIPI 流。此圖像處理系統(tǒng)在軟核 Sapphire SoC的控制下運(yùn)行,實(shí)現(xiàn)了該應(yīng)用必需的順序處理元素。
-
FPGA
+關(guān)注
關(guān)注
1629文章
21729瀏覽量
602979 -
HDMI
+關(guān)注
關(guān)注
32文章
1694瀏覽量
151861 -
AI
+關(guān)注
關(guān)注
87文章
30728瀏覽量
268885 -
開(kāi)發(fā)板
+關(guān)注
關(guān)注
25文章
5032瀏覽量
97371 -
ML
+關(guān)注
關(guān)注
0文章
149瀏覽量
34642
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論