前言
隨著智能系統(tǒng)的進步和“物聯(lián)網(wǎng)”的發(fā)展,以及人與物之間互聯(lián)互通的增強,大多數(shù)新產(chǎn)品現(xiàn)在均采用了基于SoC的開發(fā)平臺。此類平臺便于企業(yè)以更快的速度將產(chǎn)品推向市場,提高系統(tǒng)級效率,而且最重要的是便于實現(xiàn)持續(xù)的創(chuàng)新和產(chǎn)品差異化。
為實現(xiàn)投資回報最大化,設計團隊必須精心選擇實現(xiàn)產(chǎn)品差異化的方法,同時還必須滿足日益增長的市場需求和嚴苛的成本目標要求。真正的平臺差異化依賴于新的軟件特性與新的硬件特性的組合。鑒于加速產(chǎn)品上市這一要求實際上在各層面均存在差異化,因此需要工具和環(huán)境能夠在不影響架構和性能的條件下,用傳統(tǒng)ASSP編程環(huán)境所擁有的完整性和易用性實現(xiàn)軟硬件的差異化。
Zynq SoC和MPSoC與軟件工程師和FPGA硬件工程師共同組成的設計團隊可謂天合之作。但其對于硬件資源有限或欠缺的團隊來說,使用起來很有難度,因為需要具備RTL(VHDL或Verilog)開發(fā)專業(yè)知識才能充分發(fā)揮該器件的優(yōu)勢。為解決這一難題,讓更多的設計團隊能夠利用Zynq器件的優(yōu)勢,賽靈思推出了一種 全新的C/C++開發(fā)環(huán)境SDSoC 。SDSoC開發(fā)環(huán)境是賽靈思SDx系列開發(fā)環(huán)境的第三大成員,能夠讓更廣泛的嵌入式軟件開發(fā)人員發(fā)揮軟硬件“全可編程”器件的威力。
SDSoC 帶來的軟件定義機遇: C/C++ 環(huán)境提供類似ASSP 的編程體驗
SDSoC開發(fā)環(huán)境可通過兩種方式加速Zynq SoC和MPSoC開發(fā)進程。第一種是,軟件開發(fā)人員借助賽靈思平臺、第三方平臺或最終用戶平臺,可以比使用傳統(tǒng)硬件/傳統(tǒng)軟件開發(fā)流程更快地啟動開發(fā)。第二種是,SDSoC可以消除在將可編程邏輯用作軟件加速器時軟件團隊和硬件團隊之間常發(fā)生的反復變更,真正加速整體系統(tǒng)開發(fā)進程。
SDSoC開發(fā)環(huán)境可提供高度簡化、類似ASSP C/C++的編程體驗,包括簡便易用的Eclipse集成設計環(huán)境(IDE)和用于異構Zynq平臺部署的綜合開發(fā)平臺。SDSoC配有業(yè)界首款C/C++全系統(tǒng)優(yōu)化的編譯器,可提供系統(tǒng)級的特性描述、可編程邏輯內(nèi)自動軟件加速、自動系統(tǒng)連接生成,以及用于加快編程速度的各種庫。此外,SDSoC還可為客戶和第三方平臺開發(fā)人員提供專門的流程,以便在SDSoC開發(fā)環(huán)境中使用這些平臺。
SDSoC開發(fā)環(huán)境
類似ASSP的編程體驗
SDSoC可供系統(tǒng)和嵌入式軟件開發(fā)人員使用,其提供的Eclipse IDE可用于開發(fā)運行于裸機或Linux和FreeRTOS等操作系統(tǒng)上的C/C++應用。SDSoC可用于開發(fā)各種完整的異構多處理系統(tǒng),包括運行在ARM/NEON處理器上的軟件和可編程邏輯中的軟件加速器,還能將現(xiàn)有的HDL IP模塊反復用作C語言可調(diào)用的庫。與傳統(tǒng)的單獨以硬件為中心的流程和以軟件為中心的流程不同,這兩種流程可能會導致開發(fā)延遲、系統(tǒng)架構與性能的不確定性,而SDSoC在開發(fā)人員熟悉的嵌入式框架中實現(xiàn)快速系統(tǒng)特性描述和可編程邏輯軟件加速。
這款簡便易用的IDE可提供項目創(chuàng)建向?qū)?,供用戶選擇目標平臺和操作系統(tǒng),并使用模板創(chuàng)建功能齊全的SDSoC項目,作為構建自己應用的起點。
此外,SDSoC還可為軟件團隊提供簡單的GUI選項,用于選擇在可編程邏輯中加速的功能。SDSoC編譯器將生成準備在目標平臺板上運行的所有必備硬件和軟件。
系統(tǒng)級的特性描述
以賽靈思軟件開發(fā)套件(SDK)目前提供的高級軟件特性描述為基礎,SDSoC增添了系統(tǒng)級特性描述,用于快速系統(tǒng)(軟/硬件)性能估算。此外,還能快速生成并探索系統(tǒng)級架構,以實現(xiàn)最佳總體系統(tǒng)性能與功耗。
SDSoC采用基于PC采樣的非侵入式編譯器和標準的GPROF編譯器,能幫助用戶配置其自身軟件應用,以識別占用時間最多且適用于硬件加速的功能。
此外,SDSoC還增添了快速系統(tǒng)(軟/硬件)性能和器件利用率估算功能,能夠迅速完成系統(tǒng)級架構探索,以實現(xiàn)最佳性能、資源利用率和功耗。用戶可在可編程邏輯中設定待加速的功能,而且SDSoC還能調(diào)用C/C++代碼來報告軟件周期、硬件周期、數(shù)據(jù)傳輸估算、總體應用加速以及硬件資源利用率等情況。
充分利用基于平臺的性能估算流程,軟件開發(fā)人員能夠在數(shù)分鐘內(nèi)迅速估算出將一項或多項軟件功能轉(zhuǎn)移到硬件中用于加速所產(chǎn)生的性能影響,而實際的硬件生成則需要一小時甚至更長時間。
在目標平臺上,SDSoC使用由ARM CPU提供的性能計數(shù)器,同時自動插入AXI性能監(jiān)控器(APM)到可編程邏輯中以采集硬件性能數(shù)據(jù),可為緩存、存儲器、軟件加速器和總線利用率提供自動性能測量。運行在平臺上的軟件可采集性能數(shù)據(jù),SDSoC就使用該數(shù)據(jù)幫助識別系統(tǒng)中的性能瓶頸。這種快速的性能反饋能實現(xiàn)最佳代碼分區(qū),以滿足系統(tǒng)級性能和功耗需求,同時將開發(fā)流程縮短數(shù)周時間。
全系統(tǒng)優(yōu)化的編譯器
SDSoC還具有針對ARM處理系統(tǒng)和可編程邏輯的全系統(tǒng)優(yōu)化的編譯器。SDSoC旨在幫助系統(tǒng)架構師和軟件團隊使用“golden C/C++ source”,通過生成最佳系統(tǒng)連接,快速完成宏架構和微架構的配置。這樣既能得到最佳系統(tǒng)連接和存儲器接口,還能快速完成設計空間探索,便于開發(fā)人員綜合權衡性能、吞吐量、時延,同時保持較短的設計迭代時間。
該編譯器充分利用基礎的高層次綜合編譯器技術,已有逾千名編程人員使用該技術生成了基于C/C++的高性能IP。將該編譯器與鏈接器結合使用,并基于目標平臺以及在可編程邏輯中生成的用戶指定的自動軟件加速功能,將程序轉(zhuǎn)換到完整的軟硬件系統(tǒng)中。
基于程序語法、程序分析、調(diào)度安排、系統(tǒng)連接的特性化硬件建模,SDSoC能在可編程邏輯中生成用于軟件的加速器。SDSoC充分利用平臺的板支持包(BSP)、目標軟件加速功能、IP和優(yōu)化庫及系統(tǒng)連接生成功能,構建設計的可編程邏輯部分。該編譯器可自動把系統(tǒng)編譯為完整的軟硬件系統(tǒng),包括用于可編程邏輯的比特流和用于配置目標平臺的ARM處理系統(tǒng)ELF文件。
可編程邏輯中每個加速功能都可以作為獨立的線程運行。SDSoC可生成與之同步和保存原始程序語義所需的軟硬件組件,同時可實現(xiàn)任務級的并行和用流水線實現(xiàn)的通信和計算,以獲取高性能。
C/C++應用源碼可包含多個加速功能,特定功能的多個實例以及對主程序各不同部分中的加速器功能的調(diào)用。為獲得最佳性能,SDSoC還提供賽靈思優(yōu)化庫和賽靈思聯(lián)盟成員提供的備選庫。
通過從“single golden source”生成完整的嵌入式應用,SDSoC可在應用層重構C/C++代碼,便于軟件開發(fā)人員迭代設計和架構變更,從而顯著縮短在平臺上運行工作程序所需的時間。
面向平臺開發(fā)人員的專家級使用模型
SDSoC可為系統(tǒng)架構師和平臺開發(fā)人員提供專家級的使用模型。通過將系統(tǒng)級的特性描述和性能分析功能與自動系統(tǒng)連接生成功能完美結合,該工具可幫助架構師定義、探索并生成各種架構,為自己的應用平臺找到最為理想的設計實現(xiàn)方案,并傳遞給嵌入式軟件開發(fā)人員,用于在應用平臺頂層構建完整的應用。
借助自動系統(tǒng)連接生成功能,架構師可以快速定義、探索并生成宏系統(tǒng)架構和微系統(tǒng)架構,用以確定Zynq處理系統(tǒng)、存儲器和基于可編程邏輯的加速器之間的最佳互聯(lián)架構。
將賽靈思Vivado設計套件與SDSoC結合運用,可用于創(chuàng)建特定應用平臺。該平臺創(chuàng)建功能還能夠?qū)F(xiàn)有的RTL和IP配置用作C語言可調(diào)用的庫。這對需要借助設計重用來加快平臺開發(fā)的團隊大有裨益。
SDSoC可為基于Zynq 全可編程 SoC的開發(fā)板(諸如ZC702、ZC706等)、第三方和特定市場平臺(BSP)(如Zedboard、MicroZed和ZYBO),以及視頻成像開發(fā)套件等提供板支持包(BSP)。這些BSP中包含的元數(shù)據(jù)可讓SDSoC進行平臺抽象,以便嵌入式軟件開發(fā)人員和系統(tǒng)架構師提升生產(chǎn)力,并加速產(chǎn)品開發(fā)進程。
結論
SDSoC開發(fā)環(huán)境可提供類似ASSP的C/C++編程體驗,以提高應用開發(fā)、系統(tǒng)架構定義和平臺創(chuàng)建的生產(chǎn)效率。借助Zynq 全可編程 SoC和MPSoC,SDSoC賦予嵌入式軟件開發(fā)人員加快更智能系統(tǒng)開發(fā)速度的能力。
-
軟件開發(fā)
+關注
關注
0文章
597瀏覽量
27316 -
C語言
+關注
關注
180文章
7595瀏覽量
135867 -
編程
+關注
關注
88文章
3565瀏覽量
93536
發(fā)布評論請先 登錄
相關推薦
評論