新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 賽靈思 SDSoC 開(kāi)發(fā)環(huán)境介紹

賽靈思 SDSoC 開(kāi)發(fā)環(huán)境介紹

作者: 時(shí)間:2016-10-15 來(lái)源:網(wǎng)絡(luò) 收藏

前言

本文引用地址:http://www.butianyuan.cn/article/201610/307405.htm

隨著智能系統(tǒng)的進(jìn)步和“ 物聯(lián)網(wǎng)”的發(fā)展,以及人與物之間互聯(lián)互通的增強(qiáng),大多數(shù)新產(chǎn)品現(xiàn)在均采用了基于SoC 的開(kāi)發(fā)平臺(tái)。此類平臺(tái)便于企業(yè)以更快的速度將產(chǎn)品推向市場(chǎng),提高系統(tǒng)級(jí)效率,而且最重要的是便于實(shí)現(xiàn)持續(xù)的創(chuàng)新和產(chǎn)品差異化。

為實(shí)現(xiàn)投資回報(bào)最大化,設(shè)計(jì)團(tuán)隊(duì)必須精心選擇實(shí)現(xiàn)產(chǎn)品差異化的方法,同時(shí)還必須滿足日益增長(zhǎng)的市場(chǎng)需求和嚴(yán)苛的成本目標(biāo)要求。真正的平臺(tái)差異化依賴于新的軟件特性與新的硬件特性的組合。鑒于加速產(chǎn)品上市這一要求實(shí)際上在各層面均存在差異化,因此需要工具和環(huán)境能夠在不影響架構(gòu)和性能的條件下,用傳統(tǒng)ASSP 編程環(huán)境所擁有的完整性和易用性實(shí)現(xiàn)軟硬件的差異化。

就當(dāng)前的硬件差異化而言,許多平臺(tái)開(kāi)發(fā)人員使用FPGA 實(shí)現(xiàn)任意(Any-to-Any)互連。其中的可編程邏輯用于將平臺(tái)的處理器連接到PCIe® 和以太網(wǎng)等標(biāo)準(zhǔn)接口上。此外,許多系統(tǒng)也將FPGA 作為用于實(shí)現(xiàn)關(guān)鍵功能和算法加速的協(xié)處理器。與在標(biāo)準(zhǔn)處理器上運(yùn)行相比,可編程邏輯的并行架構(gòu)可提供高達(dá)100 倍以上的性能優(yōu)勢(shì)。

2011 年推出的Zynq®-7000 全可編程SoC 和目前新推出的Zynq UltraScale+™MPSoC,分別采用先進(jìn)的28nm 工藝節(jié)點(diǎn)和16nm 工藝節(jié)點(diǎn),將強(qiáng)大的ARM® 處理系統(tǒng)和可編程邏輯完美結(jié)合在了一起。隨著這兩款產(chǎn)品的問(wèn)世,賽靈思現(xiàn)可提供完全取代傳統(tǒng)處理器和特定領(lǐng)域?qū)S肧oC 的業(yè)經(jīng)驗(yàn)證的替代產(chǎn)品。Zynq SoC和MPSoC 能夠在降低材料清單成本的同時(shí)提升系統(tǒng)性能并降低系統(tǒng)功耗。

賽靈思SDSoC 開(kāi)發(fā)環(huán)境介紹

Zynq SoC 和MPSoC 與軟件工程師和FPGA 硬件工程師共同組成的設(shè)計(jì)團(tuán)隊(duì)可謂天合之作。但其對(duì)于硬件資源有限或欠缺的團(tuán)隊(duì)來(lái)說(shuō),使用起來(lái)很有難度,因?yàn)樾枰邆銻TL(VHDL或Verilog)開(kāi)發(fā)專業(yè)知識(shí)才能充分發(fā)揮該器件的優(yōu)勢(shì)。為解決這一難題,讓更多的設(shè)計(jì)團(tuán)隊(duì)能夠利用Zynq 器件的優(yōu)勢(shì),賽靈思推出了一種全新的C/C++ 開(kāi)發(fā)環(huán)境SDSoC™。SDSoC開(kāi)發(fā)環(huán)境是賽靈思SDxTM 系列開(kāi)發(fā)環(huán)境的第三大成員,能夠讓更廣泛的嵌入式軟件開(kāi)發(fā)人員發(fā)揮軟硬件“ 全可編程”器件的威力。

SDSoC 帶來(lái)的軟件定義機(jī)遇

