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