之前我們已經(jīng)向大家介紹了全可編程的Zynq SoC平臺(tái)應(yīng)用開(kāi)發(fā)所需的一系列“神器”,如Vivado、Xilinx SDK、PetaLinux等。那么這是否意味著在Zynq開(kāi)發(fā)的過(guò)程中就會(huì)是“一馬平川”呢?
讓我們先來(lái)看看一個(gè)典型的Zynq SoC開(kāi)發(fā)流程(如圖1):開(kāi)發(fā)者首先需要對(duì)軟硬件進(jìn)行分區(qū),即確定系統(tǒng)哪些部分放入PL(可編程邏輯)中進(jìn)行硬件加速,哪些部分在PS(處理器系統(tǒng))中用軟件實(shí)現(xiàn);接下來(lái),要完成軟/硬件之間的連接,包括使用怎樣的DataMover、PS與PL之間的接口如何配置等;之后要完成配套的軟件驅(qū)動(dòng)和應(yīng)用程序的開(kāi)發(fā)。
整個(gè)流程通常需要一個(gè)完整團(tuán)隊(duì)的通力合作,并不簡(jiǎn)單。而且,開(kāi)發(fā)工作本身就是一個(gè)探索性的過(guò)程,很多情況下上述所有設(shè)計(jì)工作完成之后人們才發(fā)現(xiàn),系統(tǒng)在吞吐量、延遲或面積等方面還需要進(jìn)一步的優(yōu)化,這就意味著“軟硬件區(qū)分——硬件架構(gòu)搭建——驅(qū)動(dòng)和應(yīng)用軟件開(kāi)發(fā)”整個(gè)流程要重新來(lái)過(guò)。如此經(jīng)過(guò)多次迭代,才能獲得一個(gè)令人滿意的設(shè)計(jì)方案。而因此卻可能造成開(kāi)發(fā)周期的不可控,嚴(yán)重拖延Time-To-Market。這無(wú)疑是一個(gè)很大的挑戰(zhàn)。

圖1,傳統(tǒng)的Zynq SoC開(kāi)發(fā)流程
那么Zynq開(kāi)發(fā)流程,有沒(méi)有捷徑可走呢?Xilinx給出的答案是:有!這個(gè)捷徑就是SDSoC。
SDSoC是Xilinx推出的一個(gè)基于簡(jiǎn)便易用的Eclipse集成設(shè)計(jì)環(huán)境(IDE)的工具套件,它支持Zynq-7000全可編程SoC和Zynq UltraScale+ MPSoC,以及MicroBlaze處理器,可以為開(kāi)發(fā)者提供類似嵌入式 C/C++/OpenCL 應(yīng)用的開(kāi)發(fā)體驗(yàn)。
如果感覺(jué)上面的描述比較抽象,那就讓我們來(lái)看看使用SDSoC對(duì)Zynq開(kāi)發(fā)流程的影響和改變(如圖2)。應(yīng)用SDSoC之后,工具可以自動(dòng)搭建軟硬件之間的通訊部分,包括DataMover、軟件驅(qū)動(dòng)程序和硬件連接接口,還可以將整個(gè)開(kāi)發(fā)過(guò)程抽象到C/C++的應(yīng)用層面,讓開(kāi)發(fā)者以C/C++為起點(diǎn)來(lái)進(jìn)行算法開(kāi)發(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ū)方案,或是通過(guò)pragma等手段來(lái)指導(dǎo)工具產(chǎn)生不同的系統(tǒng)配置等方法來(lái)進(jìn)一步優(yōu)化設(shè)計(jì),實(shí)現(xiàn)快速的迭代優(yōu)化。而整個(gè)開(kāi)發(fā)過(guò)程都是在SDSoC這個(gè)統(tǒng)一的IDE中完成的,流程大為簡(jiǎn)化。有分析認(rèn)為使用SDSoC進(jìn)行Zynq系統(tǒng)開(kāi)發(fā),可以將整體開(kāi)發(fā)時(shí)間從數(shù)周縮短至數(shù)日,甚至數(shù)個(gè)小時(shí)。

