SoPC與嵌入式系統(tǒng)軟硬件協(xié)同設計
——
關鍵詞:嵌入式系統(tǒng) 軟硬件協(xié)同設計 片上可編程系統(tǒng)(SoPC)
1 概述
20世紀90年代初,電子產品的開發(fā)出現(xiàn)兩個顯著的特點:產品深度復雜化和上市時限縮短?;陂T級描述的電路級設計方法已經趕不上新形勢的發(fā)展需要,于是基于系統(tǒng)級的設計方法開始進入人們的視野。隨著半導體工藝技術的發(fā)展,特別是超深亞微米(VDSM,<0.25 μm)工藝技術的成熟,使得在一塊硅芯片上集成不同功能模塊(成為系統(tǒng)集成芯片)成為可能。這種將各種功能模塊集成于一塊芯片上的完整系統(tǒng),就是片上系統(tǒng)SoC(System on Chip)。 SoC是集成電路發(fā)展的必然趨勢。
SoC設計技術始于20世紀90年代中期,它是一種系統(tǒng)級的設計技術。如今,電子系統(tǒng)的設計已不再是利用各種通用集成電路 IC(Integrated Circuit)進行印刷電路板PCB(Printed Circuit Board)板級的設計和調試,而是轉向以大規(guī)?,F(xiàn)場可編程邏輯陣列 FPGA (FieldProgrammable Gate Array)或專用集成電路 ASIC (ApplicationSpecific Integrated Circuit)為物理載體的系統(tǒng)級的芯片設計。使用ASIC為物理載體進行芯片設計的技術稱為片上系統(tǒng)技術,即SoC;使用FPGA作為物理載體進行芯片設計的技術稱為可編程片上系統(tǒng)技術,即SoPC(System on Programmable Chip)。SoC技術和SoPC技術都是系統(tǒng)級的芯片設計技術(統(tǒng)稱為廣義SoC)。
到目前為止,SoC還沒有一個公認的準確定義,但一般認為它有三大技術特征:采用深亞微米(DSM)工藝技術,IP核(Intellectual Property Core)復用以及軟硬件協(xié)同設計。SoC的開發(fā)是從整個系統(tǒng)的功能和性能出發(fā),利用IP復用和深亞微米技術,采用軟件和硬件結合的設計和驗證方法,綜合考慮軟硬件資源的使用成本,設計出滿足性能要求的高效率、低成本的軟硬件體系結構,從而在一個芯片上實現(xiàn)復雜的功能,并考慮其可編程特性和縮短上市時間。使用SoC技術設計的芯片,一般有一個或多個微處理器芯片和數(shù)個功能模塊。各個功能模塊在微處理器的協(xié)調下,共同完成芯片的系統(tǒng)功能,為高性能、低成本、短開發(fā)周期的嵌入式系統(tǒng)設計提供了廣闊前景。
SoPC技術最早是由美國Altera公司于2000年提出的,是現(xiàn)代計算機輔助設計技術、電子設計自動化EDA(Electronics Design Automation)技術和大規(guī)模集成電路技術高度發(fā)展的產物。SoPC技術的目標是將盡可能大而完整的電子系統(tǒng)在一塊FPGA中實現(xiàn),使得所設計的電路在規(guī)模、可靠性、體積、功能、性能指標、上市周期、開發(fā)成本、產品維護及其硬件升級等多方面實現(xiàn)最優(yōu)化。SoPC的設計以IP為基礎,以硬件描述語言為主要設計手段,借助以計算機為平臺的EDA工具,自動化、智能化地自頂向下地進行。
系統(tǒng)級芯片設計是一種高層次的電子設計方法,設計人員針對設計目標進行系統(tǒng)功能描述,定義系統(tǒng)的行為特性,生成系統(tǒng)級的規(guī)格描述。這一過程中可以不涉及實現(xiàn)工藝。一旦目標系統(tǒng)以高層次描述的形式輸入計算機后,EDA系統(tǒng)就能以規(guī)則驅動的方式自動完成整個設計。為了滿足上市時間和性能要求,系統(tǒng)級芯片設計廣泛采用軟硬件協(xié)同設計的方法進行。
2 SoPC設計中的軟硬件協(xié)同設計
2.1軟硬件協(xié)同設計的背景
系統(tǒng)級芯片設計是微電子設計領域的一場革命,它主要有3個關鍵的支撐技術:
① 軟、硬件的協(xié)同設計技術。主要是面向不同目標系統(tǒng)的軟件和硬件的功能劃分理論(Functional Partition Theory)和設計空間搜索技術。
?、?nbsp;IP模塊復用技術。IP是指那些集成度較高并具有完整功能的單元模塊,如MPU、DSP、DRAM、Flash等模塊。IP模塊的再利用,除了可以縮短芯片的設計時間外,還能大大降低設計和制造的成本,提高可靠性。IP可分為硬IP和軟IP。SoPC中使用的IP多數(shù)是軟IP。軟IP可重定制、剪裁和升級,為優(yōu)化資源和提高性能提供了很大的靈活性。
?、?nbsp;模塊以及模塊界面間的綜合分析和驗證技術。綜合分析和驗證是難點,要為硬件和軟件的協(xié)同描述、驗證和綜合提供一個自動化的集成開發(fā)環(huán)境。
過去,最常用的設計方法是層次式設計,把設計分為3個域:行為域描述系統(tǒng)的功能;結構域描述系統(tǒng)的邏輯組成;物理域描述具體實現(xiàn)的幾何特性和物理特性。采用自頂向下的層次式設計方法要完成系統(tǒng)級、功能級、寄存器傳輸級、門級、電路級、版圖級(物理級)的設計,經歷系統(tǒng)描述、功能設計、邏輯設計、電路設計、物理設計、設計驗證和芯片制造的流程,是一個每次都從頭開始的設計過程。傳統(tǒng)的IC設計方法是先設計硬件,再根據(jù)算法設計軟件。在深亞微米設計中,硬件的費用是非常大的。當設計完成后,發(fā)現(xiàn)錯誤進行更改時,要花費大量的人力、物力和時間,且設計周期變長。
現(xiàn)在,芯片的設計是建立在IP復用的基礎之上的,利用已有的芯核進行設計重用,完成目標系統(tǒng)的整體設計以及系統(tǒng)功能的仿真和驗證。一般采用從系統(tǒng)行為級開始的自頂向下設計方法,把處理機制、模型算法、軟件、芯片結構、電路直至器件的設計緊密結合起來,在單個芯片上完成整個系統(tǒng)的功能。同IC組成的系統(tǒng)相比,由于采用了軟硬件協(xié)同設計的方法,能夠綜合并全盤考慮整個系統(tǒng)的各種情況,可以在同樣的工藝技術條件下實現(xiàn)更高性能的系統(tǒng)指標。既縮短開發(fā)周期,又有更好的設計效果,同時還能滿足苛刻的設計限制。
2.2軟硬件協(xié)同設計的發(fā)展過程
嵌入式系統(tǒng)設計早期,主要有兩種方式:一是針對一個特定的硬件進行軟件開發(fā);二是根據(jù)一個已有的軟件實現(xiàn)其具體的硬件結構。前者是一個軟件開發(fā)問題;后者是一個軟件固化的問題。早期的這種設計沒有統(tǒng)一的軟硬件協(xié)同表示方法;沒有設計空間搜索,從而不能自動地進行不同的軟硬件劃分,并對不同的劃分進行評估;不能從系統(tǒng)級進行驗證,不容易發(fā)現(xiàn)軟硬件邊界的兼容問題;上市周期較長。因此,早期的設計存在各種缺陷和不足。使用軟硬件協(xié)同設計后,從系統(tǒng)功能描述開始,將軟硬件完成的功能作全盤考慮并均衡,在設計空間搜索技術的支持下,設計出不同的軟硬件體系結構并進行評估,最終找到較理想的目標系統(tǒng)的軟硬件體系結構,然后使用軟硬件劃分理論進行軟硬件劃分并設計實現(xiàn)。在設計實現(xiàn)時,始終保持軟件和硬件設計的并行進行,并提供互相通信的支持。在設計后期對整個系統(tǒng)進行驗證,最終設計出滿足條件限制的目標系統(tǒng)。以FPGA為基礎的SoPC的軟硬件協(xié)同設計,為芯片設計實現(xiàn)提供了更為廣闊自由的空間。
2.3軟硬件協(xié)同設計涉及的內容
目前,SoPC中的軟硬件協(xié)同設計主要涉及到以下內容:系統(tǒng)功能描述方法、設計空間搜索(DSE)支持、資源使用最優(yōu)化的評估方法、軟硬件劃分理論、軟硬件詳細設計、硬件綜合和軟件編譯、代碼優(yōu)化、軟硬件協(xié)同仿真和驗證等幾個方面,以及同系統(tǒng)設計相關的低壓、低功耗、多布線層數(shù)、高總線時鐘頻率、I/O引腳布線等相關內容。
系統(tǒng)功能描述方法解決系統(tǒng)的統(tǒng)一描述。這種描述應當是對軟硬件通用的,目前一般采用系統(tǒng)描述語言的方式。在軟硬件劃分后,能編譯并映射成為硬件描述語言和軟件實現(xiàn)語言,為目標系統(tǒng)的軟硬件協(xié)同工作提供強有力的保證。
設計空間搜索提供了一種實現(xiàn)不同設計方式、理解目標系統(tǒng)的機制,設計出不同的軟硬件體系結構,使最優(yōu)化的設計實現(xiàn)成為可能。
最優(yōu)化的評估方法解決軟硬件的計量和評估指標,從而能夠對不同的設計進行資源占用評估,并進而選出最優(yōu)化的設計。
FPGA的評估可以做到以引腳為基本核算單位。軟硬件劃分理論從成本和性能出發(fā),決定軟硬件的劃分依據(jù)和方法。基本原則是高速、低功耗由硬件實現(xiàn);多品種、小批量由軟件實現(xiàn);處理器和專用硬件并用以提高處理速度和降低功耗。劃分的方法從兩方面著手:一是面向軟件,從軟件到硬件滿足時序要求;二是面向硬件,從硬件到軟件降低成本。在劃分時,要考慮目標體系結構、粒度、軟硬件實現(xiàn)所占用的成本等各種因素。劃分完后,產生軟硬件分割界面,供軟硬件溝通、驗證和測試使用。
軟硬件詳細設計完成劃分后的軟件和硬件的設計實現(xiàn)。硬件綜合是在廠家綜合庫的支持下,完成行為級、RTL以及邏輯級的綜合。代碼優(yōu)化完成對設計實現(xiàn)后的系統(tǒng)進行優(yōu)化,主要是與處理器相關的優(yōu)化和與處理器無關的優(yōu)化。與處理器相關的優(yōu)化受不同的處理器類型影響很大,一般根據(jù)處理器進行代碼選擇、主要是指令的選擇;指令的調度(并行、流水線等)、寄存器的分配策略等;與處理器無關的優(yōu)化主要有常量優(yōu)化、變量優(yōu)化和代換、表達式優(yōu)化、消除無用變量、控制流優(yōu)化和循環(huán)內優(yōu)化等。
軟硬件協(xié)同仿真和驗證完成設計好的系統(tǒng)的仿真和驗證,保證目標系統(tǒng)的功能實現(xiàn)、滿足性能要求和限制條件,從整體上驗證整個系統(tǒng)。
2.4軟硬件協(xié)同設計的系統(tǒng)結構
軟硬件協(xié)同設計在實際應用中表現(xiàn)為軟硬件協(xié)同設計平臺的開發(fā)。從系統(tǒng)組成的角度,可以用圖1來表述軟硬件協(xié)同設計平臺的系統(tǒng)組成。其中設計空間搜索部分由體系結構庫、設計庫、成本庫、系統(tǒng)功能描述和系統(tǒng)設計約束條件組成。設計空間搜索的任務是對不同的目標要求找到恰當?shù)慕鉀Q辦法。體系結構庫是存放協(xié)同設計支持的各種體系結構數(shù)據(jù)庫,一般是通過不同的模型表現(xiàn)出來。到目前為止,使用較多的模型有狀態(tài)轉換模型(有限狀態(tài)機)、事件驅動模型、物理結構組成模型、數(shù)據(jù)流程模型和混合模型等。體系結構的豐富程度決定了對目標系統(tǒng)的軟硬件協(xié)同設計的支持力度。設計庫中包含可以使用的程序或網表的設計執(zhí)行數(shù)據(jù)庫,為新的設計提供參考依據(jù)。成本庫中提供設計成本的計算方法以及由目標系統(tǒng)的資源消耗、電源消耗、芯片面積、實時要求等組成的數(shù)據(jù)庫,是工作在給定平臺上的明確界定。在設計空間搜索中還有一個比較重要的步驟,是對一個給定設計進行評估,主要有評估目標系統(tǒng)的成本、性能、正確性等。經過評估后的設計可以進行軟硬件劃分,產生硬件描述、軟件描述和軟硬件界面描述三個部分,以及各個部分的具體實現(xiàn)并優(yōu)化。最后進行硬件綜合、軟硬件集成和系統(tǒng)仿真和測試。
圖1軟硬件協(xié)同設計平臺的組成
2.5軟硬件協(xié)同設計流程
面向SoPC的軟硬件協(xié)同設計流程從目標系統(tǒng)構思開始。對一個給定的目標系統(tǒng),經過構思,完成其系統(tǒng)整體描述,然后交給軟硬件協(xié)同設計的開發(fā)集成環(huán)境,由計算機自動完成剩余的全部工作。一般而言,還要經過模塊的行為描述、對模塊的有效性檢查、軟硬件劃分、硬件綜合、軟件編譯、軟硬件集成、軟硬件協(xié)同仿真與驗證等各個階段。軟硬件協(xié)同設計流程如圖2所示。其中軟硬件劃分后產生硬件部分、軟件部分和軟硬件接口界面三個部分。硬件部分遵循硬件描述、硬件綜合與配置、生成硬件組建和配置模塊;軟件部分遵循軟件描述、軟件生成和參數(shù)化的步驟,生成軟件模塊。最后把生成的軟硬件模塊和軟硬件界面集成,并進行軟硬件協(xié)同仿真,以進行系統(tǒng)評估和設計驗證。
圖2軟硬件協(xié)同設計流程
3 SoPC的軟硬件協(xié)同設計的優(yōu)勢
同SoPC相比,SoC具有如下缺點:首先,使用ASIC的試制和流片風險大、成本高、成功率不高,一旦制片后就不能再進行修改。其次,使用ASIC設計芯片系統(tǒng)時,由于微控制器、功能模塊等IP是根據(jù)目標系統(tǒng)性能進行選擇的,一旦選定,所選擇的IP的性能就不能再修改,也就基本上決定了目標系統(tǒng)的性能,使得目標系統(tǒng)的性能優(yōu)化空間相當狹窄,同時也使得設計完成后的目標系統(tǒng)的硬件升級變得不可能。再有,就是這種方式的硬件設計只能是流于拼裝和連接選定的硬件系統(tǒng)結構,指令不可更改,根據(jù)指令系統(tǒng)來進行編程。設計人員的創(chuàng)造發(fā)揮自由度狹小,限制了人的能動性在設計中應有的作用。
SoPC的可編程特性對這些問題沒有限制。SoPC技術在電子設計上給出了一種以人的基本能力為依據(jù)的軟硬件綜合解決方案;同時涉及到底層的硬件系統(tǒng)設計和軟件設計,在系統(tǒng)化方面有了廣大的自由度。開發(fā)者在軟硬件系統(tǒng)的綜合與構建方面可以充分發(fā)揮創(chuàng)造性和想象力,使得多角度、多因素和多結構層面的大幅度優(yōu)化設計成為可能,使用其可編程特性與IP核相結合,可以快速、低廉地開發(fā)出不同的協(xié)處理器,從而真正實現(xiàn)硬件編程、升級和重構。隨著FPGA制造工業(yè)的發(fā)展,這種優(yōu)勢將會更加明顯。
4 支持SoPC軟硬件協(xié)同設計的工具
?。?) Cadence Virtual Component Codesign (VCC)
第一個為IP復用所設計的工業(yè)系統(tǒng)級HW/SW co-design開發(fā)平臺環(huán)境。在早期設計時就可以確認軟硬件劃分的臨界體系結構。它通過電子供給鏈進行交流和交換設計信息,為系統(tǒng)庫和SoC提供必要的框架。
?。?) System C
一種通過類對象擴展的基于C/C++的建模平臺,支持系統(tǒng)級軟硬件協(xié)同設計仿真和驗證,是建立在C++基礎上的新型建模方法,方便了系統(tǒng)級設計和IP交換。在System C語言描述中,最基本的構造塊是進程。一個完整的系統(tǒng)描述包含幾個并發(fā)進程,進程之間通過信號互相聯(lián)系,且可以通過外在時鐘確定事件的順序和進程同步。System C源碼可以用來綜合硬件,把System C寫的硬件描述綜合成門級網表,以便IC實現(xiàn)或綜合成一個Verilog HDL;或VHDL的RTL描述,以便FPGA綜合。用System C開發(fā)的硬件模型可以用標準的C++編譯器來編譯,經編譯后形成一個可執(zhí)行的應用程序,設計人員可以通過console來觀察系統(tǒng)的行為,驗證系統(tǒng)功能和結構。
(3) 美國Altera公司的Quartus II軟件
集成良好的工具。它具有不尋常的綜合結構及平面規(guī)劃和布局布線能力,可以進行時序和資源優(yōu)化;強有力的驗證功能是業(yè)內惟一支持在系統(tǒng)更新RAM/ROM和常量的軟件,可以方便地在系統(tǒng)執(zhí)行試驗而不必重新編譯設計或重新配置FPGA的其余部分,大大減小了設計周期;容易使用,保持了可編程邏輯器件領域上的性能領導地位。作為系統(tǒng)生成工具的SoPC Builder,集成在Quartus II軟件的所有版本中。SoPC Builder提高了FPGA設計人員的工作效率。以其新特性及面向SoPC Builder知識產權的IP內核,設計人員采用PCI接口和DDR/DDR2外部存儲器,可以迅速生成系統(tǒng),進行引腳分配,提高設計集成度和可重用性。
結語
軟硬件協(xié)同設計作為系統(tǒng)級設計的支持技術,理論上和技術上還在不斷地發(fā)展和完善中。研究開發(fā)功能強大的軟硬件協(xié)同設計平臺,是這一技術逐漸走向成熟的標志,而基于FPGA實現(xiàn)的SoPC技術,比基于ASIC實現(xiàn)的SoC技術提供了一種更靈活而成本低廉的系統(tǒng)級芯片設計方式。國內外都在研發(fā)支持SoPC技術的軟硬件協(xié)同設計平臺。在國內,這方面的研究開發(fā)已經展開并取得了初步的成果。北京大學計算機系楊芙清院士和程旭教授等人,已經開發(fā)成功國內第一個微處理器軟硬件協(xié)同設計平臺;上海嵌入式系統(tǒng)研究所開發(fā)的基于FPGA實現(xiàn)處理器的ECNUX開發(fā)平臺,1.0版本已經完成,功能強大的2.0版本正在開發(fā)過程中。在不久的將來,隨著軟硬件協(xié)同設計技術研究的深入,支持FPGA設計實現(xiàn)的功能強大的軟硬件協(xié)同設計平臺將會出現(xiàn),并加速推進嵌入式系統(tǒng)的設計開發(fā)進程。
參考文獻
1 潘松,黃繼業(yè),曾毓. SoPC技術實用教程. 北京:清華大學出版社,2005
2 徐欣,于紅旗,易凡,等. 基于FPGA的嵌入式系統(tǒng)設計. 北京:機械工業(yè)出版社,2005
3 (美)Rochit Raj Suman. SystemOnChip:Design and Test. 于敦山,盛世敏,田澤,譯. 北京:北京航空航天大學出版社,2003
4 郭鵬飛. SoC設計中的軟硬件協(xié)同設計. 中國電子站,2005看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();