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