什么是SDSoC平臺(tái)?SDSoC的開發(fā)工作
在理解了SDSoC“平臺(tái)”的概念之后(詳見《SDSoC上手必讀:什么是SDSoC平臺(tái)?》),現(xiàn)在我們就可以開始使用SDSoC進(jìn)行開發(fā)工作了。
在下載并安裝了SDSoC之后,細(xì)心的人會(huì)在文件目錄中發(fā)現(xiàn)Vivado、Vivado_HLS和SDK等開發(fā)工具子目錄。熟悉Zynq FPGA SoC開發(fā)流程的工程師對(duì)這幾個(gè)工具肯定不陌生:
Vivado是硬件開發(fā)工具,可為設(shè)計(jì)團(tuán)隊(duì)提供實(shí)現(xiàn)基于C的設(shè)計(jì)、重用優(yōu)化、IP子系統(tǒng)復(fù)用、集成自動(dòng)化以及設(shè)計(jì)收斂加速所需的工具和方法,可幫助設(shè)計(jì)人員以高層次抽象形式開展工作,加速高層次設(shè)計(jì)、驗(yàn)證和實(shí)現(xiàn)。
作為Vivado的一個(gè)子集,Vivado HLS是連接高級(jí)抽象語(yǔ)言與底層硬件描述語(yǔ)言的高階綜合工具。
SDK是軟件開發(fā)工具,用來(lái)完成應(yīng)用程序的創(chuàng)建、開發(fā)、調(diào)試等工作,它集成了豐富的工具和軟件包,可以與硬件平臺(tái)設(shè)計(jì)工具Vivado無(wú)縫結(jié)合。
在經(jīng)典的Zynq平臺(tái)開發(fā)模式中,會(huì)先由硬件工程師利用Vivado創(chuàng)建硬件平臺(tái),然后將數(shù)據(jù)文件導(dǎo)入到SDK中,交由軟件工程師完成后續(xù)的軟件開發(fā)工作。而SDSoC將上述開發(fā)工具整合到一個(gè)開發(fā)環(huán)境中,開發(fā)者再也不用在多個(gè)軟件、工具之間來(lái)回跳轉(zhuǎn),只要一個(gè)集成開發(fā)環(huán)境(IDE)就能完成所有必須的開發(fā)工作,開發(fā)效率大大提升。
硬件平臺(tái)
具體地講,SDSoC硬件平臺(tái)(HPFM)是使用Vivado設(shè)計(jì)和調(diào)試的,就像一個(gè)常規(guī)的Vivado項(xiàng)目。設(shè)計(jì)時(shí),工程師需要確保時(shí)序符合基礎(chǔ)平臺(tái)(base platform)上具有正確約束的IP的要求。
硬件平臺(tái)工程師要去定義SDSoC應(yīng)用中所需要的硬件資源。為此,賽靈思創(chuàng)建了一套特定的TCL命令。下面是TCL命令的一個(gè)范例。
軟件平臺(tái)
SDSoC軟件平臺(tái)(SPFM)的創(chuàng)建,是利用SDK/ Ubuntu虛擬機(jī)設(shè)計(jì)和調(diào)試實(shí)現(xiàn)的,就像一個(gè)常規(guī)的SDK項(xiàng)目。工程師要確保所需的所有驅(qū)動(dòng)程序完好定義并正常工作。
在發(fā)布之前,還要對(duì)平臺(tái)進(jìn)行正確測(cè)試。同時(shí),軟件平臺(tái)工程師要定義會(huì)使用什么軟件。這包括測(cè)試和工作鏈接腳本(linker script)、OS定義(根據(jù)需要),以及為OS建立所需的標(biāo)志/命令(flags/commands)。
平臺(tái)創(chuàng)建工具:SDSPFM
為了完成上述的平臺(tái)創(chuàng)建步驟,我們會(huì)用到賽靈思提供的一個(gè)名為“SDSPFM”的工具。平臺(tái)工程師需要按照上文的描述,創(chuàng)建所需的Vivado硬件文件、TCL腳本,以及建立軟件平臺(tái)所需的組件。
SDSPFM的圖形化用戶界面如下:
*Content Copyright Xilinx
用戶界面被分為四個(gè)部分:基本信息、處理器信息、啟動(dòng)信息及OS數(shù)據(jù),和編譯器設(shè)置。
基本信息:有關(guān)平臺(tái)創(chuàng)建的基本信息。
處理器信息:SDSoC項(xiàng)目所用的處理器類型、數(shù)量、內(nèi)核數(shù)量。
啟動(dòng)信息及OS數(shù)據(jù):所有OS特定文件。
編譯器設(shè)置:平臺(tái)的包含路徑、庫(kù)。
下圖展示了一個(gè)SDSoC平臺(tái)的整體結(jié)構(gòu)和組成部分,圖中顯示出平臺(tái)中各個(gè)組件以及組件之間的相互關(guān)系。
*Content Copyright Xilinx
創(chuàng)建好SDSoC平臺(tái),我們就可以按照SDSoC創(chuàng)新性的開發(fā)流程開始具體的設(shè)計(jì)工作了,這時(shí)大家才能體會(huì)到SDSoC強(qiáng)大的功能,以及它能夠?yàn)槲覀儙?lái)的工作效率的提升。