賽靈思 SDSoC 開(kāi)發(fā)環(huán)境介紹
前言
本文引用地址:http://dyxdggzs.com/article/201610/307405.htm隨著(zhù)智能系統的進(jìn)步和“ 物聯(lián)網(wǎng)”的發(fā)展,以及人與物之間互聯(lián)互通的增強,大多數新產(chǎn)品現在均采用了基于SoC 的開(kāi)發(fā)平臺。此類(lèi)平臺便于企業(yè)以更快的速度將產(chǎn)品推向市場(chǎng),提高系統級效率,而且最重要的是便于實(shí)現持續的創(chuàng )新和產(chǎn)品差異化。
為實(shí)現投資回報最大化,設計團隊必須精心選擇實(shí)現產(chǎn)品差異化的方法,同時(shí)還必須滿(mǎn)足日益增長(cháng)的市場(chǎng)需求和嚴苛的成本目標要求。真正的平臺差異化依賴(lài)于新的軟件特性與新的硬件特性的組合。鑒于加速產(chǎn)品上市這一要求實(shí)際上在各層面均存在差異化,因此需要工具和環(huán)境能夠在不影響架構和性能的條件下,用傳統ASSP 編程環(huán)境所擁有的完整性和易用性實(shí)現軟硬件的差異化。
就當前的硬件差異化而言,許多平臺開(kāi)發(fā)人員使用FPGA 實(shí)現任意(Any-to-Any)互連。其中的可編程邏輯用于將平臺的處理器連接到PCIe® 和以太網(wǎng)等標準接口上。此外,許多系統也將FPGA 作為用于實(shí)現關(guān)鍵功能和算法加速的協(xié)處理器。與在標準處理器上運行相比,可編程邏輯的并行架構可提供高達100 倍以上的性能優(yōu)勢。
2011 年推出的Zynq®-7000 全可編程SoC 和目前新推出的Zynq UltraScale+™MPSoC,分別采用先進(jìn)的28nm 工藝節點(diǎn)和16nm 工藝節點(diǎn),將強大的ARM® 處理系統和可編程邏輯完美結合在了一起。隨著(zhù)這兩款產(chǎn)品的問(wèn)世,賽靈思現可提供完全取代傳統處理器和特定領(lǐng)域專(zhuān)用SoC 的業(yè)經(jīng)驗證的替代產(chǎn)品。Zynq SoC和MPSoC 能夠在降低材料清單成本的同時(shí)提升系統性能并降低系統功耗。
賽靈思SDSoC 開(kāi)發(fā)環(huán)境介紹
Zynq SoC 和MPSoC 與軟件工程師和FPGA 硬件工程師共同組成的設計團隊可謂天合之作。但其對于硬件資源有限或欠缺的團隊來(lái)說(shuō),使用起來(lái)很有難度,因為需要具備RTL(VHDL或Verilog)開(kāi)發(fā)專(zhuān)業(yè)知識才能充分發(fā)揮該器件的優(yōu)勢。為解決這一難題,讓更多的設計團隊能夠利用Zynq 器件的優(yōu)勢,賽靈思推出了一種全新的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)的軟件定義機遇
C/C++ 環(huán)境提供類(lèi)似ASSP 的編程體驗

性能功耗比和任意互連
* 重點(diǎn)領(lǐng)域(例如圖像/ 視頻、SDR 等)
注:軟件可編程器件往往與FPGA 結合使用,以實(shí)現連接和協(xié)處理功能
SDSoC 開(kāi)發(fā)環(huán)境可通過(guò)兩種方式加速Zynq SoC 和MPSoC 開(kāi)發(fā)進(jìn)程。第一種是,軟件開(kāi)發(fā)人員借助賽靈思平臺、第三方平臺
或最終用戶(hù)平臺,可以比使用傳統硬件/ 傳統軟件開(kāi)發(fā)流程更快地啟動(dòng)開(kāi)發(fā)。第二種是,SDSoC 可以消除在將可編程邏輯用作
軟件加速器時(shí)軟件團隊和硬件團隊之間常發(fā)生的反復變更,真正加速整體系統開(kāi)發(fā)進(jìn)程。

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

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

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

