艱巨的工作:軟件/硬件協(xié)同設(shè)計
工程師們逐漸發(fā)現(xiàn),他們不得不協(xié)調(diào)對一個產(chǎn)品的軟件和硬件部分同時進行的開發(fā)工作。
em>要點
● 工程師通過體系結(jié)構(gòu),而不只是通過應(yīng)用代碼來實現(xiàn)產(chǎn)品多樣化。
● 物理原型法是微處理器時代初期使用的開發(fā)系統(tǒng)和在線仿真器的天然演進。
● 基于平臺的設(shè)計通過提供已驗證的硬件體系結(jié)構(gòu)來簡化SOC產(chǎn)品的開發(fā)。
● 在所有協(xié)同設(shè)計方法中,ESL具有最好的建模靈活性,但同時也帶來了復(fù)雜性。
---------------------------------------------------------------------------------------------
在 ASIC 普及應(yīng)用之前,人們都是先開發(fā)和調(diào)試執(zhí)行平臺,然后為它們編寫軟件。軟件工程師到硬件健全到接近其發(fā)布的版本時,才完成大多數(shù)操作系統(tǒng)的開發(fā)工作。工程師開發(fā)產(chǎn)品時使用的是已為大家所接受的固定平臺,從主機到微型計算機和微控制器,不一而足 。應(yīng)用軟件使產(chǎn)品與眾不同并使之具有市場優(yōu)勢的部件。半導(dǎo)體行業(yè)在制造能力方面取得了進步,可以在一塊芯片上為工程師提供幾百萬個晶體管。EDA行業(yè)提供的新工具和改進的工具使設(shè)計師能夠高效地使用額外的晶體管。
ASIC 使硬件結(jié)構(gòu)體系定制化,因此也使相關(guān)軟件只適用于某一任務(wù)。設(shè)計師創(chuàng)建硬件來滿足要開發(fā)的產(chǎn)品的要求,常常創(chuàng)建新的計算引擎,并幾乎總是設(shè)計新的外設(shè)控制器來滿足終端產(chǎn)品的執(zhí)行速度、功耗和制造成本等目標(biāo)。新的硬件體系結(jié)構(gòu)需從操作系統(tǒng)到設(shè)備驅(qū)動和總線協(xié)議的多層新軟件。操作系統(tǒng)很少是通用的,而是專用的,公司必須為其推出產(chǎn)品系列中的每一種新產(chǎn)品修改操作系統(tǒng)。乍一看,似乎本來就應(yīng)該先開發(fā)硬件平臺,然后再編寫在其上運行的軟件。用這種方法,軟件工程師可以更方便地調(diào)試代碼,因為他們使用的是固定的執(zhí)行引擎和健全的開發(fā)工具。但依次開發(fā)硬件和軟件存在兩個問題,其中第一個問題是依次開發(fā)周期的長度。在許多情況下,采用先開發(fā)、調(diào)試硬件,然后再開發(fā)軟件的方法,開發(fā)周期很長,以至產(chǎn)品失去上市良機。第二個問題是發(fā)生硬件設(shè)計錯誤的可能性。如果你在開發(fā)軟件時才檢測到硬件開發(fā)中的錯誤,則設(shè)計小組必須返回去進行修改,這可能要花費掉好幾周甚至幾個月的寶貴時間。此外,在整個設(shè)計周期中,錯誤發(fā)現(xiàn)得越晚,修改就越復(fù)雜。問題的實質(zhì)是:同時開發(fā)硬件與軟件部分是一個必要條件,而不是一種奢侈。
在同時開發(fā)軟件/硬件的過程中,工程師可以使用許多方法(附文《SOC驗證的方方面面》)。你可以把它們簡化成三種方法:硬件仿真、基于平臺的設(shè)計和 ESL(電子系統(tǒng)級)設(shè)計。這些方法仍然以硬件為中心, 盡管有些廠商聲稱他們的工具可提供一種評估介于功能的硬件實現(xiàn)和軟件實現(xiàn)之間的折衷方案的手段。
第一種方法在實際硬件可供使用之前為應(yīng)用工程師提供一個軟件模型或硬件模型,供開發(fā)軟件代碼時使用。第二種方法類似于建立一個供編寫軟件用的硬件平臺目標(biāo)的老方法。雖然并不是所有的硬件都有,但大部分都有,而且硬件系統(tǒng)符合已有的標(biāo)準(zhǔn)與協(xié)議,從而為軟件開發(fā)人員提供一種結(jié)構(gòu)。第三種方法在最終的體系結(jié)構(gòu)方面具有最大的靈活性,但它也最復(fù)雜。它要求設(shè)計人員在不同的抽象層次上工作,并了解各種抽象模型的限制以作出正確的假設(shè)。
顧名思義,物理原型法允許工程師使用一個原型代表目前還沒有的硬件塊。這一方法沿革久遠,為人所熟知。很多年前,硬件系統(tǒng)是由標(biāo)準(zhǔn)部件組成的,工程師們會開發(fā)一塊試驗電路板,板上有已知的部件和一些用來模擬目前還沒有的數(shù)字邏輯器件的硬件,以便在整個系統(tǒng)實用之前,軟件工程師能對芯核進行調(diào)試。盡管物理原型法在今天實施起來與15年前有所不同,但這種方法沒有多大變化。仿真產(chǎn)