之前我們已經(jīng)向大家介紹了全可編程的Zynq SoC平臺應用開發(fā)所需的一系列“神器”,如Vivado、Xilinx SDK、PetaLinux等。那么這是否意味著在Zynq開發(fā)的過程中就會是“一馬平川”呢?
讓我們先來看看一個典型的Zynq SoC開發(fā)流程(如圖1):開發(fā)者首先需要對軟硬件進行分區(qū),即確定系統(tǒng)哪些部分放入PL(可編程邏輯)中進行硬件加速,哪些部分在PS(處理器系統(tǒng))中用軟件實現(xiàn);接下來,要完成軟/硬件之間的連接,包括使用怎樣的DataMover、PS與PL之間的接口如何配置等;之后要完成配套的軟件驅(qū)動和應用程序的開發(fā)。
整個流程通常需要一個完整團隊的通力合作,并不簡單。而且,開發(fā)工作本身就是一個探索性的過程,很多情況下上述所有設計工作完成之后人們才發(fā)現(xiàn),系統(tǒng)在吞吐量、延遲或面積等方面還需要進一步的優(yōu)化,這就意味著“軟硬件區(qū)分——硬件架構(gòu)搭建——驅(qū)動和應用軟件開發(fā)”整個流程要重新來過。如此經(jīng)過多次迭代,才能獲得一個令人滿意的設計方案。而因此卻可能造成開發(fā)周期的不可控,嚴重拖延Time-To-Market。這無疑是一個很大的挑戰(zhàn)。
圖1,傳統(tǒng)的Zynq SoC開發(fā)流程
那么Zynq開發(fā)流程,有沒有捷徑可走呢?Xilinx給出的答案是:有!這個捷徑就是SDSoC。
SDSoC是Xilinx推出的一個基于簡便易用的Eclipse集成設計環(huán)境(IDE)的工具套件,它支持Zynq-7000全可編程SoC和Zynq UltraScale+ MPSoC,以及MicroBlaze處理器,可以為開發(fā)者提供類似嵌入式 C/C++/OpenCL 應用的開發(fā)體驗。
如果感覺上面的描述比較抽象,那就讓我們來看看使用SDSoC對Zynq開發(fā)流程的影響和改變(如圖2)。應用SDSoC之后,工具可以自動搭建軟硬件之間的通訊部分,包括DataMover、軟件驅(qū)動程序和硬件連接接口,還可以將整個開發(fā)過程抽象到C/C++的應用層面,讓開發(fā)者以C/C++為起點來進行算法開發(fā)。
在進行系統(tǒng)軟件/硬件劃分時,用戶僅需在圖形化界面中用鼠標單擊指定那些需要進行硬件加速的模塊即可。 而在將設計應用到Zynq系統(tǒng)上之后,如果發(fā)現(xiàn)性能不達標,可以使用SDSoC快速選擇不同的用于硬件加速的功能塊,探索不同的硬件/軟件分區(qū)方案,或是通過pragma等手段來指導工具產(chǎn)生不同的系統(tǒng)配置等方法來進一步優(yōu)化設計,實現(xiàn)快速的迭代優(yōu)化。而整個開發(fā)過程都是在SDSoC這個統(tǒng)一的IDE中完成的,流程大為簡化。有分析認為使用SDSoC進行Zynq系統(tǒng)開發(fā),可以將整體開發(fā)時間從數(shù)周縮短至數(shù)日,甚至數(shù)個小時。
圖2,采用SDSoC后Zynq SoC開發(fā)流程發(fā)生的改變
之所以能夠達到這樣的“境界”,與SDSoC的4個關(guān)鍵特性不無關(guān)系:
類似嵌入式開發(fā)的體驗:SDSoC提供了一個大大簡化的C / C++編程體驗,用戶可以在嵌入式開發(fā)人員所熟悉的基于Eclipse的IDE上完成整個Zynq SoC的開發(fā)。
系統(tǒng)級的特性描述:幾分鐘內(nèi)快速完成性能估算與面積估算,自動監(jiān)測高速緩存、存儲器以及總線利用率,方便探索和實現(xiàn)最佳的總體系統(tǒng)架構(gòu)。
全系統(tǒng)優(yōu)化編譯器:可將C/C++/OpenCL應用編譯成全功能Zynq SoC與MPSoC系統(tǒng),自動將軟件代碼放入可編程邏輯中加速,自動產(chǎn)生系統(tǒng)連接,以及相關(guān)的庫以加速開發(fā)。
面向平臺開發(fā)人員的專家級使用模型:為用戶和第三方平臺開發(fā)者提供了流程支持,通過提供平臺描述文件的的手段,可以使他們自己設計的包含有Zynq SoC的開發(fā)板在SDSoC開發(fā)環(huán)境中使用。
圖3,SDSoC開發(fā)環(huán)境的特點及流程
因此對于一個Zynq開發(fā)者來說,熟悉和掌握SDSoC也是一門必修課。在日前由安富利舉辦的MiniZed Speedway培訓活動中,安富利的專家講師就為學員設置了這樣一個有關(guān)SDSoC的培訓單元,幫助大家理解Xilinx SDSoC工具的概念,并通過實驗環(huán)節(jié),讓學員為一個提供的平臺創(chuàng)建一個設計,同時為安富利MiniZed創(chuàng)建一個客戶SDSoC平臺。通過學習和實際操作,學員可以直觀地體驗到如何利用SDSoC加速一個算法,這種經(jīng)驗對于開發(fā)者未來開發(fā)包含定制化算法的客戶SDSoC平臺并通過SDSoC加速,大有裨益。
-
soc
+關(guān)注
關(guān)注
38文章
4161瀏覽量
218157 -
可編程
+關(guān)注
關(guān)注
2文章
860瀏覽量
39811
原文標題:告訴你一條Zynq應用開發(fā)的捷徑!對,就是SDSoC!
文章出處:【微信號:AvnetAsia,微信公眾號:安富利】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論