C/C++ 環(huán)境提供類似ASSP 的編程體驗(yàn)

1.jpg

性能功耗比和任意互連

* 重點(diǎn)領(lǐng)域(例如圖像/ 視頻、SDR 等)

注:軟件可編程器件往往與FPGA 結(jié)合使用,以實(shí)現(xiàn)連接和協(xié)處理功能

SDSoC 開(kāi)發(fā)環(huán)境可通過(guò)兩種方式加速Zynq SoC 和MPSoC 開(kāi)發(fā)進(jìn)程。第一種是,軟件開(kāi)發(fā)人員借助賽靈思平臺(tái)、第三方平臺(tái)

或最終用戶平臺(tái),可以比使用傳統(tǒng)硬件/ 傳統(tǒng)軟件開(kāi)發(fā)流程更快地啟動(dòng)開(kāi)發(fā)。第二種是,SDSoC 可以消除在將可編程邏輯用作

軟件加速器時(shí)軟件團(tuán)隊(duì)和硬件團(tuán)隊(duì)之間常發(fā)生的反復(fù)變更,真正加速整體系統(tǒng)開(kāi)發(fā)進(jìn)程。

2.jpg

傳統(tǒng)開(kāi)發(fā)進(jìn)度

3.jpg

軟件定義開(kāi)發(fā)進(jìn)程

SDSoC 開(kāi)發(fā)環(huán)境可提供高度簡(jiǎn)化、類似ASSP C/C++ 的編程體驗(yàn),包括簡(jiǎn)便易用的Eclipse 集成設(shè)計(jì)環(huán)境(IDE)和用于異構(gòu)Zynq 平臺(tái)部署的綜合開(kāi)發(fā)平臺(tái)。SDSoC 配有業(yè)界首款C/C++ 全系統(tǒng)優(yōu)化的編譯器,可提供系統(tǒng)級(jí)的特性描述、可編程邏輯內(nèi)自動(dòng)軟件加速、自動(dòng)系統(tǒng)連接生成,以及用于加快編程速度的各種庫(kù)。此外,SDSoC 還可為客戶和第三方平臺(tái)開(kāi)發(fā)人員提供專門(mén)的流程,以便在SDSoC 開(kāi)發(fā)環(huán)境中使用這些平臺(tái)。

SDSoC 開(kāi)發(fā)環(huán)境

4.jpg

類似ASSP 的編程體驗(yàn)

SDSoC 可供系統(tǒng)和嵌入式軟件開(kāi)發(fā)人員使用,其提供的Eclipse IDE 可用于開(kāi)發(fā)運(yùn)行于裸機(jī)或Linux 和FreeRTOS 等操作系統(tǒng)上的C/C++ 應(yīng)用。SDSoC 可用于開(kāi)發(fā)各種完整的異構(gòu)多處理系統(tǒng),包括運(yùn)行在ARM/NEON 處理器上的軟件和可編程邏輯中的軟件加速器,還能將現(xiàn)有的HDL IP 模塊反復(fù)用作C 語(yǔ)言可調(diào)用的庫(kù)。與傳統(tǒng)的單獨(dú)以硬件為中心的流程和以軟件為中心的流程不同,這兩種流程可能會(huì)導(dǎo)致開(kāi)發(fā)延遲、系統(tǒng)架構(gòu)與性能的不確定性,而SDSoC 在開(kāi)發(fā)人員熟悉的嵌入式框架中實(shí)現(xiàn)快速系統(tǒng)特性描述和可編程邏輯軟件加速。

5.jpg

這款簡(jiǎn)便易用的IDE 可提供項(xiàng)目創(chuàng)建向?qū)?,供用戶選擇目標(biāo)平臺(tái)和操作系統(tǒng),并使用模板創(chuàng)建功能齊全的SDSoC 項(xiàng)目,作為構(gòu)建自己應(yīng)用的起點(diǎn)。

此外,SDSoC 還可為軟件團(tuán)隊(duì)提供簡(jiǎn)單的GUI 選項(xiàng),用于選擇在可編程邏輯中加速的功能。SDSoC 編譯器將生成準(zhǔn)備在目標(biāo)平臺(tái)板上運(yùn)行的所有必備硬件和軟件。

系統(tǒng)級(jí)的特性描述

