【 聲明:版權所有,歡迎轉載,請勿用于商業用途。 聯系信箱:feixiaoxing @163.com】
? ? ? ? 我們之所以選用zynq開發板,就在于它支持arm軟件開發,也支持fpga開發,甚至可以運行linux,這是之前沒有過的體驗。實際開發中,我們就可以把業務和邏輯放在arm上,加速部分放在fpga上,各自發揮自己的優勢,最大限度使用好zynq芯片。和之前zynq只有zedboard開發板相比較,現在zynq出了很多的板子,那么應該怎么選擇呢?
1、價格不必太貴
? ? ? ? 建議一開始學的時候,價格不要太貴。便宜的zynq,例如7010、7020,價格都不是很貴。但是7035以上,那就是另外一個價格體系了。在我們還沒有靈活掌握zynq的時候,不需要買更貴的zynq開發板。等真正有需求之后,特別是來自客戶的需求,再來買也是可以的。
2、買學習資料多的開發板
? ? ? ? 很多開發板本身大同小異。但是對應的開發資料卻差別很大,原則上我們盡量選用那些開發資料比較多的板子,這樣學習起來稍微容易一點。本身zynq功能強大,可以mcu開發、fpga開發、linux驅動開發,還能單核arm開發、多核arm開發、rtos開發,所以學習難度還是比較大的。這個時候學習資料多少的差異,就體現出來了。不管是軟件往fpga轉,還是fpga往軟件轉,資料方面肯定是越多越好。
3、外圍電路板用的時候再買
? ? ? ? 一般廠家除了核心板、底板之外,還會提供外圍電路板,比如ad、da轉板,還有屏幕子板,甚至還有camra子板等等,這些不是不重要,只是說如果最終用到了再買,也是可以的。實在是沒有必要一下子湊齊。
4、了解板子中ps和pl的布局
? ? ? ? zynq本身作為arm和fpga的集大成者,其靈活性是它的優點,但是也因為它太靈活了,所以我們買板子的時候,一定要看清它的ps和pl布局。本身ps內部集成了很多的硬核ip,所以外設部分盡可能復用這些ip,實在是資源有限的情況下,再去用pl開發外設ip。大部分pl,其實應該用來做算法操作的。
5、熟練掌握原理圖部分
? ? ? ? 知道了ps和pl的部署之后,接下來就是要讀懂原理圖。soc在哪,ddr在哪,以及spi flash、eth phy、hdmi在什么地方,這些都要做到心中有數。另外因為我們需要開發ps和pl,ps中的端口如何映射的,pl有哪些空閑端口可以使用,clock在什么地方,時鐘多少,這些都是可以從電路上找到的。
6、軟硬結合是我們學習zynq的唯一目的
? ? ? ? 很多的開發板,都會讓你開始學fpga,然后是sdk,接著是hls、linux和pynq。這樣學雖然內容比較多,但是脫離了我們學習zynq的根本目的。真正要學會的,是用zynq去解決mcu、arm soc、純fpga不好處理的問題,畢竟arm和fpga合二為一,arm直接通過總線就可以訪問fpga,效率還是高很多。如果只是把zynq當成是mcu、soc、fpga來使用,甚至只是用zynq來學習linux驅動、qt開發,就有點本末倒置了。畢竟即使不配置pl,使用ps也可以讓linux跑起來,但是這樣就意義不大了。
? ? ? ? 實際最佳使用zynq的方法,就是arm做業務和邏輯,至于是bare mental,還是rtos、linux,這不重要,選擇os只是為了選擇后面的生態。接著發現業務的性能瓶頸,這部分用pl實現,等pl做好了ip之后,就可以把ip集成到block design里面,為arm所調用。中間當然也會涉及到dma數據的傳輸,但是即使這樣,也比純arm處理數據效率快很多,這樣才能最大程度發揮zynq的優勢和特點。