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