以賽靈思軟件開(kāi)發(fā)套件(SDK)目前提供的高級(jí)軟件特性描述為基礎(chǔ),SDSoC 增添了系統(tǒng)級(jí)特性描述,用于快速系統(tǒng)(軟/ 硬件)性能估算。此外,還能快速生成并探索系統(tǒng)級(jí)架構(gòu),以實(shí)現(xiàn)最佳總體系統(tǒng)性能與功耗。

6.jpg

SDSoC 采用基于PC 采樣的非侵入式編譯器和標(biāo)準(zhǔn)的GPROF 編譯器,能幫助用戶配置其自身軟件應(yīng)用,以識(shí)別占用時(shí)間最多且適用于硬件加速的功能。

此外,SDSoC 還增添了快速系統(tǒng)(軟/ 硬件)性能和器件利用率估算功能,能夠迅速完成系統(tǒng)級(jí)架構(gòu)探索,以實(shí)現(xiàn)最佳性能、資源利用率和功耗。用戶可在可編程邏輯中設(shè)定待加速的功能,而且SDSoC 還能調(diào)用C/C++ 代碼來(lái)報(bào)告軟件周期、硬件周期、數(shù)據(jù)傳輸估算、總體應(yīng)用加速以及硬件資源利用率等情況。

充分利用基于平臺(tái)的性能估算流程,軟件開(kāi)發(fā)人員能夠在數(shù)分鐘內(nèi)迅速估算出將一項(xiàng)或多項(xiàng)軟件功能轉(zhuǎn)移到硬件中用于加速所產(chǎn)生的性能影響,而實(shí)際的硬件生成則需要一小時(shí)甚至更長(zhǎng)時(shí)間。

在目標(biāo)平臺(tái)上,SDSoC 使用由ARM CPU 提供的性能計(jì)數(shù)器,同時(shí)自動(dòng)插入AXI 性能監(jiān)控器(APM)到可編程邏輯中以采集硬件性能數(shù)據(jù),可為緩存、存儲(chǔ)器、軟件加速器和總線利用率提供自動(dòng)性能測(cè)量。運(yùn)行在平臺(tái)上的軟件可采集性能數(shù)據(jù),SDSoC 就使用該數(shù)據(jù)幫助識(shí)別系統(tǒng)中的性能瓶頸。這種快速的性能反饋能實(shí)現(xiàn)最佳代碼分區(qū),以滿足系統(tǒng)級(jí)性能和功耗需求,同時(shí)將開(kāi)發(fā)流程縮短數(shù)周時(shí)間。

全系統(tǒng)優(yōu)化的編譯器

SDSoC 還具有針對(duì)ARM 處理系統(tǒng)和可編程邏輯的全系統(tǒng)優(yōu)化的編譯器。SDSoC 旨在幫助系統(tǒng)架構(gòu)師和軟件團(tuán)隊(duì)使用“golden

C/C++ source”,通過(guò)生成最佳系統(tǒng)連接,快速完成宏架構(gòu)和微架構(gòu)的配置。這樣既能得到最佳系統(tǒng)連接和存儲(chǔ)器接口,還能快速完成設(shè)計(jì)空間探索,便于開(kāi)發(fā)人員綜合權(quán)衡性能、吞吐量、時(shí)延,同時(shí)保持較短的設(shè)計(jì)迭代時(shí)間。

該編譯器充分利用基礎(chǔ)的高層次綜合編譯器技術(shù),已有逾千名編程人員使用該技術(shù)生成了基于C/C++ 的高性能IP。將該編譯器與鏈接器結(jié)合使用,并基于目標(biāo)平臺(tái)以及在可編程邏輯中生成的用戶指定的自動(dòng)軟件加速功能,將程序轉(zhuǎn)換到完整的軟硬件系統(tǒng)中。

7.jpg

基于程序語(yǔ)法、程序分析、調(diào)度安排、系統(tǒng)連接的特性化硬件建模,SDSoC 能在可編程邏輯中生成用于軟件的加速器。SDSoC 充分利用平臺(tái)的板支持包(BSP)、目標(biāo)軟件加速功能、IP 和優(yōu)化庫(kù)及系統(tǒng)連接生成功能,構(gòu)建設(shè)計(jì)的可編程邏輯部分。該編譯器可自動(dòng)把系統(tǒng)編譯為完整的軟硬件系統(tǒng),包括用于可編程邏輯的比特流和用于配置目標(biāo)平臺(tái)的ARM 處理系統(tǒng)ELF 文件。

