可用于嵌入式軟硬件開發(fā)和系統(tǒng)架構(gòu)的虛擬系統(tǒng)原型
復(fù)雜嵌入式系統(tǒng)已日益普及并成為我們?nèi)粘I畹囊徊糠?。一輛汽車平均包含80個每秒能執(zhí)行上億條指令的嵌入式處理器。以一個單獨的dsp上以軟件方式實現(xiàn)移動調(diào)制解調(diào)器的配置為例,現(xiàn)在的手機包含2到4個處理器。 然而隨著嵌入式系統(tǒng)日益普及,設(shè)計危機也逐漸凸現(xiàn)。統(tǒng)計數(shù)據(jù)顯示,近40%的嵌入式系統(tǒng)開發(fā)延遲,還有超過9%的開發(fā)最終被取消。 這些統(tǒng)計數(shù)據(jù)的矛頭都指向基本工程方法的失敗。在傳統(tǒng)的開發(fā)步驟中,硬件設(shè)計要超前軟件開發(fā),而嵌入式系統(tǒng)中軟件正日益占據(jù)關(guān)鍵地位。因而,傳統(tǒng)開發(fā)步驟在嵌入式系統(tǒng)開發(fā)中遭遇失敗并不讓人意外。何況一個產(chǎn)品的上市時間也越來越短(后文舉出的手機開發(fā)的例子總開發(fā)時間還不到一年),這又給嵌入式系統(tǒng)的開發(fā)雪上加霜。很明顯,嵌入式設(shè)計的方法和工具需要進行一次革命。 也就是說,系統(tǒng)架構(gòu)、硬件實現(xiàn)和軟件實現(xiàn)各階段之間的關(guān)系需要調(diào)整,而這種需求恰好正是目前的電子系統(tǒng)級設(shè)計(esl)中最受關(guān)注的問題。然而,現(xiàn)有的大多數(shù)基于esl的方法都只能提供部分解決方案。我們需要的是一套全新的設(shè)計模式,一套能夠?qū)θ到y(tǒng)建模的方法,以促進系統(tǒng)架構(gòu)研究并實現(xiàn)軟硬件協(xié)同設(shè)計,以允許設(shè)計人員從原始設(shè)計不斷改進,直到最終實現(xiàn)系統(tǒng)。 至今為止,大多數(shù)將soc系統(tǒng)級設(shè)計自動化為rtl實現(xiàn)的嘗試都存在設(shè)計精確度和設(shè)計生產(chǎn)力不足的缺陷。早期那些力圖將c、c++和systemc自動化為硬件建模語言(能將順序軟件語義翻譯為基于狀態(tài)機的并行硬件語言) 的工具,不但要求開發(fā)人員創(chuàng)建并維護功能事務(wù)級模型的多個“視角”,而且要添加定時還需要更多的“視角”。維護這些“多視角”本身就有問題,而這些視角之間在時序和功能方面的不一致還會導(dǎo)致驗證錯誤。此外,最終將其轉(zhuǎn)為rtl的過程主要仍是一個手工操作的過程。 要使soc設(shè)計走出困境,很重要的一點就是讓設(shè)計師們能夠采用一種在系統(tǒng)架構(gòu)階段設(shè)計的定時精確的高性能系統(tǒng)級模型,然后隨著開發(fā)人員從架構(gòu)階段進入軟硬件協(xié)同開發(fā)和驗證階段,改進而不是丟棄這個模型。盡管暫時還沒有一種全自動化的工具鏈能夠?qū)崿F(xiàn)從系統(tǒng)架構(gòu)到rtl實現(xiàn)這一系列完整的設(shè)計任務(wù),但一些嵌入式設(shè)計方案供應(yīng)商已經(jīng)開始了成功的嘗試,其中一種很有前途的技術(shù)就是虛擬系統(tǒng)原型技術(shù)。
圖1:每個公司一年里啟動的項目提前完成,推遲完成,按時完成和取消所占的百分比(平均每個公司啟動項目所占百分比)。 虛擬系統(tǒng)原型(vsp)是一種基于軟件仿真的電子系統(tǒng)模型,其中可以包含一個或多個處理器、總線、硬件外設(shè),甚至可以包含作為整個系統(tǒng)一部分的機械或模擬子系統(tǒng)模型。但最重要的是,vsp運行的是與真實硬件相同的經(jīng)過編譯和鏈接的目標代碼,因而能夠準確預(yù)測系統(tǒng)在實際情況下的表現(xiàn)。此外,vsp還是一種周期精確(cycle-accurate)的模型,因此,被設(shè)計的系統(tǒng)可以根據(jù)對實時性的要求建模。 一旦模型建立,硬件和軟件開發(fā)就可以同時啟動,這樣一來,既減少了開發(fā)所用的總資源,也縮短了開發(fā)周期。 傳統(tǒng)的“丟棄式”系統(tǒng)級模型在硬件和軟件實現(xiàn)階段就過時了,而vsp仍可繼續(xù)用于硬件驗證。由于這一優(yōu)秀的模型是周期精確(cycle-accurate)的,因而rtl實現(xiàn)可以在任何時候換入 (swap in) 。而且,在rtl模型換入后, 為了進行性能分析或者更快地運行更大的軟件實體,還可以用原來的高級vsp模型將rtl模型換出。系統(tǒng)級測試范例是作為可執(zhí)行系統(tǒng)規(guī)范的一部分生成的,然后,隨著軟硬件開發(fā)過程的進展,再由上至下地生成結(jié)構(gòu)、模塊和單元測試。 最后一點,vsp的升級和分發(fā)也很容易。對那些在地域上分布較零散的開發(fā)團隊而言,通過網(wǎng)絡(luò)發(fā)送軟件模型也比運送電路板更簡單。這樣一來,工程師只有在最后的集成階段才需要真實的硬件和芯片。而且,由于軟硬件開發(fā)采用的是同一個虛擬系統(tǒng)原型,因此集成起來也更快和更容易。 虛擬系統(tǒng)原型在無線設(shè)計中的應(yīng)用舉例 在單芯片系統(tǒng)的開發(fā)中,無線系統(tǒng)設(shè)計是最復(fù)雜也是競爭最激烈的領(lǐng)域。越來越多領(lǐng)先的無線設(shè)計公司開始利用虛擬系統(tǒng)原型技術(shù)提高設(shè)計生產(chǎn)力、縮短上市時間,并降低風(fēng)險。以下介紹的無線設(shè)計在一塊芯片中容納了兩個處理器內(nèi)核、一個dsp、多級存儲器、6種復(fù)雜的多層總線結(jié)構(gòu)、一個實時操作系統(tǒng)、超過30個外設(shè),外加超過兩百萬行代碼。這款手機的soc具備gsm控制功能、多媒體功能、二維和三維圖形處理功能、相機接口,以及一系列諸如wifi和usb之類的其他接口。
圖3:傳統(tǒng)的手機設(shè)計流程和利用虛擬系統(tǒng)原型的手機設(shè)計流程的比較