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