SoPC與嵌入式系統(tǒng)軟硬件協(xié)同設(shè)計(jì)
本文引用地址:http://www.ex-cimer.com/article/20724.htm
1 概述
20世紀(jì)90年代初,電子產(chǎn)品的開發(fā)出現(xiàn)兩個(gè)顯著的特點(diǎn):產(chǎn)品深度復(fù)雜化和上市時(shí)限縮短?;陂T級(jí)描述的電路級(jí)設(shè)計(jì)方法已經(jīng)趕不上新形勢(shì)的發(fā)展需要,于是基于系統(tǒng)級(jí)的設(shè)計(jì)方法開始進(jìn)入人們的視野。隨著半導(dǎo)體工藝技術(shù)的發(fā)展,特別是超深亞微米(vdsm,<0.25 μm)工藝技術(shù)的成熟,使得在一塊硅芯片上集成不同功能模塊(成為系統(tǒng)集成芯片)成為可能。這種將各種功能模塊集成于一塊芯片上的完整系統(tǒng),就是片上系統(tǒng)soc(system on chip)。 soc是集成電路發(fā)展的必然趨勢(shì)。
soc設(shè)計(jì)技術(shù)始于20世紀(jì)90年代中期,它是一種系統(tǒng)級(jí)的設(shè)計(jì)技術(shù)。如今,電子系統(tǒng)的設(shè)計(jì)已不再是利用各種通用集成電路 ic(integrated circuit)進(jìn)行印刷電路板pcb(printed circuit board)板級(jí)的設(shè)計(jì)和調(diào)試,而是轉(zhuǎn)向以大規(guī)?,F(xiàn)場(chǎng)可編程邏輯陣列 fpga (fieldprogrammable gate array)或?qū)S眉呻娐?asic (applicationspecific integrated circuit)為物理載體的系統(tǒng)級(jí)的芯片設(shè)計(jì)。使用asic為物理載體進(jìn)行芯片設(shè)計(jì)的技術(shù)稱為片上系統(tǒng)技術(shù),即soc;使用fpga作為物理載體進(jìn)行芯片設(shè)計(jì)的技術(shù)稱為可編程片上系統(tǒng)技術(shù),即sopc(system on programmable chip)。soc技術(shù)和sopc技術(shù)都是系統(tǒng)級(jí)的芯片設(shè)計(jì)技術(shù)(統(tǒng)稱為廣義soc)。
到目前為止,soc還沒有一個(gè)公認(rèn)的準(zhǔn)確定義,但一般認(rèn)為它有三大技術(shù)特征:采用深亞微米(dsm)工藝技術(shù),ip核(intellectual property core)復(fù)用以及軟硬件協(xié)同設(shè)計(jì)。soc的開發(fā)是從整個(gè)系統(tǒng)的功能和性能出發(fā),利用ip復(fù)用和深亞微米技術(shù),采用軟件和硬件結(jié)合的設(shè)計(jì)和驗(yàn)證方法,綜合考慮軟硬件資源的使用成本,設(shè)計(jì)出滿足性能要求的高效率、低成本的軟硬件體系結(jié)構(gòu),從而在一個(gè)芯片上實(shí)現(xiàn)復(fù)雜的功能,并考慮其可編程特性和縮短上市時(shí)間。使用soc技術(shù)設(shè)計(jì)的芯片,一般有一個(gè)或多個(gè)微處理器芯片和數(shù)個(gè)功能模塊。各個(gè)功能模塊在微處理器的協(xié)調(diào)下,共同完成芯片的系統(tǒng)功能,為高性能、低成本、短開發(fā)周期的嵌入式系統(tǒng)設(shè)計(jì)提供了廣闊前景。
sopc技術(shù)最早是由美國(guó)altera公司于2000年提出的,是現(xiàn)代計(jì)算機(jī)輔助設(shè)計(jì)技術(shù)、電子設(shè)計(jì)自動(dòng)化eda(electronics design automation)技術(shù)和大規(guī)模集成電路技術(shù)高度發(fā)展的產(chǎn)物。sopc技術(shù)的目標(biāo)是將盡可能大而完整的電子系統(tǒng)在一塊fpga中實(shí)現(xiàn),使得所設(shè)計(jì)的電路在規(guī)模、可靠性、體積、功能、性能指標(biāo)、上市周期、開發(fā)成本、產(chǎn)品維護(hù)及其硬件升級(jí)等多方面實(shí)現(xiàn)最優(yōu)化。sopc的設(shè)計(jì)以ip為基礎(chǔ),以硬件描述語(yǔ)言為主要設(shè)計(jì)手段,借助以計(jì)算機(jī)為平臺(tái)的eda工具,自動(dòng)化、智能化地自頂向下地進(jìn)行。
系統(tǒng)級(jí)芯片設(shè)計(jì)是一種高層次的電子設(shè)計(jì)方法,設(shè)計(jì)人員針對(duì)設(shè)計(jì)目標(biāo)進(jìn)行系統(tǒng)功能描述,定義系統(tǒng)的行為特性,生成系統(tǒng)級(jí)的規(guī)格描述。這一過程中可以不涉及實(shí)現(xiàn)工藝。一旦目標(biāo)系統(tǒng)以高層次描述的形式輸入計(jì)算機(jī)后,eda系統(tǒng)就能以規(guī)則驅(qū)動(dòng)的方式自動(dòng)完成整個(gè)設(shè)計(jì)。為了滿足上市時(shí)間和性能要求,系統(tǒng)級(jí)芯片設(shè)計(jì)廣泛采用軟硬件協(xié)同設(shè)計(jì)的方法進(jìn)行。
2 sopc設(shè)計(jì)中的軟硬件協(xié)同設(shè)計(jì)
2.1 軟硬件協(xié)同設(shè)計(jì)的背景
系統(tǒng)級(jí)芯片設(shè)計(jì)是微電子設(shè)計(jì)領(lǐng)域的一場(chǎng)革命,它主要有3個(gè)關(guān)鍵的支撐技術(shù):
① 軟、硬件的協(xié)同設(shè)計(jì)技術(shù)。主要是面向不同目標(biāo)系統(tǒng)的軟件和硬件的功能劃分理論(functional partition theory)和設(shè)計(jì)空間搜索技術(shù)。
② ip模塊復(fù)用技術(shù)。ip是指那些集成度較高并具有完整功能的單元模塊,如mpu、dsp、dram、flash等模塊。ip模塊的再利用,除了可以縮短芯片的設(shè)計(jì)時(shí)間外,還能大大降低設(shè)計(jì)和制造的成本,提高可靠性。ip可分為硬ip和軟ip。sopc中使用的ip多數(shù)是軟ip。軟ip可重定制、剪裁和升級(jí),為優(yōu)化資源和提高性能提供了很大的靈活性。
③ 模塊以及模塊界面間的綜合分析和驗(yàn)證技術(shù)。綜合分析和驗(yàn)證是難點(diǎn),要為硬件和軟件的協(xié)同描述、驗(yàn)證和綜合提供一個(gè)自動(dòng)化的集成開發(fā)環(huán)境。
過去,最常用的設(shè)計(jì)方法是層次式設(shè)計(jì),把設(shè)計(jì)分為3個(gè)域:行為域描述系統(tǒng)的功能;結(jié)構(gòu)域描述系統(tǒng)的邏輯組成;物理域描述具體實(shí)現(xiàn)的幾何特性和物理特性。采用自頂向下的層次式設(shè)計(jì)方法要完成系統(tǒng)級(jí)、功能級(jí)、寄存器傳輸級(jí)、門級(jí)、電路級(jí)、版圖級(jí)(物理級(jí))的設(shè)計(jì),經(jīng)歷系統(tǒng)描述、功能設(shè)計(jì)、邏輯設(shè)計(jì)、電路設(shè)計(jì)、物理設(shè)計(jì)、設(shè)計(jì)驗(yàn)證和芯片制造的流程,是一個(gè)每次都從頭開始的設(shè)計(jì)過程。傳統(tǒng)的ic設(shè)計(jì)方法是先設(shè)計(jì)硬件,再根據(jù)算法設(shè)計(jì)軟件。在深亞微米設(shè)計(jì)中,硬件的費(fèi)用是非常大的。當(dāng)設(shè)計(jì)完成后,發(fā)現(xiàn)錯(cuò)誤進(jìn)行更改時(shí),要花費(fèi)大量的人力、物力和時(shí)間,且設(shè)計(jì)周期變長(zhǎng)。
現(xiàn)在,芯片的設(shè)計(jì)是建立在ip復(fù)用的基礎(chǔ)之上的,利用已有的芯核進(jìn)行設(shè)計(jì)重用,完成目標(biāo)系統(tǒng)的整體設(shè)計(jì)以及系統(tǒng)功能的仿真和驗(yàn)證。一般采用從系統(tǒng)行為級(jí)開始的自頂向下設(shè)計(jì)方法,把處理機(jī)制、模型算法、軟件、芯片結(jié)構(gòu)、電路直至器件的設(shè)計(jì)緊密結(jié)合起來,在單個(gè)芯片上完成整個(gè)系統(tǒng)的功能。同ic組成的系統(tǒng)相比,由于采用了軟硬件協(xié)同設(shè)計(jì)的方法,能夠綜合并全盤考慮整個(gè)系統(tǒng)的各種情況,可以在同樣的工藝技術(shù)條件下實(shí)現(xiàn)更高性能的系統(tǒng)指標(biāo)。既縮短開發(fā)周期,又有更好的設(shè)計(jì)效果,同時(shí)還能滿足苛刻的設(shè)計(jì)限制。
2.2 軟硬件協(xié)同設(shè)計(jì)的發(fā)展過程
2.3 軟硬件協(xié)同設(shè)計(jì)涉及的內(nèi)容
目前,sopc中的軟硬件協(xié)同設(shè)計(jì)主要涉及到以下內(nèi)容:系統(tǒng)功能描述方法、設(shè)計(jì)空間搜索(dse)支持、資源使用最優(yōu)化的評(píng)估方法、軟硬件劃分理論、軟硬件詳細(xì)設(shè)計(jì)、硬件綜合和軟件編譯、代碼優(yōu)化、軟硬件協(xié)同仿真和驗(yàn)證等幾個(gè)方面,以及同系統(tǒng)設(shè)計(jì)相關(guān)的低壓、低功耗、多布線層數(shù)、高總線時(shí)鐘頻率、i/o引腳布線等相關(guān)內(nèi)容。
系統(tǒng)功能描述方法解決系統(tǒng)的統(tǒng)一描述。這種描述應(yīng)當(dāng)是對(duì)軟硬件通用的,目前一般采用系統(tǒng)描述語(yǔ)言的方式。在軟硬件劃分后,能編譯并映射成為硬件描述語(yǔ)言和軟件實(shí)現(xiàn)語(yǔ)言,為目標(biāo)系統(tǒng)的軟硬件協(xié)同工作提供強(qiáng)有力的保證。
設(shè)計(jì)空間搜索提供了一種實(shí)現(xiàn)不同設(shè)計(jì)方式、理解目標(biāo)系統(tǒng)的機(jī)制,設(shè)計(jì)出不同的軟硬件體系結(jié)構(gòu),使最優(yōu)化的設(shè)計(jì)實(shí)現(xiàn)成為可能。最優(yōu)化的評(píng)估方法解決軟硬件的計(jì)量和評(píng)估指標(biāo),從而能夠?qū)Σ煌脑O(shè)計(jì)進(jìn)行資源占用評(píng)估,并進(jìn)而選出最優(yōu)化的設(shè)計(jì)。
fpga的評(píng)估可以做到以引腳為基本核算單位。軟硬件劃分理論從成本和性能出發(fā),決定軟硬件的劃分依據(jù)和方法。基本原則是高速、低功耗由硬件實(shí)現(xiàn);多品種、小批量由軟件實(shí)現(xiàn);處理器和專用硬件并用以提高處理速度和降低功耗。劃分的方法從兩方面著手:一是面向軟件,從軟件到硬件滿足時(shí)序要求;二是面向硬件,從硬件到軟件降低成本。在劃分時(shí),要考慮目標(biāo)體系結(jié)構(gòu)、粒度、軟硬件實(shí)現(xiàn)所占用的成本等各種因素。劃分完后,產(chǎn)生軟硬件分割界面,供軟硬件溝通、驗(yàn)證和測(cè)試使用。
軟硬件詳細(xì)設(shè)計(jì)完成劃分后的軟件和硬件的設(shè)計(jì)實(shí)現(xiàn)。硬件綜合是在廠家綜合庫(kù)的支持下,完成行為級(jí)、rtl以及邏輯級(jí)的綜合。代碼優(yōu)化完成對(duì)設(shè)計(jì)實(shí)現(xiàn)后的系統(tǒng)進(jìn)行優(yōu)化,主要是與處理器相關(guān)的優(yōu)化和與處理器無(wú)關(guān)的優(yōu)化。與處理器相關(guān)的優(yōu)化受不同的處理器類型影響很大,一般根據(jù)處理器進(jìn)行代碼選擇、主要是指令的選擇;指令的調(diào)度(并行、流水線等)、寄存器的分配策略等;與處理器無(wú)關(guān)的優(yōu)化主要有常量?jī)?yōu)化、變量?jī)?yōu)化和代換、表達(dá)式優(yōu)化、消除無(wú)用變量、控制流優(yōu)化和循環(huán)內(nèi)優(yōu)化等。
軟硬件協(xié)同仿真和驗(yàn)證完成設(shè)計(jì)好的系統(tǒng)的仿真和驗(yàn)證,保證目標(biāo)系統(tǒng)的功能實(shí)現(xiàn)、滿足性能要求和限制條件,從整體上驗(yàn)證整個(gè)系統(tǒng)。
2.4 軟硬件協(xié)同設(shè)計(jì)的系統(tǒng)結(jié)構(gòu)
軟硬件協(xié)同設(shè)計(jì)在實(shí)際應(yīng)用中表現(xiàn)為軟硬件協(xié)同設(shè)計(jì)平臺(tái)的開發(fā)。從系統(tǒng)組成的角度,可以用圖1來表述軟硬件協(xié)同設(shè)計(jì)平臺(tái)的系統(tǒng)組成。其中設(shè)計(jì)空間搜索部分由體系結(jié)構(gòu)庫(kù)、設(shè)計(jì)庫(kù)、成本庫(kù)、系統(tǒng)功能描述和系統(tǒng)設(shè)計(jì)約束條件組成。設(shè)計(jì)空間搜索的任務(wù)是對(duì)不同的目標(biāo)要求找到恰當(dāng)?shù)慕鉀Q辦法。體系結(jié)構(gòu)庫(kù)是存放協(xié)同設(shè)計(jì)支持的各種體系結(jié)構(gòu)數(shù)據(jù)庫(kù),一般是通過不同的模型表現(xiàn)出來。到目前為止,使用較多的模型有狀態(tài)轉(zhuǎn)換模型(有限狀態(tài)機(jī))、事件驅(qū)動(dòng)模型、物理結(jié)構(gòu)組成模型、數(shù)據(jù)流程模型和混合模型等。體系結(jié)構(gòu)的豐富程度決定了對(duì)目標(biāo)系統(tǒng)的軟硬件協(xié)同設(shè)計(jì)的支持力度。設(shè)計(jì)庫(kù)中包含可以使用的程序或網(wǎng)表的設(shè)計(jì)執(zhí)行數(shù)據(jù)庫(kù),為新的設(shè)計(jì)提供參考依據(jù)。成本庫(kù)中提供設(shè)計(jì)成本的計(jì)算方法以及由目標(biāo)系統(tǒng)的資源消耗、電源消耗、芯片面積、實(shí)時(shí)要求等組成的數(shù)據(jù)庫(kù),是工作在給定平臺(tái)上的明確界定。在設(shè)計(jì)空間搜索中還有一個(gè)比較重要的步驟,是對(duì)一個(gè)給定設(shè)計(jì)進(jìn)行評(píng)估,主要有評(píng)估目標(biāo)系統(tǒng)的成本、性能、正確性等。經(jīng)過評(píng)估后的設(shè)計(jì)可以進(jìn)行軟硬件劃分,產(chǎn)生硬件描述、軟件描述和軟硬件界面描述三個(gè)部分,以及各個(gè)部分的具體實(shí)現(xiàn)并優(yōu)化。最后進(jìn)行硬件綜合、軟硬件集成和系統(tǒng)仿真和測(cè)試。
圖1軟硬件協(xié)同設(shè)計(jì)平臺(tái)的組成 2.5 軟硬件協(xié)同設(shè)計(jì)流程
面向sopc的軟硬件協(xié)同設(shè)計(jì)流程從目標(biāo)系統(tǒng)構(gòu)思開始。對(duì)一個(gè)給定的目標(biāo)系統(tǒng),經(jīng)過構(gòu)思,完成其系統(tǒng)整體描述,然后交給軟硬件協(xié)同設(shè)計(jì)的開發(fā)集成環(huán)境,由計(jì)算機(jī)自動(dòng)完成剩余的全部工作。一般而言,還要經(jīng)過模塊的行為描述、對(duì)模塊的有效性檢查、軟硬件劃分、硬件綜合、軟件編譯、軟硬件集成、軟硬件協(xié)同仿真與驗(yàn)證等各個(gè)階段。軟硬件協(xié)同設(shè)計(jì)流程如圖2所示。其中軟硬件劃分后產(chǎn)生硬件部分、軟件部分和軟硬件接口界面三個(gè)部分。硬件部分遵循硬件描述、硬件綜合與配置、生成硬件組建和配置模塊;軟件部分遵循軟件描述、軟件生成和參數(shù)化的步驟,生成軟件模塊。最后把生成的軟硬件模塊和軟硬件界面集成,并進(jìn)行軟硬件協(xié)同仿真,以進(jìn)行系統(tǒng)評(píng)估和設(shè)計(jì)驗(yàn)證。
圖2軟硬件協(xié)同設(shè)計(jì)流程
3 sopc的軟硬件協(xié)同設(shè)計(jì)的優(yōu)勢(shì)
同sopc相比,soc具有如下缺點(diǎn):首先,使用asic的試制和流片風(fēng)險(xiǎn)大、成本高、成功率不高,一旦制片后就不能再進(jìn)行修改。其次,使用asic設(shè)計(jì)芯片系統(tǒng)時(shí),由于微控制器、功能模塊等ip是根據(jù)目標(biāo)系統(tǒng)性能進(jìn)行選擇的,一旦選定,所選擇的ip的性能就不能再修改,也就基本上決定了目標(biāo)系統(tǒng)的性能,使得目標(biāo)系統(tǒng)的性能優(yōu)化空間相當(dāng)狹窄,同時(shí)也使得設(shè)計(jì)完成后的目標(biāo)系統(tǒng)的硬件升級(jí)變得不可能。再有,就是這種方式的硬件設(shè)計(jì)只能是流于拼裝和連接選定的硬件系統(tǒng)結(jié)構(gòu),指令不可更改,根據(jù)指令系統(tǒng)來進(jìn)行編程。設(shè)計(jì)人員的創(chuàng)造發(fā)揮自由度狹小,限制了人的能動(dòng)性在設(shè)計(jì)中應(yīng)有的作用。
sopc的可編程特性對(duì)這些問題沒有限制。sopc技術(shù)在電子設(shè)計(jì)上給出了一種以人的基本能力為依據(jù)的軟硬件綜合解決方案;同時(shí)涉及到底層的硬件系統(tǒng)設(shè)計(jì)和軟件設(shè)計(jì),在系統(tǒng)化方面有了廣大的自由度。開發(fā)者在軟硬件系統(tǒng)的綜合與構(gòu)建方面可以充分發(fā)揮創(chuàng)造性和想象力,使得多角度、多因素和多結(jié)構(gòu)層面的大幅度優(yōu)化設(shè)計(jì)成為可能,使用其可編程特性與ip核相結(jié)合,可以快速、低廉地開發(fā)出不同的協(xié)處理器,從而真正實(shí)現(xiàn)硬件編程、升級(jí)和重構(gòu)。隨著fpga制造工業(yè)的發(fā)展,這種優(yōu)勢(shì)將會(huì)更加明顯。
4 支持sopc軟硬件協(xié)同設(shè)計(jì)的工具
1) cadence virtual component codesign (vcc)
第一個(gè)為ip復(fù)用所設(shè)計(jì)的工業(yè)系統(tǒng)級(jí)hw/sw co-design開發(fā)平臺(tái)環(huán)境。在早期設(shè)計(jì)時(shí)就可以確認(rèn)軟硬件劃分的臨界體系結(jié)構(gòu)。它通過電子供給鏈進(jìn)行交流和交換設(shè)計(jì)信息,為系統(tǒng)庫(kù)和soc提供必要的框架。
2) system c
一種通過類對(duì)象擴(kuò)展的基于c/c++的建模平臺(tái),支持系統(tǒng)級(jí)軟硬件協(xié)同設(shè)計(jì)仿真和驗(yàn)證,是建立在c++基礎(chǔ)上的新型建模方法,方便了系統(tǒng)級(jí)設(shè)計(jì)和ip交換。在system c語(yǔ)言描述中,最基本的構(gòu)造塊是進(jìn)程。一個(gè)完整的系統(tǒng)描述包含幾個(gè)并發(fā)進(jìn)程,進(jìn)程之間通過信號(hào)互相聯(lián)系,且可以通過外在時(shí)鐘確定事件的順序和進(jìn)程同步。system c源碼可以用來綜合硬件,把system c寫的硬件描述綜合成門級(jí)網(wǎng)表,以便ic實(shí)現(xiàn)或綜合成一個(gè)verilog hdl;或vhdl的rtl描述,以便fpga綜合。用system c開發(fā)的硬件模型可以用標(biāo)準(zhǔn)的c++編譯器來編譯,經(jīng)編譯后形成一個(gè)可執(zhí)行的應(yīng)用程序,設(shè)計(jì)人員可以通過console來觀察系統(tǒng)的行為,驗(yàn)證系統(tǒng)功能和結(jié)構(gòu)。
3) 美國(guó)altera公司的quartus ii軟件
集成良好的工具。它具有不尋常的綜合結(jié)構(gòu)及平面規(guī)劃和布局布線能力,可以進(jìn)行時(shí)序和資源優(yōu)化;強(qiáng)有力的驗(yàn)證功能是業(yè)內(nèi)惟一支持在系統(tǒng)更新ram/rom和常量的軟件,可以方便地在系統(tǒng)執(zhí)行試驗(yàn)而不必重新編譯設(shè)計(jì)或重新配置fpga的其余部分,大大減小了設(shè)計(jì)周期;容易使用,保持了可編程邏輯器件領(lǐng)域上的性能領(lǐng)導(dǎo)地位。作為系統(tǒng)生成工具的sopc builder,集成在quartus ii軟件的所有版本中。sopc builder提高了fpga設(shè)計(jì)人員的工作效率。以其新特性及面向sopc builder知識(shí)產(chǎn)權(quán)的ip內(nèi)核,設(shè)計(jì)人員采用pci接口和ddr/ddr2外部存儲(chǔ)器,可以迅速生成系統(tǒng),進(jìn)行引腳分配,提高設(shè)計(jì)集成度和可重用性。
結(jié)語(yǔ)
評(píng)論