嵌入式系統(tǒng)的軟硬件協(xié)同設計
傳統(tǒng)的先硬件后軟件嵌入式系統(tǒng)的系統(tǒng)設計模式需要反復修改、反復試驗,整個設計過程在很大程度上依賴于設計者的經驗,設計周期、開發(fā)成本高,在反復修改過程中,常常會在某些方面背離原始設計的要求。
本文引用地址:http://m.butianyuan.cn/article/201608/295106.htm軟硬件協(xié)同設計為解決上述問題而提出的一種全新的系統(tǒng)設計思想。他依據(jù)系統(tǒng)目標要求,通過綜合分析系統(tǒng)軟硬件功能及現(xiàn)有資源,最大限度地挖掘系統(tǒng)軟硬件之間的并發(fā)性,協(xié)同設計軟硬件體系結構,以便系統(tǒng)能工作在最佳工作狀態(tài).種設計方法,可以充分利用現(xiàn)有的軟硬件資源,縮短系統(tǒng)開發(fā)周期、降低開發(fā)成本、提高系統(tǒng)性能,避免由于獨立設計軟硬件體系結構而帶來的弊端。
將一設計思想應用在實際產品開發(fā)上離不開EDA工具的幫助,本文也將對幾種比較成熟的協(xié)同設計EDA工具加以簡單介紹。
協(xié)同設計與傳統(tǒng)設計方法的比較
嵌入式系統(tǒng)是由若干個功能模塊組成的,這些功能模塊按照其性質可以分為軟件模塊和硬件模塊兩類。在過去幾十年內,系統(tǒng)的設計方法經歷了很大的變化,有自上向下的設計方法,也有模塊化設計方法,他們總體上都是硬件模塊優(yōu)先的設計方法,將其統(tǒng)稱為傳統(tǒng)的設計方法。
這種設計方法將硬件和軟件分為兩個獨立的部分。
在整個設計過程中,通常采用“硬件優(yōu)先的原則",即在粗略估計軟件任務需求的情況下,首先進行硬件設計,然后在此硬件設計平臺上進行軟件設計。由于在硬件設計過程中缺乏對軟件構架和實現(xiàn)機制的清晰了解,硬件設計工作帶有一定的盲目性。他的系統(tǒng)優(yōu)化由于設計空間的限制,只能改善硬件/軟件各自的性能,不可能對系統(tǒng)做出較好的綜合優(yōu)化,得到的最終設計結果很難充分利用硬軟件資源,難以適應現(xiàn)代復雜的、大規(guī)模的系統(tǒng)設計任務。
而嵌式系統(tǒng)軟硬件協(xié)同設計是讓軟件設計和硬件設計作為一個整體并行設計,找到軟硬件的最佳結合點,從而使系統(tǒng)高效工作。
軟硬件協(xié)同設計最主要的一個優(yōu)點就是在設計過程中,智能硬件和智能軟件設計是相互作用的,這種相互作用發(fā)生在設計過程的各個階段和各個層次。
設計過程充分體現(xiàn)了軟硬件的協(xié)同性。在軟硬件功能分配時就考慮到了現(xiàn)有的軟硬件資源,在軟硬件功能的設計和仿真評價過程中,軟件和硬件是互相支持的。這就使得軟硬件功能模塊能夠在設計開發(fā)的早期互相結合,從而及早發(fā)現(xiàn)問題及早解決,避免了(至少可以減少)在設計開發(fā)后期反復修改系統(tǒng)以及由此帶來的一系列問題,而且有利于挖掘系統(tǒng)潛能、縮小產品的體積、降低系統(tǒng)成本、提高系統(tǒng)整體性能。
軟硬件協(xié)同設計的過程
總的來說,軟硬件協(xié)同設計的系統(tǒng)設計過程可以分為系統(tǒng)描述、系統(tǒng)設計、仿真驗證與綜合實現(xiàn)4個階段。
系統(tǒng)描述是用一種或多種系統(tǒng)級描述語言對所要設計的嵌入式系統(tǒng)的功能和性能進行全面的描述,建立系統(tǒng)的軟硬件模型的過程。系統(tǒng)建??梢杂稍O計者用非正式語言,甚至是自然語言來手工完成,也可以借助EDA工具實現(xiàn)。手工完成容易導致系統(tǒng)描述不準確,在后續(xù)過程中需要修改系統(tǒng)模型,從而使系統(tǒng)設計復雜化等問題,而優(yōu)秀的EDA工具可以克服這些弊端。
對于嵌人式系統(tǒng)來說,系統(tǒng)設計可以分為軟硬件功能分配和系統(tǒng)映射2個階段。軟硬件功能分配就是要確定哪些系統(tǒng)功能由硬件模塊來實現(xiàn),哪些系統(tǒng)功能由軟件模塊來實現(xiàn)。硬件一般能夠提供更好的性能,而軟件更容易開發(fā)和修改,成本相對較低。由于硬件模塊的可配置性,可編程性以及某些軟件功能的硬件化、固件化,某些功能既能用軟件實現(xiàn),又能用硬件實現(xiàn),軟硬件的界限已經不十分明顯。此外在進行軟硬件功能分配時,既要考慮市場可以提供的資源狀況,又要考慮系統(tǒng)成本、開發(fā)時間等諸多因素。因此,軟硬件的功能劃分是一個復雜而艱苦的過程,是整個任務流程最重要的環(huán)節(jié)。
系統(tǒng)映射是根據(jù)系統(tǒng)描述和軟硬件任務劃分的結果,分別選擇系統(tǒng)的軟硬件模塊以及其接口的具體實現(xiàn)方法,并將其集成,最終確定系統(tǒng)的體系結構。具體地說,這一過程就是要確定系統(tǒng)將采用哪些硬件模塊(如全定制芯片、MCU,DSP,FPGA、存儲器、I/O接口部件等)、軟件模塊(嵌入式操作系統(tǒng)、驅動程序、功能模塊等)和軟硬件模塊之間的通訊方法(如總線、共享存儲器、數(shù)據(jù)通道等)以及這些模塊的具體實現(xiàn)方法。
仿真驗證是檢驗系統(tǒng)設計正確性的過程。他對設計結果的正確性進行評估,以達到避免在系統(tǒng)實現(xiàn)過程中發(fā)現(xiàn)問題時再進行反復修改的目的。在系統(tǒng)仿真驗證的過程中,模擬的工作環(huán)境和實際使用時差異很大,軟硬件之間的相互作用方式及作用效果也就不同,這也使得難以保證系統(tǒng)在真實環(huán)境下工作的可靠性。因此,系統(tǒng)模擬的有效性是有限的。
評論