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