圖2,采用SDSoC后Zynq SoC開(kāi)發(fā)流程發(fā)生的改變
之所以能夠達(dá)到這樣的“境界”,與SDSoC的4個(gè)關(guān)鍵特性不無(wú)關(guān)系:
類似嵌入式開(kāi)發(fā)的體驗(yàn):SDSoC提供了一個(gè)大大簡(jiǎn)化的C / C++編程體驗(yàn),用戶可以在嵌入式開(kāi)發(fā)人員所熟悉的基于Eclipse的IDE上完成整個(gè)Zynq SoC的開(kāi)發(fā)。
系統(tǒng)級(jí)的特性描述:幾分鐘內(nèi)快速完成性能估算與面積估算,自動(dòng)監(jiān)測(cè)高速緩存、存儲(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)的庫(kù)以加速開(kāi)發(fā)。
面向平臺(tái)開(kāi)發(fā)人員的專家級(jí)使用模型:為用戶和第三方平臺(tái)開(kāi)發(fā)者提供了流程支持,通過(guò)提供平臺(tái)描述文件的的手段,可以使他們自己設(shè)計(jì)的包含有Zynq SoC的開(kāi)發(fā)板在SDSoC開(kāi)發(fā)環(huán)境中使用。

圖3,SDSoC開(kāi)發(fā)環(huán)境的特點(diǎn)及流程
因此對(duì)于一個(gè)Zynq開(kāi)發(fā)者來(lái)說(shuō),熟悉和掌握SDSoC也是一門(mén)必修課。在日前由安富利舉辦的MiniZed Speedway培訓(xùn)活動(dòng)中,安富利的專家講師就為學(xué)員設(shè)置了這樣一個(gè)有關(guān)SDSoC的培訓(xùn)單元,幫助大家理解Xilinx SDSoC工具的概念,并通過(guò)實(shí)驗(yàn)環(huán)節(jié),讓學(xué)員為一個(gè)提供的平臺(tái)創(chuàng)建一個(gè)設(shè)計(jì),同時(shí)為安富利MiniZed創(chuàng)建一個(gè)客戶SDSoC平臺(tái)。通過(guò)學(xué)習(xí)和實(shí)際操作,學(xué)員可以直觀地體驗(yàn)到如何利用SDSoC加速一個(gè)算法,這種經(jīng)驗(yàn)對(duì)于開(kāi)發(fā)者未來(lái)開(kāi)發(fā)包含定制化算法的客戶SDSoC平臺(tái)并通過(guò)SDSoC加速,大有裨益。
-
soc
+關(guān)注
關(guān)注
40文章
4619瀏覽量
230070 -
可編程
+關(guān)注
關(guān)注
2文章
1332瀏覽量
41540
原文標(biāo)題:告訴你一條Zynq應(yīng)用開(kāi)發(fā)的捷徑!對(duì),就是SDSoC!
文章出處:【微信號(hào):AvnetAsia,微信公眾號(hào):安富利】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
RTOS怎么添加到ZYNQ SoC設(shè)計(jì)中?
典型的ZYNQ SoC結(jié)構(gòu)圖/系統(tǒng)框架
基于Zynq的嵌入式開(kāi)發(fā)流程
ZYNQ嵌入式系統(tǒng)的開(kāi)發(fā)流程
基于Xilinx Zynq SoC的“小傻瓜(Snickerdoodle)”開(kāi)發(fā)套件
將Zynq SoC上的兩個(gè)ARM Cortex
低成本 MiniZed Zynq SoC 開(kāi)發(fā)板
基于Zynq SoC的嵌入式視覺(jué)系統(tǒng)開(kāi)發(fā)流程詳解
使用Xilinx SDK進(jìn)行Zynq裸金屬應(yīng)用程序開(kāi)發(fā)
Zynq-7000 AP SoC提供業(yè)經(jīng)驗(yàn)證的IP及參考設(shè)計(jì)
Zynq-7000 All Programmable SoC的開(kāi)發(fā)工具概述
典型的ZYNQ開(kāi)發(fā)流程
一個(gè)典型的Zynq SoC開(kāi)發(fā)流程
評(píng)論