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