前言
2022年11月30日,OpenAI推出聊天機器人ChatGPT。僅用了2個月,月度活躍用戶就達到了1億人。2024年2月15日,文本生成視頻應用程序Sora橫空出世,強勢登上各大媒體熱搜榜。對此,眾人紛紛感嘆,人工智能時代已經(jīng)來臨!
人工智能是個大的學科領(lǐng)域,而ChatGPT和Sora則是人工智能領(lǐng)域下的機器學習類應用程序。機器學習,是使用一定的算法,讓計算機能夠從數(shù)據(jù)中得出模式和規(guī)律,并進行自主學習和改進,可以在沒有明確編程的情況下做出決策或預測的行為。機器學習在我們的生活中隨處可見,如語音識別、人臉識別、自動駕駛等,改變著我們生活中的方方面面。
目前常見的AI芯片有GPU、FPGA和ASIC。機器學習應用的爆發(fā),使得原本小眾的FPGA,因其高算力、低功耗和高靈活性,迎來了快速的發(fā)展,市場需求也成倍地增長。
本文將介紹一款基于AMD Xilinx Zynq UltraScale+ MPSoC,低成本、高性價比的FPGA開發(fā)板——Avnet(安富利)ZUBoard 1CG。
- 產(chǎn)品介紹
如圖,ZUBoard 1CG FPGA開發(fā)板外形尺寸為135.00 x 75.00 mm,大概就是成人巴掌大小,非常精致。背面有5個軟膠腳墊,方便放置。整體元器件布局也很整齊,看起來很舒服。
?
ZUBoard 1CG功能豐富、靈活性高、價格合理、擁有大量的參考設(shè)計和學習資料,可以讓工程師盡情地學習和實驗AMD Xilinx Zynq UltraScale+體系結(jié)構(gòu)。
ZUBoard 1CG開發(fā)板具有81K可編程邏輯單元,雙核Arm Cortex-A53 和雙核Arm Cortex-R5F,1GB的ISSI LPDDR4,可設(shè)置的256Mb ISSI QSPI閃存或microSD卡啟動選項。4個ZU+ PS GTR收發(fā)器、18個PS MIO和69個PL I/O都通過三個Samtec擴展連接器和一個Click Board座子引出來了。
主要特性:
- AMD ZU+MPSoC XCZU1CG-1SBVA484E
- 雙A53 APU和雙R5 RPU
- 56KB片上存儲器
- 81900個FPGA邏輯單元
- ISSI 1GB LPDDR4,帶片上ECC(錯誤檢查和糾正技術(shù))
- 可選的ISSI 256Mb QSPI或microSD卡啟動
- PetaLinux環(huán)境可供下載
- Microchip 10/100/1000有線以太網(wǎng)PHY和MAC ID EEPROM
- Microchip USB 2.0 PHY
- Microchip USB-C輸入電源控制
- Dialog GreenPAK開/關(guān)控制器和電源時序器
- TDK μPOL電源模塊
- 板載JTAG和UART調(diào)試接口
- STMicroelectronics溫度和壓力傳感器
- 支持后備電池實時時鐘和FPGA比特流加密,帶ECS和自定義電源
- Samtec連接器實現(xiàn)的擴展
- 用戶可控制的RGB三色燈和單色LED
- 用戶可控制的滑動開關(guān)和按鈕I/O
二、外設(shè)介紹
圖中已經(jīng)非常清楚地標識出了各種外設(shè)及接口,在此筆者就不一一介紹了,挑幾個常用的接口介紹一下:
- 15V USB C Power Input(J15),這個接口是電源輸入口,官方的建議是15V/3A,板上有個Microchip UPD301C/KYX USB PD控制器,有些筆記本5V/9V/15V/20V自適應輸出的適配器,是剛好符合要求的。沒有的話也沒關(guān)系,某寶搜“45W PD充電頭”,找有5V/9V/15V/20V電壓輸出的品牌貨(盡量不要用雜牌),也是沒有問題的。
- USB JTAG/UART(J11),JTAG/串口調(diào)試用的,板載FTDI FT2232HL USB轉(zhuǎn)串口芯片,所以只需要一根MicroUSB數(shù)據(jù)線就行了。注意不是串口線,也不是Type-C數(shù)據(jù)線。
- USB 2.0 Type A Ports(J13),這個可以接USB攝像頭用。
- Ethernet Connector(J11),RJ45網(wǎng)口座,接網(wǎng)線與電腦連接傳輸數(shù)據(jù)。
- microSD socket(J12),可以將裝載有系統(tǒng)的microSD卡插在此處,調(diào)整Boot mode switch(SW2),設(shè)置成SD卡啟動,就可以運行microSD卡中的系統(tǒng)了。
- Power ON/OFF button(SW7),電源開關(guān)按鈕,上電后,按一下開機啟動系統(tǒng),需要關(guān)機時,長按10秒。
- Reset button(SW6),復位按鈕,通常是開機連接串口后,串口軟件中看不到開機信息時,可以按這一下復位,重新啟動系統(tǒng),這樣就可以看到開機信息了。
- 開箱測試
hackster上目前發(fā)布了有20個左右關(guān)于ZUBoard 1CG開發(fā)板的project,包括Avnet官方和一些興趣愛好者的。內(nèi)容詳細,教程簡單,大大地降低了FPGA的上手難度。這里就以攝像頭識別手勢的project為例,展示一下這個開發(fā)板的玩法。
Project原文鏈接:
https://www.hackster.io/AlbertaBeef/asl-classification-with-vitis-ai-025765
- 準備工作
硬件部分:
- ZUBoard 1CG開發(fā)板
- 15V/3A Type-C接口電源
- micro USB數(shù)據(jù)線
- 網(wǎng)線
- USB攝像頭
- micro SD卡(16GB或以上)和讀卡器
- USB-A轉(zhuǎn)RJ45網(wǎng)口轉(zhuǎn)換器(選配,不帶網(wǎng)口的筆記本要用)
軟件部分:
- SD卡鏡像文件,可以在上面鏈接中找到下載,注意文件較大,解壓后約11GB。
- SD卡鏡像文件燒錄工具,推薦Win32DiskImager
- UART和SSH工具,推薦MobaXterm,一款軟件搞定2個工具
- OpenCV,顯示USB攝像頭內(nèi)容
看到這里,有些同學會說,你這都是些什么工具啊,F(xiàn)PGA設(shè)計工具都沒有,那還能學FPGA嗎?沒錯,學FPGA還需要用到設(shè)計工具,AMD FPGA有軟硬件開發(fā)工具——Vivado和Vitis,如果要做應用開發(fā)的話,還需要用到Petalinux。本次展示的project相當于學51單片機時,流水燈的hex文件已經(jīng)生成好了,直接下載到開發(fā)板看效果就行了。也就是說,即使你完全不懂FPGA,也可以將這個板卡當成一個小玩具來玩的。
接下來,我們先對板卡進行上電測試,確認各方面都是正常的。
- 新板首次上電測試
ZUBoard 1CG是通過網(wǎng)線和電腦連接在一起的,所以還需要對電腦網(wǎng)絡進行設(shè)置,保證電腦和開發(fā)板在同一網(wǎng)段上,以便網(wǎng)線連接開發(fā)板。
筆者用的是不帶網(wǎng)口的筆記本,wifi上網(wǎng),所以還需要用到一個USB轉(zhuǎn)網(wǎng)口的轉(zhuǎn)接器。這里用的是共享網(wǎng)絡的方法。如下圖,打開控制面板 – 網(wǎng)絡和Internet – 網(wǎng)絡連接,Wi-Fi是正在使用的網(wǎng)絡,Ethernet 4是網(wǎng)口轉(zhuǎn)接器。
右鍵Wi-Fi打開屬性,點“共享”,勾上“允許其他網(wǎng)絡用戶……”,家庭網(wǎng)絡連接選“Ethernet 4”,也就是把wifi網(wǎng)絡共享給網(wǎng)口轉(zhuǎn)接器,這里根據(jù)電腦的實際情況自行選擇。
網(wǎng)絡設(shè)置好之后,通過網(wǎng)線、USB數(shù)據(jù)線將板卡與電腦連接好,打開串口通信工具,波特率設(shè)置為115200。插上15V電源,按SW7按鈕開機,此時電腦會有串口連接提示。如果串口工具連接后開機信息顯示不全,可以再按一下SW6復位一下。
串口信息顯示如下:
此時開發(fā)板會獲得一個IP地址,這個地址每個板不一定相同。信息上還有提示可以在瀏覽器上輸入地址連接開發(fā)板,打開瀏覽器輸入地址,出現(xiàn)以下畫面,那么恭喜,這就表示板卡正常,電腦也已經(jīng)成功連接上板卡了,可以進行下一步,運行應用程序了。
- 運行手勢識別案例測試
(1)運行Win32DiskImager,將鏡像燒錄進SD卡。
(2)通過SW2更改開發(fā)板的啟動方式為SD卡,更改后如圖。
(3)USB數(shù)據(jù)線、網(wǎng)線與電腦連接,SD卡插入J12卡槽,USB攝像頭插入開發(fā)板USB-A口,打開串口工具,然后插入電源,等待串口工具上的開機信息停止。停止后會提示login,輸入root,回車即可。然后按照教程中的指令輸入,查詢app、DPU架構(gòu)是否正確,查詢ip地址,如圖所示。
其中查詢app和DPU架構(gòu),只需要在第一次運行的時候確認沒問題就行了,后續(xù)如果沒有什么變更的話,就不需要再運行了。比如USB攝像頭換成雙目攝像頭了,這個就需要重新變更確認的。ip地址每次都需要查詢確認一下。
(4)這時切換SSH,輸入IP地址,注意端口為22,打開SSH界面后,登錄root,輸入對應的指令,就會出現(xiàn)如下界面。最后一行輸入,回車后,就會運行手勢識別程序了。
(5)運行手勢識別程序的結(jié)果,如圖,可以根據(jù)不同的手勢,識別出對應字母或數(shù)字?,F(xiàn)在演示的手勢是按照已經(jīng)定義好的手勢,有興趣的同學可以自行研究代碼,自定義手勢對應的含義。比如手比出某個手勢,屏幕上直接顯示出“我愛xxx”,是不是感覺有點浪漫呢。
四、小結(jié)
以上可以看出,ZUBoard 1CG上手還是比較容易的,可玩性也很強,可以進行一些視頻和視覺處理、邊緣計算、AI算法、控制系統(tǒng)等方面的應用。
這時,專業(yè)的FPGA工程師可能會說了,這板卡性能沒多強啊,只能讓新手做入門學習和架構(gòu)體驗吧?其實不然,很多人認為FPGA是一種高端高成本的產(chǎn)品,事實上,低端FPGA在應用上也是非常廣泛的。
FPGA是并行的工作方式,比相同等級的ASIC運行速度更快,具有低延遲、高實時性及高可靠性,在多通道的控制、管理、信號處理上擁有明顯的優(yōu)勢。
FPGA高度可定制化,在非大批量生產(chǎn)的產(chǎn)品中,如醫(yī)療、航空等,相較于CPU、GPU、ASIC也是擁有較大的優(yōu)勢。
綜上所述,ZUBoard 1CG開發(fā)板低成本、高性價比,不僅適合做工程師入門學習、練手和驗證設(shè)計使用,也適合成本敏感,需要處理速度快,可自由設(shè)計,且不需要很高算力的產(chǎn)品應用。