嵌入式計算技術的進步,正在以前所未有的程度影響和改變著我們的生活,嵌入式系統盡管不是“無處不在”,但也已經是廣泛應用于航天航空、智能交通、網絡、電子、通訊、儀器儀表、工業自動控制等領域。據IDC調查,目前全球嵌入式產業的智能設備和智能系統每年有23%的年復合增長率,持續到2020年將會達到250億臺的市場份額。
鑒于嵌入式系統的各個應用領域的迅猛發展,為應對這一市場需求,并期望加快產品開發進程,日前賽靈思公司(Xilinx)面向全可編程SoC和MPSoC推出了一款軟件定義SoC的開發環境SDSoC。這款開發環境極大地簡化了SoC的編程體驗,讓嵌入式控制領域的系統架構師和軟件工程師可以利用C/C++來同時做算法和功能的開發,并且在基礎的硬件平臺搭建好之后,便可以自由發揮,不再需要去求助于硬件工程師。這對于嵌入式軟件工程師開發SoC應用來說無異于開發利器,對于整體的產品開發而言,亦可極大的加快開發進程。
而據賽靈思全球銷售與市場亞太區副總裁楊飛先生透露,賽靈思一直以來都非常關注嵌入式領域,之前在這一領域也投入了很多,有一系列的相關產品推出,在嵌入式領域有很多應用。而自賽靈思公司全球總裁兼CEO Moshe Gavrielov提出All Programmable Imperative(全可編程勢在必行)的行業趨勢后,我們便一直在引領這個趨勢——首先是取代標準芯片和定制芯片,其次是進入更廣闊的嵌入式應用藍海。
圖1:賽靈思全球銷售與市場亞太區副總裁楊飛
當前,激烈的市場競爭和技術競爭,要求產品的開發周期越來越短,顯然,嵌入式系統的軟、硬件技術和開發手段,正日益受到重視,成為各領域技術創新的重要基礎。那么,如何才能夠在激烈的競爭中脫穎而出?怎樣才能夠實現嵌入式系統的快速開發?怎么樣才能讓更多的人更便捷的使用賽靈思的產品呢?為此,賽靈思推出了SDx的戰略。
圖2:SDx三大法寶將FPGA運用拓展到軟件工程師人群。
據我們了解,賽靈思自2014年4月開始先后發布了三款面向軟件和系統工程師的軟件定義開發環境SDx,首先是針對網絡推出的SDnet(“軟件”定義網絡)。SD net是針對網絡推出的設計環境,也是對無線和有線領域設計的,它使得無線和有線的人群也能夠進行創新;能夠讓廠商用行為模型級的描述,把通信系統迅速實現出來。其次是11月份針對數據中心推出的SDAccel(軟件定義加速器),SDAccel使得數據中心的軟件設計人員也能夠應用。在數據中心里要解決性能和功耗的問題,有很多應用場景要通過X86加FPGA的加速處理能力來做加速算法,SDAccel可以協助軟件工程師把創意快速實現到整個X86和FPGA的流程中。
而此次推出的針對嵌入式設計SoC應用的SDSoC(軟件定義SoC)意義更大,因為嵌入式控制無處不在,很多系統的設計和創新都是基于SoC平臺進行設計的。這款設計環境將能使軟件工程師也能夠做硬件工程師的工作,能夠利用SDSoC進行更多的創新,帶來更大的影響力。
圖3:全可編程SoC和MPSoC通過軟件、硬件和I/O 可編程性實現高度的靈活性
面向全可編程SoC和MPSoC的SDSoC? 開發環境作為賽靈思SDx?系列開發環境的第三大成員,SDSoC開發環境讓更廣闊的系統和軟件開發者群體也能獲益于“全可編程”SoC和MPSoC器件的強大優勢。SDSoC環境可提供大大簡化的類似ASSP的編程體驗,其中包括簡便易用的Eclipse集成設計環境(IDE)以及用于異構Zynq? 全可編程SoC和MPSoC部署的綜合開發平臺。SDSoC結合使用業界首款C/C++全系統優化編譯器,可提供系統級特性描述、利用可編程邏輯實現軟件自動加速、自動系統連接生成,以及各種庫以加速編程工作。此外,它還能幫助最終用戶和第三方平臺開發人員快速定義、集成和驗證系統級解決方案,并可通過定制編程環境為最終客戶提供支持。
--------------------------
電子發燒友編輯團隊年度巨獻:《電源技術特刊》點擊立即免費下載!
?
打破軟件工程師的創新限制
我們知道,嵌入式系統是軟硬結合的東西,涉及的層面比較多,流程復雜,這極大限制的開發設計進程。比如偏硬件專業出身的人,他們主要是搞硬件設計,有時要開發一些與硬件關系最密切的最底層軟件,如BootLoader、Board Support Package(像PC的BIOS一樣,往下驅動硬件,往上支持操作系統),最初級的硬件驅動程序等。他們的優勢是對硬件原理非常清楚,他們更擅長定義各種硬件接口,但對復雜軟件系統往往力不從心(例如嵌入式操作系統原理和復雜應用軟件等)。另一類是軟件專業出身的人,主要從事嵌入式操作系統和應用軟件的開發。軟件專業的人對硬件原理和接口通常難以有較好的掌握,最多也只能寫部分BSP和硬件驅動程序。嵌入式硬件設計完后,各種功能就全靠軟件來實現,嵌入式設備的增值很大程度上取決于嵌入式軟件。
楊飛先生表示,很多公司在人員配備上也是偏軟件,但是嵌入式本身所特有的軟硬結合特性,使得硬件基礎是不可或缺的,這是一大限制條件。現階段,很多智能系統的智能性是有賴于里頭的硬件,但更多的是上面的應用軟件,包括它的一些算法,用軟件和算法來實現智能性。所以我們想通過SDSoC這個開發環境,讓做軟件的人員直接參與到產品的設計中來,這樣就可以把軟件人員的創意通過這個工具很快的把創意實現,變成一個真實的產品。這就是為什么我們要做SDSoC這個開發環境的最主要的理由,面向全可編程SoC和MPSoC的SDSoC 開發環境使得軟件工程師可以在基礎的硬件平臺充分發揮自己的創新思路,而不需要時刻都去尋求硬件工程師的配合。
SDSoC是在設計方法論上的一大創新,它使得軟件工程師和所有熟悉SDSoC環境的工程師可以有效地把FPGA給利用起來,SDx開發環境的推出,也是賽靈思認為很重要的一個策略方向,因為如果沒有相關的設計方法論,整個設計進程和生產力就達不到用戶想要的效果,簡單而熟悉的軟件開發環境使得系統和嵌入式軟件工程師有類似ASSP的編程體驗。
圖4:SDSoC開發環境與軟件工程師習慣開發的ASSP完全相同,可以用C/C++來做算法和功能的開發。
工程師在做嵌入式設計的時候,可以用不同的方法論來解決相關問題——可以用CPU解決,也可以用ASSP來解決。CPU是純軟件編程的技術,有很多人會寫C代碼,因此CPU利用起來是比較靈活的。標準的ASSP是基于ARM和硬加速內核設計的,沒有CPU這么靈活,但是也比較簡單、比較容易。全可編程SoC性能很高、功能很好,但是其局限性是對硬件描述語言有認識的工程師才能開發相關產品。因此,其以前的應用環境沒有CPU的開發環境這么好,賽靈思推出的SDSoC就改變了這一現狀。
據楊飛先生強調,SDSoC跟其他習慣開發的標準器件是一模一樣的,可以用C/C++來做算法和功能的開發。它提供的系統級的特性描述功能可以做一些描述,比如有哪些函數希望用硬件來做,有哪些是希望用處理器來做,其中可以設計一些加速用的C和C++函數,最后是一個全系統優化的編譯器。我們這次做的工作就是克服業界出現的問題,把整個SoC和MPSoC產品的開發環境做成跟平時習慣開發ASSP的軟件工程師所習慣的環境,這樣可以拉齊跟它們開發的關系。
值得一提的是,目前賽靈思SDK的高級軟件系統描述功能可對Zynq平臺上運行的完整設計進行軟硬件性能測量,SDSoC以此為基礎,可以快速估算系統性能。不僅僅是具備系統級的特性描述,SDSoC還可針對ARM處理器和可編程邏輯提供全系統優化的編譯器。SDSoC通過自動化系統連接生成功能可支持軟件團隊快速配置、生成宏/微架構,從而提供最佳的系統連接和存儲器接口,并以更短的設計迭代時間實現對性能、吞吐量和延遲的快速系統探索。
圖5:全系統優化的編譯器
SDSoC支持創建完整的異構多處理系統,包括將傳統HDLIP模塊重復用作可用C語言調用的庫。傳統的分別以硬件和軟件為中心、彼此分離的流程可能導致開發延遲、系統架構和性能的不確定性,與傳統不同,SDSoC經過精心架構設計,可提供快速系統特性描述、利用可編程邏輯實現軟件加速,以及在熟悉的框架中進行系統架構探索。
楊飛先生透露,有了硬件跟軟件的整體化、全系統化優化的過程,跟純軟件的設計來比,整個性能可以提升一百倍以上。為了加快開發的進度,賽靈思還提供了很多庫,有賽靈思的庫,還有其他第三方的庫。有DSP、視頻的、定點、線性代數、BLAS、openCV的算法,你不需要現做很多計算,有很多現成的庫可以利用。
SDSoC是一個綜合的開發環境。接下來,賽靈思還將在該開發環境下,陸陸續續地提供一些針對某些特定應用場景的工具,即瞄準特定應用場景的庫和支持。比如做視頻、做圖像、做軟件無線電等相關應用的場景,賽靈思將會推出相關的配套元素。
聚焦領域:圖像、視頻、SDR
最后我們可以來看看現場的演示和合作伙伴的態度,從中我們可以一窺究竟。
賽靈思亞太地區Zynq業務拓展經理羅霖先生演示的例子是視頻監控——對前后兩人的圖像分別做一次濾波;然后把這兩幅圖像相減,得到一個差分圖像;再做一次中值濾波,合并輸出。在整個畫面上如果有運動物體的話,可以用紅線把邊緣勾勒出來。整個開發的例子是C代碼和SDSoC開發工具。整個設計,包括優化多次迭代,在兩個禮拜內就能完成;過去做完優化可能需要兩個月的時間。因此,這樣對大家的生產力是一個極大的提高。
圖6:賽靈思亞太區Zynq業務發展經理羅霖詳細展示了面向系統架構師和平臺開發人員的生產力優勢
最后,在演示效果時,羅霖先生對著攝像頭揮手,詳細講解到:“如果我不動,我手上是沒有這個紅色的邊緣;如果我手稍微動一下,我手運動的輪廓都會有紅色的邊緣出來。現在這是硬件演示效果,大家可以看到非常流暢,是實時的。下面來看一下軟件的效果。軟件特別卡,一秒鐘大概可以做到還不到一幀,非常不流暢。而硬件可以做到每秒60幀,就是可以看到系統的性能通過我們的SDSoC工具可以完全釋放出來,有上百倍性能的提升。同時,在開發效率方面,可能過去要用兩個月做的事情,現在用兩個星期就可以做完。這就是SDSoC給開發者帶來的價值。我們提供給軟件工程師一個他們非常熟悉、非常易用的開發工具,這樣他們能從第一天就上手,可以做SDSoC的開發。同時,他不用管上面的硬件細節,他只專注于他本身的算法和核心技術的開發。這樣對于他來說,可以充分釋放他的想象力跟創造力,打造出非常差異化的產品。”
通過這個演示我們可以看得到純軟件和硬件加速的效果差別,而且整個流程做起來也是比較簡單的,非常有利于加快產品開發進程。
據羅霖先生透露,在圖像與視頻的相關應用場景里,諸如智能視頻監控、車牌識別等,都非常有優勢,而且已經有相關的合作客戶在大量使用,包括SDR這幾大類是目前的重點方向。
在加快產品開發進程方面,羅霖先生還表示,SDSoC目前支持的主流操作系統有Linux、FreeRTOS和裸機三種,今后賽靈思還會繼續增加操作系統列表。過去如果你用Zynq,光是把linux弄到Zynq上就需要很長時間。現在不需要擔心要驅動任何程序,在這一部分就節省了大量的時間。
據悉,賽靈思SDSoC目前已有一些和客戶合作的成功案例。賽靈思與ADI公司合作開發了一款Zynq SDR系統開發套件,通過SDSoC的開發環境,可以很快地把SDR平臺的開發做出來。
另外一家做醫療和無人機開發的公司叫Van Gogh Imaging,目前正在做3D計算機視覺的開發。ARM架構在智能性視覺方面優勢很大,因為其中有算法和很高的數據帶寬,通過硬加速可以做到很高性能的視頻分析。有了SDSoC,在一個月之內就能把3D對象識別從概念變成現實的加速Zynq設計。
DAVE也是做嵌入式系統的公司,該公司的BORA模塊采用賽靈思Zynq-7000 SoC,非常適用于醫療器械、高級通信系統、關鍵實時操作和安全等高端應用。該公司利用SDSoC將Zynq SoC運用在一些醫療器械里,也是用很短的時間就把這些事情給做了出來。
評論