這款簡(jiǎn)便易用的IDE 可提供項目創(chuàng )建向導,供用戶(hù)選擇目標平臺和操作系統,并使用模板創(chuàng )建功能齊全的SDSoC 項目,作為構建自己應用的起點(diǎn)。
此外,SDSoC 還可為軟件團隊提供簡(jiǎn)單的GUI 選項,用于選擇在可編程邏輯中加速的功能。SDSoC 編譯器將生成準備在目標平臺板上運行的所有必備硬件和軟件。
系統級的特性描述
以賽靈思軟件開(kāi)發(fā)套件(SDK)目前提供的高級軟件特性描述為基礎,SDSoC 增添了系統級特性描述,用于快速系統(軟/ 硬件)性能估算。此外,還能快速生成并探索系統級架構,以實(shí)現最佳總體系統性能與功耗。

SDSoC 采用基于PC 采樣的非侵入式編譯器和標準的GPROF 編譯器,能幫助用戶(hù)配置其自身軟件應用,以識別占用時(shí)間最多且適用于硬件加速的功能。
此外,SDSoC 還增添了快速系統(軟/ 硬件)性能和器件利用率估算功能,能夠迅速完成系統級架構探索,以實(shí)現最佳性能、資源利用率和功耗。用戶(hù)可在可編程邏輯中設定待加速的功能,而且SDSoC 還能調用C/C++ 代碼來(lái)報告軟件周期、硬件周期、數據傳輸估算、總體應用加速以及硬件資源利用率等情況。
充分利用基于平臺的性能估算流程,軟件開(kāi)發(fā)人員能夠在數分鐘內迅速估算出將一項或多項軟件功能轉移到硬件中用于加速所產(chǎn)生的性能影響,而實(shí)際的硬件生成則需要一小時(shí)甚至更長(cháng)時(shí)間。
在目標平臺上,SDSoC 使用由ARM CPU 提供的性能計數器,同時(shí)自動(dòng)插入AXI 性能監控器(APM)到可編程邏輯中以采集硬件性能數據,可為緩存、存儲器、軟件加速器和總線(xiàn)利用率提供自動(dòng)性能測量。運行在平臺上的軟件可采集性能數據,SDSoC 就使用該數據幫助識別系統中的性能瓶頸。這種快速的性能反饋能實(shí)現最佳代碼分區,以滿(mǎn)足系統級性能和功耗需求,同時(shí)將開(kāi)發(fā)流程縮短數周時(shí)間。
全系統優(yōu)化的編譯器
SDSoC 還具有針對ARM 處理系統和可編程邏輯的全系統優(yōu)化的編譯器。SDSoC 旨在幫助系統架構師和軟件團隊使用“golden
C/C++ source”,通過(guò)生成最佳系統連接,快速完成宏架構和微架構的配置。這樣既能得到最佳系統連接和存儲器接口,還能快速完成設計空間探索,便于開(kāi)發(fā)人員綜合權衡性能、吞吐量、時(shí)延,同時(shí)保持較短的設計迭代時(shí)間。
該編譯器充分利用基礎的高層次綜合編譯器技術(shù),已有逾千名編程人員使用該技術(shù)生成了基于C/C++ 的高性能IP。將該編譯器與鏈接器結合使用,并基于目標平臺以及在可編程邏輯中生成的用戶(hù)指定的自動(dòng)軟件加速功能,將程序轉換到完整的軟硬件系統中。

