復雜嵌入式系統(tǒng)已日益普及并成為我們?nèi)粘I畹囊徊糠帧R惠v汽車平均包含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ù)級模型的多個“視角”,而且要添加定時還需要更多的“視角”。維護這些“多視角”本身就有問題,而這些視角之間在時序和功能方面的不一致還會導致驗證錯誤。此外,最終將其轉(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è)計是最復雜也是競爭最激烈的領(lǐng)域。越來越多領(lǐng)先的無線設(shè)計公司開始利用虛擬系統(tǒng)原型技術(shù)提高設(shè)計生產(chǎn)力、縮短上市時間,并降低風險。以下介紹的無線設(shè)計在一塊芯片中容納了兩個處理器內(nèi)核、一個DSP、多級存儲器、6種復雜的多層總線結(jié)構(gòu)、一個實時操作系統(tǒng)、超過30個外設(shè),外加超過兩百萬行代碼。這款手機的SoC具備GSM控制功能、多媒體功能、二維和三維圖形處理功能、相機接口,以及一系列諸如WiFi和USB之類的其他接口。

圖2:利用VSP技術(shù),軟件開發(fā)可以在硬件就緒前9個月甚至更早開始。
以前的項目結(jié)束后,這個設(shè)計小組決定必須改變傳統(tǒng)的“先硬件后軟件”的設(shè)計方法才能滿足日益縮短的上市時間需求。
采用VSP的結(jié)果
他們選擇了VaST Systems提供的虛擬系統(tǒng)原型方案,這不但是一個高性能的方案,而且絲毫無損設(shè)計精度。從系統(tǒng)架構(gòu)階段直到軟硬件協(xié)同開發(fā)和驗證階段都可以采用同一個VaST處理器模型(虛擬系統(tǒng)原型的核心)。
根據(jù)配置的不同,VaST處理器模型在仿真單處理器時,在保持原有的周期、寄存器和定時精度的同時,速度在50到200MIPS之間;在仿真帶分層存儲器結(jié)構(gòu)和多級總線的多內(nèi)核系統(tǒng)時,在保持周期精度的同時速度可達10到100MIPS。
首先,系統(tǒng)架構(gòu)師利用VSP進行系統(tǒng)架構(gòu)研究和分析。VSP能夠運行基于應(yīng)用的軟件,因此設(shè)計師可以據(jù)此考慮緩存的大小、處理器的處理能力等性能問題,同時還可以檢查出系統(tǒng)中潛在的資源共享、同步和總線帶寬問題。此外,利用VSP,設(shè)計小組還可以在真實系統(tǒng)的環(huán)境下檢查第三方IP。
有了VSP,軟件開發(fā)人員可以提前幾個月開始編寫系統(tǒng)中的關(guān)鍵函數(shù)(例如系統(tǒng)初始化程序、硬件抽象層、RTOS/OS及其相關(guān)的設(shè)備驅(qū)動程序、中間件軟件,甚至是嵌入式應(yīng)用的代碼),然后再進入傳統(tǒng)的硬件、軟件開發(fā)流程。

圖3:傳統(tǒng)的手機設(shè)計流程和利用虛擬系統(tǒng)原型的手機設(shè)計流程的比較
在使用VSP之后,這家公司發(fā)現(xiàn)他們的競爭優(yōu)勢得到了很大提升,于是決定繼續(xù)將VSP技術(shù)作為其首選設(shè)計方法。
本文小結(jié)
嵌入式系統(tǒng)不論從絕對數(shù)量還是從復雜度來說都在飛速地發(fā)展,而且在嵌入式系統(tǒng)中,通過軟件實現(xiàn)的功能越來越多。
傳統(tǒng)的先硬件后軟件的設(shè)計方法對這種復雜的嵌入式系統(tǒng)開發(fā)已不再適用。因為不但從質(zhì)量還是從生產(chǎn)力的角度說,軟件和硬件都必須同時開發(fā)和驗證。
人們早期所作的用軟件來建模硬件系統(tǒng)的嘗試存在很多問題,包括要求設(shè)計師創(chuàng)建并維護模型的多個“角度”。要解決這些問題,硬件系統(tǒng)的軟件模型必需同時具備快速和準確兩個特點。具備了這兩個特點的模型就有可能既適用于系統(tǒng)架構(gòu)階段,又能成為出色的軟硬件協(xié)同開發(fā)參考模型。
VaST Systems提供的技術(shù)和方法能夠在不損失速度和精度的前提下提供快速準確的虛擬處理器模型(嵌入式系統(tǒng)的核心)。已經(jīng)有設(shè)計團隊采用了我們的系統(tǒng)原型,根據(jù)配置的不同,該模型在單處理器內(nèi)核系統(tǒng)中的仿真速度可達50到 200 MIPS,在帶分層存儲器結(jié)構(gòu)和多級總線的多內(nèi)核系統(tǒng)中可達10到 100 MIPS。
一家領(lǐng)先的手機嵌入式系統(tǒng)供應(yīng)商采用了虛擬系統(tǒng)原型 技術(shù),并在硬件就緒之前9個月就開始了軟件開發(fā)。用他們的話說,采用虛擬系統(tǒng)原型 技術(shù)可謂“用更少的成本和更短的開發(fā)時間設(shè)計出更好的產(chǎn)品”。