我們正身處一個(gè)由軟件定義、以軟件為先的時(shí)代。決勝軟件,才能決勝于數(shù)字時(shí)代。
在過去十年里,軟件在各類產(chǎn)品與應(yīng)用中的使用都呈指數(shù)級(jí)增長(zhǎng),且增長(zhǎng)至今沒有放緩的跡象。無(wú)論手機(jī)、電視、智能家電,還是日常用品,幾乎所有應(yīng)用場(chǎng)景都在依賴軟件來(lái)為人們提供日常所需的各項(xiàng)功能。
在汽車應(yīng)用領(lǐng)域也是如此,現(xiàn)代汽車包含多達(dá)1.5億行代碼,汽車軟件市場(chǎng)的預(yù)期年增長(zhǎng)率超過15%,并有望在2030年達(dá)到一千億美元的體量。
基于此,開發(fā)者們對(duì)軟件質(zhì)量、性能和安全要求也就越來(lái)越高。虛擬原型技術(shù)現(xiàn)已逐漸取代物理原型技術(shù),成為幫助開發(fā)者們應(yīng)對(duì)軟件挑戰(zhàn)的重要工具。
物理原型:革舊鼎新
在虛擬原型工具問世以前,嵌入式軟件開發(fā)者必須等待芯片設(shè)計(jì)完成,才能在實(shí)驗(yàn)室系統(tǒng)的物理原型設(shè)備上集成和測(cè)試代碼。這種傳統(tǒng)的原型驗(yàn)證方法嚴(yán)重拖慢了產(chǎn)品上市進(jìn)度,因?yàn)殚_發(fā)者們必須等到物理原型完成后,再來(lái)加班加點(diǎn)地對(duì)代碼進(jìn)行檢查和調(diào)試。
除上市時(shí)間(TTM)較長(zhǎng)外,物理原型技術(shù)還會(huì)產(chǎn)生高昂的成本,并且嚴(yán)重缺乏便捷性。此外,物理原型系統(tǒng)必須進(jìn)行持續(xù)維護(hù)與管理,因此開發(fā)者們往往需要輪班工作,從而最大限度地利用硬件。高度網(wǎng)絡(luò)化系統(tǒng)的出現(xiàn)在一定程度上緩解了這一問題,這類系統(tǒng)能讓開發(fā)者在辦公室而非實(shí)驗(yàn)室中工作,但成本依舊居高不下。
如今,處理器已不再僅僅是系統(tǒng)的一個(gè)組件,而是一個(gè)完全基于片上系統(tǒng)(SoC)的獨(dú)立設(shè)備。這也是原型開發(fā)的一個(gè)轉(zhuǎn)折點(diǎn)。定制芯片的設(shè)計(jì)和生產(chǎn)往往需要數(shù)月的時(shí)間,而物理原型必須等到芯片完工才能進(jìn)行。項(xiàng)目耗時(shí)長(zhǎng)、成本高,這就導(dǎo)致物理原型必將被淘汰。
虛擬原型因此誕生。
利用虛擬原型工具進(jìn)行流片前測(cè)試與調(diào)試
對(duì)于嵌入式程序開發(fā)者來(lái)說,若想縮短TTM并降低成本,擁有一個(gè)能夠開發(fā)、集成、測(cè)試并調(diào)試代碼的流片前測(cè)試平臺(tái)至關(guān)重要。虛擬原型由SoC的抽象軟件仿真模型與硬件系統(tǒng)組成,開發(fā)者可以用等效的軟件模型代替硬件,從而更早地進(jìn)行軟件開發(fā)。
本質(zhì)上,虛擬原型是能夠執(zhí)行嵌入式軟件代碼的完整系統(tǒng)的全功能軟件模型。虛擬原型包含快速指令集,可執(zhí)行與最終產(chǎn)品系統(tǒng)中相同的代碼,具有諸多好處:
能夠同時(shí)與虛擬和現(xiàn)實(shí)世界的輸入/輸出(I/O)設(shè)備交互。
能夠引入可能導(dǎo)致系統(tǒng)硬件損害的虛擬故障,為異常情況提供更好的測(cè)試環(huán)境。
能夠盡早發(fā)現(xiàn)設(shè)計(jì)與嵌入代碼不一致的地方,降低芯片故障率。
能夠在彼此分散的軟件團(tuán)隊(duì)之間進(jìn)行部署,免去構(gòu)建和維護(hù)物理原型的相關(guān)成本。
此外,虛擬原型的最大好處之一,是能夠大大縮短TTM。由于虛擬原型不需要大量實(shí)施細(xì)節(jié),它可以與SoC的RTL級(jí)硬件設(shè)計(jì)并行開發(fā),將項(xiàng)目進(jìn)度左移。
持續(xù)集成,持續(xù)部署
軟件開發(fā)的模式也在穩(wěn)步發(fā)展。在日常應(yīng)用的軟件內(nèi)容規(guī)模的驅(qū)動(dòng)下,為滿足產(chǎn)品性能要求,持續(xù)集成(CI)已成為軟件開發(fā)團(tuán)隊(duì)的必備要素。所謂CI,是指軟件開發(fā)人員將代碼更改合并到共享的主線代碼庫(kù)或主存儲(chǔ)庫(kù)上。這個(gè)動(dòng)作通常每天都會(huì)進(jìn)行多次,以便測(cè)試代碼性能。
按照傳統(tǒng)做法,開發(fā)運(yùn)營(yíng)團(tuán)隊(duì)必須在指定檢查點(diǎn)合并所有代碼更改,屆時(shí),代碼各個(gè)部分可能會(huì)嚴(yán)重偏離,從而影響集成過程,并給調(diào)試與修復(fù)問題帶來(lái)挑戰(zhàn)。CI則與此相反,它能讓團(tuán)隊(duì)更早地發(fā)現(xiàn)并修復(fù)不兼容問題,此時(shí)解決問題更加容易,成本也更低。
CI需要一套穩(wěn)健、高度自動(dòng)化的構(gòu)建和測(cè)試周期方可正常工作。這套系統(tǒng)需要對(duì)提交的更改進(jìn)行快速驗(yàn)證,在最新軟件棧的上下文中進(jìn)行測(cè)試,確保不破壞現(xiàn)有功能。它還需要為軟件開發(fā)者提供諸如代碼覆蓋率、質(zhì)量和有效性等關(guān)鍵領(lǐng)域的快速反饋。
此外,CI還常常與持續(xù)部署(CD)結(jié)合在一起。所謂CD,是指將所有成功通過各項(xiàng)自動(dòng)化測(cè)試的代碼構(gòu)建部署到生產(chǎn)中。通過對(duì)CI的實(shí)踐,CD能夠進(jìn)一步將代碼發(fā)布過程自動(dòng)化,一旦新代碼被合并到主存儲(chǔ)庫(kù),并通過了所有自動(dòng)化測(cè)試,就能以流線化過程推向生產(chǎn)。
虛擬原型,價(jià)值幾何
SoC設(shè)計(jì)團(tuán)隊(duì)若在CI/CD設(shè)置中使用虛擬原型,便可將構(gòu)建及時(shí)分配給各個(gè)開發(fā)者和系統(tǒng),從而提高生產(chǎn)力。虛擬原型若與容器化技術(shù)相結(jié)合,還有助于建立高效的CI/CD管道,助力對(duì)硬件和軟件活動(dòng)進(jìn)行深入分析,運(yùn)行自動(dòng)化回歸測(cè)試,同時(shí)繼續(xù)發(fā)揮其作為交互開發(fā)平臺(tái)的功能。
新思科技虛擬原型系列解決方案可提供一系列工具與服務(wù),幫助實(shí)現(xiàn)早期軟件開發(fā),為項(xiàng)目成功保駕護(hù)航。這一系列解決方案包括經(jīng)過預(yù)驗(yàn)證的虛擬化開發(fā)工具包(VDK),內(nèi)含針對(duì)具體設(shè)計(jì)的虛擬原型,適合各類軟件開發(fā)。新思科技VDK還包含功能強(qiáng)大的調(diào)試與分析工具,并且不依賴于RTL設(shè)計(jì),這意味著最早可在硬件可用前12個(gè)月即可進(jìn)行軟件開發(fā)。
新思科技VDK可輕松實(shí)現(xiàn)與現(xiàn)有CI/CD設(shè)置的集成。無(wú)論是“一次構(gòu)建,隨處運(yùn)行”的可執(zhí)行軟件包、檢查點(diǎn)和恢復(fù)功能,還是有助于進(jìn)行回歸測(cè)試和部署的容器化技術(shù),VDK所涵蓋的大量功能可為嵌入式軟件開發(fā)提供更精簡(jiǎn)、更高效的管道。此外,新思科技VDK還可與GitLab和Jenkins開發(fā)運(yùn)營(yíng)平臺(tái)、Docker容器、Kubernetes容器編排系統(tǒng)等業(yè)內(nèi)軟件開發(fā)與測(cè)試技術(shù)進(jìn)行無(wú)縫集成。
-
處理器
+關(guān)注
關(guān)注
68文章
19118瀏覽量
228869 -
新思科技
+關(guān)注
關(guān)注
5文章
785瀏覽量
50292 -
虛擬原型
+關(guān)注
關(guān)注
0文章
5瀏覽量
5116
原文標(biāo)題:虛擬原型技術(shù)加速軟件創(chuàng)新,產(chǎn)品上市快人一步
文章出處:【微信號(hào):Synopsys_CN,微信公眾號(hào):新思科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論