基于程序語(yǔ)法、程序分析、調度安排、系統連接的特性化硬件建模,SDSoC 能在可編程邏輯中生成用于軟件的加速器。SDSoC 充分利用平臺的板支持包(BSP)、目標軟件加速功能、IP 和優(yōu)化庫及系統連接生成功能,構建設計的可編程邏輯部分。該編譯器可自動(dòng)把系統編譯為完整的軟硬件系統,包括用于可編程邏輯的比特流和用于配置目標平臺的ARM 處理系統ELF 文件。
可編程邏輯中每個(gè)加速功能都可以作為獨立的線(xiàn)程運行。SDSoC 可生成與之同步和保存原始程序語(yǔ)義所需的軟硬件組件,同時(shí)可實(shí)現任務(wù)級的并行和用流水線(xiàn)實(shí)現的通信和計算,以獲取高性能。
C/C++ 應用源碼可包含多個(gè)加速功能,特定功能的多個(gè)實(shí)例以及對主程序各不同部分中的加速器功能的調用。為獲得最佳性能,SDSoC 還提供賽靈思優(yōu)化庫和賽靈思聯(lián)盟成員提供的備選庫。
通過(guò)從“single golden source”生成完整的嵌入式應用,SDSoC 可在應用層重構C/C++ 代碼,便于軟件開(kāi)發(fā)人員迭代設計和架構變更,從而顯著(zhù)縮短在平臺上運行工作程序所需的時(shí)間。
面向平臺開(kāi)發(fā)人員的專(zhuān)家級使用模型
SDSoC可為系統架構師和平臺開(kāi)發(fā)人員提供專(zhuān)家級的使用模型。通過(guò)將系統級的特性描述和性能分析功能與自動(dòng)系統連接生成功能完美結合,該工具可幫助架構師定義、探索并生成各種架構,為自己的應用平臺找到最為理想的設計實(shí)現方案,并傳遞給嵌入式軟件開(kāi)發(fā)人員,用于在應用平臺頂層構建完整的應用。
借助自動(dòng)系統連接生成功能,架構師可以快速定義、探索并生成宏系統架構和微系統架構,用以確定Zynq處理系統、存儲器和基于可編程邏輯的加速器之間的最佳互聯(lián)架構。
將賽靈思Vivado® 設計套件與SDSoC 結合運用,可用于創(chuàng )建特定應用平臺。該平臺創(chuàng )建功能還能夠將現有的RTL 和IP 配置用作C 語(yǔ)言可調用的庫。這對需要借助設計重用來(lái)加快平臺開(kāi)發(fā)的團隊大有裨益。
SDSoC 可為基于Zynq 全可編程 SoC 的開(kāi)發(fā)板(諸如ZC702、ZC706 等)、第三方和特定市場(chǎng)平臺(BSP)(如Zedboard、MicroZed 和ZYBO),以及視頻成像開(kāi)發(fā)套件等提供板支持包(BSP)。這些BSP 中包含的元數據可讓SDSoC 進(jìn)行平臺抽象,以便嵌入式軟件開(kāi)發(fā)人員和系統架構師提升生產(chǎn)力,并加速產(chǎn)品開(kāi)發(fā)進(jìn)程。
SDSoC 開(kāi)發(fā)環(huán)境可提供類(lèi)似ASSP 的C/C++ 編程體驗,以提高應用開(kāi)發(fā)、系統架構定義和平臺創(chuàng )建的生產(chǎn)效率。 SDSoC 結合Zynq 全可編程SoC 和MPSoC,使嵌入式軟件開(kāi)發(fā)人員能夠加快智能系統開(kāi)發(fā)進(jìn)程。
結論
SDSoC 開(kāi)發(fā)環(huán)境可提供類(lèi)似ASSP 的C/C++ 編程體驗,以提高應用開(kāi)發(fā)、系統架構定義和平臺創(chuàng )建的生產(chǎn)效率。 SDSoC 結合Zynq 全可編程SoC 和MPSoC,使嵌入式軟件開(kāi)發(fā)人員能夠加快智能系統開(kāi)發(fā)進(jìn)程。
評論