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

低成本 MiniZed Zynq SoC 開發(fā)板
基于Zynq SoC的嵌入式視覺系統(tǒng)開發(fā)流程詳解

如何將RTOS添加到ZYNQ SoC設(shè)計(jì)中

使用Xilinx SDK進(jìn)行Zynq裸金屬應(yīng)用程序開發(fā)
Zynq-7000 AP SoC提供業(yè)經(jīng)驗(yàn)證的IP及參考設(shè)計(jì)
典型的ZYNQ開發(fā)流程

評(píng)論