可編程邏輯中每個(gè)加速功能都可以作為獨(dú)立的線程運(yùn)行。SDSoC 可生成與之同步和保存原始程序語(yǔ)義所需的軟硬件組件,同時(shí)可實(shí)現(xiàn)任務(wù)級(jí)的并行和用流水線實(shí)現(xiàn)的通信和計(jì)算,以獲取高性能。

C/C++ 應(yīng)用源碼可包含多個(gè)加速功能,特定功能的多個(gè)實(shí)例以及對(duì)主程序各不同部分中的加速器功能的調(diào)用。為獲得最佳性能,SDSoC 還提供賽靈思優(yōu)化庫(kù)和賽靈思聯(lián)盟成員提供的備選庫(kù)。

通過(guò)從“single golden source”生成完整的嵌入式應(yīng)用,SDSoC 可在應(yīng)用層重構(gòu)C/C++ 代碼,便于軟件開(kāi)發(fā)人員迭代設(shè)計(jì)和架構(gòu)變更,從而顯著縮短在平臺(tái)上運(yùn)行工作程序所需的時(shí)間。

面向平臺(tái)開(kāi)發(fā)人員的專家級(jí)使用模型

SDSoC可為系統(tǒng)架構(gòu)師和平臺(tái)開(kāi)發(fā)人員提供專家級(jí)的使用模型。通過(guò)將系統(tǒng)級(jí)的特性描述和性能分析功能與自動(dòng)系統(tǒng)連接生成功能完美結(jié)合,該工具可幫助架構(gòu)師定義、探索并生成各種架構(gòu),為自己的應(yīng)用平臺(tái)找到最為理想的設(shè)計(jì)實(shí)現(xiàn)方案,并傳遞給嵌入式軟件開(kāi)發(fā)人員,用于在應(yīng)用平臺(tái)頂層構(gòu)建完整的應(yīng)用。

借助自動(dòng)系統(tǒng)連接生成功能,架構(gòu)師可以快速定義、探索并生成宏系統(tǒng)架構(gòu)和微系統(tǒng)架構(gòu),用以確定Zynq處理系統(tǒng)、存儲(chǔ)器和基于可編程邏輯的加速器之間的最佳互聯(lián)架構(gòu)。

將賽靈思Vivado® 設(shè)計(jì)套件與SDSoC 結(jié)合運(yùn)用,可用于創(chuàng)建特定應(yīng)用平臺(tái)。該平臺(tái)創(chuàng)建功能還能夠?qū)F(xiàn)有的RTL 和IP 配置用作C 語(yǔ)言可調(diào)用的庫(kù)。這對(duì)需要借助設(shè)計(jì)重用來(lái)加快平臺(tái)開(kāi)發(fā)的團(tuán)隊(duì)大有裨益。

SDSoC 可為基于Zynq 全可編程 SoC 的開(kāi)發(fā)板(諸如ZC702、ZC706 等)、第三方和特定市場(chǎng)平臺(tái)(BSP)(如Zedboard、MicroZed 和ZYBO),以及視頻成像開(kāi)發(fā)套件等提供板支持包(BSP)。這些BSP 中包含的元數(shù)據(jù)可讓SDSoC 進(jìn)行平臺(tái)抽象,以便嵌入式軟件開(kāi)發(fā)人員和系統(tǒng)架構(gòu)師提升生產(chǎn)力,并加速產(chǎn)品開(kāi)發(fā)進(jìn)程。

SDSoC 開(kāi)發(fā)環(huán)境可提供類似ASSP 的C/C++ 編程體驗(yàn),以提高應(yīng)用開(kāi)發(fā)、系統(tǒng)架構(gòu)定義和平臺(tái)創(chuàng)建的生產(chǎn)效率。結(jié)合Zynq 全可編程SoC 和MPSoC,使嵌入式軟件開(kāi)發(fā)人員能夠加快智能系統(tǒng)開(kāi)發(fā)進(jìn)程。

結(jié)論

SDSoC 開(kāi)發(fā)環(huán)境可提供類似ASSP 的C/C++ 編程體驗(yàn),以提高應(yīng)用開(kāi)發(fā)、系統(tǒng)架構(gòu)定義和平臺(tái)創(chuàng)建的生產(chǎn)效率。結(jié)合Zynq 全可編程SoC 和MPSoC,使嵌入式軟件開(kāi)發(fā)人員能夠加快智能系統(tǒng)開(kāi)發(fā)進(jìn)程。



關(guān)鍵詞: SDSoC Zynq MPSoC

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