艱巨的工作:軟件/硬件協(xié)同設(shè)計(jì)
艱巨的工作:軟件/硬件協(xié)同設(shè)計(jì)
本文引用地址:http://m.butianyuan.cn/article/8738.htm工程師們逐漸發(fā)現(xiàn),他們不得不協(xié)調(diào)對(duì)一個(gè)產(chǎn)品的軟件和硬件部分同時(shí)進(jìn)行的開(kāi)發(fā)工作。
要點(diǎn)
● 工程師通過(guò)體系結(jié)構(gòu),而不只是通過(guò)應(yīng)用代碼來(lái)實(shí)現(xiàn)產(chǎn)品多樣化。
● 物理原型法是微處理器時(shí)代初期使用的開(kāi)發(fā)系統(tǒng)和在線仿真器的天然演進(jìn)。
● 基于平臺(tái)的設(shè)計(jì)通過(guò)提供已驗(yàn)證的硬件體系結(jié)構(gòu)來(lái)簡(jiǎn)化 SOC 產(chǎn)品的開(kāi)發(fā)。
● 在所有協(xié)同設(shè)計(jì)方法中,ESL 具有最好的建模靈活性,但同時(shí)也帶來(lái)了復(fù)雜性。
---------------------------------------------------------------------------------------------
在 ASIC 普及應(yīng)用之前,人們都是先開(kāi)發(fā)和調(diào)試執(zhí)行平臺(tái),然后為它們編寫(xiě)軟件。軟件工程師到硬件健全到接近其發(fā)布的版本時(shí),才完成大多數(shù)操作系統(tǒng)的開(kāi)發(fā)工作。工程師開(kāi)發(fā)產(chǎn)品時(shí)使用的是已為大家所接受的固定平臺(tái),從主機(jī)到微型計(jì)算機(jī)和微控制器,不一而足 。應(yīng)用軟件使產(chǎn)品與眾不同并使之具有市場(chǎng)優(yōu)勢(shì)的部件。半導(dǎo)體行業(yè)在制造能力方面取得了進(jìn)步,可以在一塊芯片上為工程師提供幾百萬(wàn)個(gè)晶體管。EDA行業(yè)提供的新工具和改進(jìn)的工具使設(shè)計(jì)師能夠高效地使用額外的晶體管。
ASIC 使硬件結(jié)構(gòu)體系定制化,因此也使相關(guān)軟件只適用于某一任務(wù)。設(shè)計(jì)師創(chuàng)建硬件來(lái)滿足要開(kāi)發(fā)的產(chǎn)品的要求,常常創(chuàng)建新的計(jì)算引擎,并幾乎總是設(shè)計(jì)新的外設(shè)控制器來(lái)滿足終端產(chǎn)品的執(zhí)行速度、功耗和制造成本等目標(biāo)。新的硬件體系結(jié)構(gòu)需從操作系統(tǒng)到設(shè)備驅(qū)動(dòng)和總線協(xié)議的多層新軟件。操作系統(tǒng)很少是通用的,而是專(zhuān)用的,公司必須為其推出產(chǎn)品系列中的每一種新產(chǎn)品修改操作系統(tǒng)。乍一看,似乎本來(lái)就應(yīng)該先開(kāi)發(fā)硬件平臺(tái),然后再編寫(xiě)在其上運(yùn)行的軟件。用這種方法,軟件工程師可以更方便地調(diào)試代碼,因?yàn)樗麄兪褂玫氖枪潭ǖ膱?zhí)行引擎和健全的開(kāi)發(fā)工具。但依次開(kāi)發(fā)硬件和軟件存在兩個(gè)問(wèn)題,其中第一個(gè)問(wèn)題是依次開(kāi)發(fā)周期的長(zhǎng)度。在許多情況下,采用先開(kāi)發(fā)、調(diào)試硬件,然后再開(kāi)發(fā)軟件的方法,開(kāi)發(fā)周期很長(zhǎng),以至產(chǎn)品失去上市良機(jī)。第二個(gè)問(wèn)題是發(fā)生硬件設(shè)計(jì)錯(cuò)誤的可能性。如果你在開(kāi)發(fā)軟件時(shí)才檢測(cè)到硬件開(kāi)發(fā)中的錯(cuò)誤,則設(shè)計(jì)小組必須返回去進(jìn)行修改,這可能要花費(fèi)掉好幾周甚至幾個(gè)月的寶貴時(shí)間。此外,在整個(gè)設(shè)計(jì)周期中,錯(cuò)誤發(fā)現(xiàn)得越晚,修改就越復(fù)雜。問(wèn)題的實(shí)質(zhì)是:同時(shí)開(kāi)發(fā)硬件與軟件部分是一個(gè)必要條件,而不是一種奢侈。
在同時(shí)開(kāi)發(fā)軟件/硬件的過(guò)程中,工程師可以使用許多方法(附文《SOC驗(yàn)證的方方面面》)。你可以把它們簡(jiǎn)化成三種方法:硬件仿真、基于平臺(tái)的設(shè)計(jì)和 ESL(電子系統(tǒng)級(jí))設(shè)計(jì)。這些方法仍然以硬件為中心, 盡管有些廠商聲稱(chēng)他們的工具可提供一種評(píng)估介于功能的硬件實(shí)現(xiàn)和軟件實(shí)現(xiàn)之間的折衷方案的手段。
第一種方法在實(shí)際硬件可供使用之前為應(yīng)用工程師提供一個(gè)軟件模型或硬件模型,供開(kāi)發(fā)軟件代碼時(shí)使用。第二種方法類(lèi)似于建立一個(gè)供編寫(xiě)軟件用的硬件平臺(tái)目標(biāo)的老方法。雖然并不是所有的硬件都有,但大部分都有,而且硬件系統(tǒng)符合已有的標(biāo)準(zhǔn)與協(xié)議,從而為軟件開(kāi)發(fā)人員提供一種結(jié)構(gòu)。第三種方法在最終的體系結(jié)構(gòu)方面具有最大的靈活性,但它也最復(fù)雜。它要求設(shè)計(jì)人員在不同的抽象層次上工作,并了解各種抽象模型的限制以作出正確的假設(shè)。
顧名思義,物理原型法允許工程師使用一個(gè)原型代表目前還沒(méi)有的硬件塊。這一方法沿革久遠(yuǎn),為人所熟知。很多年前,硬件系統(tǒng)是由標(biāo)準(zhǔn)部件組成的,工程師們會(huì)開(kāi)發(fā)一塊試驗(yàn)電路板,板上有已知的部件和一些用來(lái)模擬目前還沒(méi)有的數(shù)字邏輯器件的硬件,以便在整個(gè)系統(tǒng)實(shí)用之前,軟件工程師能對(duì)芯核進(jìn)行調(diào)試。盡管物理原型法在今天實(shí)施起來(lái)與15年前有所不同,但這種方法沒(méi)有多大變化。仿真產(chǎn)品供應(yīng)商提供的一種硬件系統(tǒng)包括:與一個(gè)作為主機(jī)的計(jì)算系統(tǒng)接口所必需的電路;能使工程師配置目標(biāo)數(shù)字電路硬件模型的內(nèi)部通信邏輯;對(duì)一個(gè)或多個(gè)模擬目標(biāo)邏輯的 FPGA進(jìn)行編程的機(jī)制。
Aptix 公司負(fù)責(zé)市場(chǎng)與業(yè)務(wù)開(kāi)發(fā)的高級(jí)副總裁Charles Miller認(rèn)為:有了一個(gè)在幾十兆赫下運(yùn)行的FPGA原型,操作系統(tǒng)引導(dǎo)時(shí)間只有幾分鐘,從而為軟件開(kāi)發(fā)人員提供了一個(gè)有用的工具。原型可以用實(shí)際的顯示、輸入設(shè)備和其它外設(shè)來(lái)驅(qū)動(dòng)目標(biāo)系統(tǒng)。在最終投片前,一個(gè)軟件工程師可能要對(duì)設(shè)計(jì)運(yùn)行幾十億個(gè)驗(yàn)證周期。如果軟件工程師發(fā)現(xiàn)了問(wèn)題,可以立即在 RTL 級(jí)進(jìn)行修正,既免去開(kāi)發(fā)軟件變通方案的費(fèi)用,也不會(huì)犧牲最終產(chǎn)品的性能。更好的是,軟件開(kāi)發(fā)是與硬件開(kāi)發(fā)同時(shí)進(jìn)行的,最終產(chǎn)品可以更快地開(kāi)發(fā)出來(lái)。
Aptix 公司提供的一整套軟件和硬件產(chǎn)品,能使工程師將復(fù)雜設(shè)計(jì)分配給多個(gè)FPGA,并將它們與現(xiàn)有硬件組合在一起,以完成設(shè)計(jì)。已被 Verisity公司(www.verisity.com)并購(gòu)的 Axis 系統(tǒng)公司利用可重配置的計(jì)算技術(shù),在其Xcite 和 Xtreme 產(chǎn)品中對(duì)硬件進(jìn)行仿真和加速仿真。
Cadence 公司的 Quickturn 部門(mén)出售 Palladium 系列產(chǎn)品。Palladium 產(chǎn)品是與 Cadence 公司的 Incisive 驗(yàn)證平臺(tái)完全兼容的,具有仿真與加速兩種功能。用戶們可以在網(wǎng)絡(luò)內(nèi)共享一個(gè)產(chǎn)品,對(duì)同一被仿真硬件進(jìn)行模擬。在仿真模式下,Palladium產(chǎn)品只要內(nèi)含外設(shè)、嵌入式處理器和嵌入式軟件,就可全面支持系統(tǒng)的驗(yàn)證。EVE(仿真與驗(yàn)證工程)公司開(kāi)發(fā)了 ZeBu,目的在于減少傳統(tǒng)仿真器的費(fèi)用,并保持所需的高性能。該產(chǎn)品可以對(duì)復(fù)雜度達(dá) 100 萬(wàn)~1200 萬(wàn)個(gè)門(mén)的 ASIC 設(shè)計(jì)進(jìn)行仿真。
Mentor Graphics 公司仿真產(chǎn)品系列中的最新產(chǎn)品 CelaroPro 可以應(yīng)對(duì)業(yè)內(nèi)最大設(shè)計(jì)的挑戰(zhàn)。CelaroPro把仿真功能擴(kuò)大到超出純芯片仿真的范圍,并生成一種強(qiáng)大的軟硬件協(xié)同驗(yàn)證系統(tǒng),其先進(jìn)功能包括在 C 語(yǔ)言環(huán)境中的代碼覆蓋、試驗(yàn)平臺(tái)加速、交互設(shè)計(jì)調(diào)試以及仿真等。
為工程師提供各種可嵌入處理器芯核的公司也經(jīng)常提供仿真系統(tǒng)。ARM 提供的 RealView Baseboard 支持圍繞 ARM 芯核和 Power/VR MBX 內(nèi)核的 3-D 圖形應(yīng)用開(kāi)發(fā)。該系統(tǒng)提供一個(gè) AMBA 多層原型環(huán)境,并且既有擴(kuò)充存儲(chǔ)器,又有一系列外設(shè)控制器。它支持供靜態(tài)與動(dòng)態(tài)存儲(chǔ)器用的擴(kuò)展模塊位置,供外設(shè)和第二個(gè)處理器用的 logic-tile 擴(kuò)展位置,一個(gè) PCI 背板,時(shí)鐘產(chǎn)生與仲裁,以及一系列 LCD 面板。
Tensilica 提供的低價(jià)位 XT2000 開(kāi)發(fā)工具,使用一個(gè)可編程邏輯器件來(lái)仿真 Xtensa 處理器配置。這種仿真工具包能使開(kāi)發(fā)人員評(píng)估多種處理器配置選擇方案,并在設(shè)計(jì)周期的早期就開(kāi)發(fā)和調(diào)試軟件(圖 1)。
評(píng)論