現(xiàn)代數(shù)字系統(tǒng)設(shè)計(jì)(本科)第9章_第1頁(yè)
現(xiàn)代數(shù)字系統(tǒng)設(shè)計(jì)(本科)第9章_第2頁(yè)
現(xiàn)代數(shù)字系統(tǒng)設(shè)計(jì)(本科)第9章_第3頁(yè)
現(xiàn)代數(shù)字系統(tǒng)設(shè)計(jì)(本科)第9章_第4頁(yè)
現(xiàn)代數(shù)字系統(tǒng)設(shè)計(jì)(本科)第9章_第5頁(yè)
已閱讀5頁(yè),還剩38頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第9章SOC和硬件/軟件協(xié)同設(shè)計(jì)技術(shù)9.1硬件/軟件(HW/SW協(xié)同設(shè)計(jì)概述9.3可編程單片系統(tǒng)(SOPC及其設(shè)計(jì)工具習(xí)題與思考題9.1硬件/軟件(HW/SW協(xié)同設(shè)計(jì)概述系統(tǒng)協(xié)同設(shè)計(jì)的目標(biāo)是以最小的成本達(dá)到系統(tǒng)的最大價(jià)值,并能縮短上市時(shí)間和生產(chǎn)周期。其主要設(shè)計(jì)原則可歸納為:●提高性能、降低功耗、減小體積和重量輕;●易于編程、調(diào)試和測(cè)試;●可維護(hù)性、安全性和可靠性好;●設(shè)計(jì)、制造成本低;9.1.1硬件/軟件協(xié)同設(shè)計(jì)方法學(xué)硬件/軟件協(xié)同設(shè)計(jì)方法學(xué)集中反映了以自上而下(TopDown設(shè)計(jì)方法為中心的設(shè)計(jì)思路,其目的是:解決如何從系統(tǒng)原始的計(jì)算模型出發(fā),有效地利用標(biāo)準(zhǔn)方法和EDA工具來(lái)指導(dǎo)設(shè)計(jì)和生產(chǎn)的問(wèn)題。這是一個(gè)十分復(fù)雜的問(wèn)題,要解決這些問(wèn)題需完成以下任務(wù):●提出規(guī)格要求,確定設(shè)計(jì)方案,設(shè)計(jì)方案細(xì)化(Specify,Explore,Refine;●得到不同抽象級(jí)的各層次模型(HierarchyofModels;●硬件/軟件的交互和反饋式設(shè)計(jì)(DesignedwithInteractionandFeedback;●權(quán)衡評(píng)價(jià)后,最后劃分模塊(FinalPartitioning;●協(xié)同規(guī)格設(shè)計(jì)說(shuō)明(Co-specification;●協(xié)同綜合(Co-synthesis;●協(xié)同驗(yàn)證(Co-verification。協(xié)同設(shè)計(jì)代表包括硬件和軟件部件的系統(tǒng)規(guī)格和設(shè)計(jì)方法學(xué)。一個(gè)協(xié)同設(shè)計(jì)方法學(xué)是由細(xì)化這些設(shè)計(jì)任務(wù)和代表這些細(xì)化的模型組成的。硬件/軟件協(xié)同設(shè)計(jì)是一個(gè)非?;钴S的研究領(lǐng)域;硬件/軟件協(xié)同設(shè)計(jì)工具正在商品化之中,大多數(shù)商用協(xié)同設(shè)計(jì)工具是協(xié)同仿真引擎。近年來(lái)在理論和商業(yè)應(yīng)用方面有了很大的進(jìn)展,特別是規(guī)格語(yǔ)言,結(jié)構(gòu)探索工具,用于劃分、調(diào)度和綜合的算法,用于定制軟件和硬件綜合的后端工具。硬件/軟件協(xié)同設(shè)計(jì)研究的范疇如圖9-1所示。即硬件/軟件協(xié)同設(shè)計(jì)是系統(tǒng)設(shè)計(jì)的子集;硬件/軟件協(xié)同設(shè)計(jì)包括協(xié)同綜合和協(xié)同仿真;而硬件/軟件劃分可歸屬于協(xié)同綜合范疇。通??梢詫⒂布?軟件系統(tǒng)分為2種類型:Ⅰ型和Ⅱ型,如圖9-2所示;可以看出,Ⅰ型是指硬件/軟件按“橫向”劃分,而Ⅱ型是指硬件/軟件按“縱向”劃分。圖9-1硬件/軟件協(xié)同設(shè)計(jì)研究的范疇硬件/軟件劃分硬件/軟件協(xié)同綜合硬件/軟件協(xié)同仿真硬件/軟件協(xié)同設(shè)計(jì)系統(tǒng)設(shè)計(jì)圖9-2硬件/軟件系統(tǒng)的類型(aⅠ型硬件/軟件系統(tǒng);(bⅡ型硬件/軟件系統(tǒng)處理1部件1…處理k部件k軟件處理k+1部件k+1硬件…處理n部件n(bⅡ型硬件/軟件系統(tǒng)處理1部件1處理2部件2處理n部件n(aⅠ型硬件/軟件系統(tǒng)軟件硬件為便于設(shè)計(jì),一般硬件/軟件之間的關(guān)系可以抽象為硬件/軟件接口,如圖9-3所示。它可以按層次自高至低來(lái)組織:硬件方面分為專用硬件(ASIC等、總線接口、系統(tǒng)總線;相應(yīng)地,軟件方面分為應(yīng)用軟件(包括操作系統(tǒng)、設(shè)備驅(qū)動(dòng)程序、系統(tǒng)總線;接口信號(hào)分別為發(fā)送、接收、等待,寄存器讀/寫、中斷,總線處理。圖9-3硬件/軟件接口的抽象操作系統(tǒng)應(yīng)用軟件設(shè)備驅(qū)動(dòng)程序系統(tǒng)總線軟件發(fā)送,接收,等待專用硬件總線接口系統(tǒng)總線請(qǐng)求讀/寫中斷總線處理硬件同設(shè)計(jì)工具。圖9-4給出了目前比較有代表性的常用協(xié)同設(shè)計(jì)工具,其中,規(guī)格和建模工具有Ptolemy;異類實(shí)現(xiàn)工具種類較多,又可以分為:●處理器綜合工具:Castle?!駟翁幚砥鞴ぞ?*單ASIC:Cosyma、Lycos;*多ASIC:Mickey、Tosca、Vulcan?!穸嗵幚砥鞴ぞ?Chinook、Cool、Cosmos、CoWare、Polis、SpecSyn。圖9-4硬件/軟件協(xié)同設(shè)計(jì)工具PtolemyCastleCosymaLycosMickeyToscaVulcanChinookCooLCosmosCoWarePolisSpecSyn多ASIC單ASIC單處理器多處理器處理器綜合異類實(shí)現(xiàn)規(guī)格和建模協(xié)同設(shè)計(jì)工具第一章給出了一個(gè)典型的硬件/軟件協(xié)同設(shè)計(jì)流程圖(見(jiàn)圖1-10、下面通過(guò)硬件/軟件協(xié)同設(shè)計(jì)的一般流程和一個(gè)簡(jiǎn)單的例子來(lái)說(shuō)明協(xié)同設(shè)計(jì)方法的要點(diǎn)。如圖9-5所示,協(xié)同設(shè)計(jì)的一般流程包括3大部分:綜合流程、分析和驗(yàn)證流程、后端處理流程。協(xié)同設(shè)計(jì)可以從高級(jí)規(guī)格開(kāi)始,這個(gè)規(guī)格規(guī)定了功能、性能、功耗和其他設(shè)計(jì)限制(約束條件。在協(xié)同設(shè)計(jì)過(guò)程中,設(shè)計(jì)者將通過(guò)一系列系統(tǒng)設(shè)計(jì)步驟(如劃分、調(diào)度和通信綜合,形成設(shè)計(jì)的綜合流程。然后,將綜合流程的結(jié)果交給后端(Backend工具處理(如圖9-5的下部所示。在后端用編譯器實(shí)現(xiàn)被映射處理器的功能,高級(jí)綜合器將(被映射的功能映射到ASIC,接口綜合器實(shí)現(xiàn)接口功能。第9章SOC和硬件/軟件協(xié)同設(shè)計(jì)技術(shù)圖9-5硬件/軟件協(xié)同設(shè)計(jì)的一般流程規(guī)格配置和劃分劃分模型調(diào)度調(diào)度模型通信綜合通信模型綜合流程高級(jí)綜合接口綜合編譯實(shí)現(xiàn)模型制造后端設(shè)計(jì)分析和驗(yàn)證仿真模型分析和驗(yàn)證仿真模型分析和驗(yàn)證仿真模型分析和驗(yàn)證仿真模型分析和驗(yàn)證仿真模型建模任務(wù)在設(shè)計(jì)的每一步,都要對(duì)設(shè)計(jì)模型做靜態(tài)分析,按某一質(zhì)量標(biāo)準(zhǔn)進(jìn)行評(píng)價(jià),并使設(shè)計(jì)模型滿足限制條件(約束。這個(gè)設(shè)計(jì)模型還將用來(lái)產(chǎn)生一個(gè)仿真模型,驗(yàn)證設(shè)計(jì)功能上的正確性(Correctness。在驗(yàn)證失敗的情況下,使用調(diào)試程序來(lái)確定錯(cuò)誤。仿真還可以用于收集概括信息,它有利于進(jìn)一步改進(jìn)質(zhì)量標(biāo)準(zhǔn)的精度。這一系列任務(wù)就形成了數(shù)字系統(tǒng)協(xié)同設(shè)計(jì)方法學(xué)的分析和驗(yàn)證流程。所以數(shù)字系統(tǒng)協(xié)同設(shè)計(jì)包括下面幾個(gè)主要方面和階段:●系統(tǒng)規(guī)格;●配置(分配和劃分;●調(diào)度;●通信綜合;●分析和驗(yàn)證;●后端處理。系統(tǒng)規(guī)格是從系統(tǒng)的概念模型出發(fā)的,即首先從分析系統(tǒng)的要求和限制開(kāi)始。通常系統(tǒng)規(guī)格應(yīng)包括可執(zhí)行規(guī)格(功能要求和一組(非功能性設(shè)計(jì)要求。可執(zhí)行規(guī)格常作為接口處理/任務(wù)提供,可采用多種語(yǔ)言描述,并能仿真和驗(yàn)證,還可用于分析如評(píng)估。非功能性的設(shè)計(jì)要求包括成本、速度、功耗、I/O速率等。一般制定系統(tǒng)規(guī)格時(shí)要考慮:正確性、確定性、完整性、一致性、可驗(yàn)證性、可修改性和可跟蹤性等諸多方面。通常在描述系統(tǒng)的規(guī)格時(shí),要使用指定的語(yǔ)言;最常用的規(guī)格描述語(yǔ)言有:C、C++、VHDL、Verilog、SystemC、SpecC、Esterel和SDL等。一個(gè)自上至下、使用多種語(yǔ)言的設(shè)計(jì)流程如圖9-6所示。在圖中,Vcc是Cadence提供的硬件/軟件協(xié)同設(shè)計(jì)EDA工具(即協(xié)同設(shè)計(jì)平臺(tái),SpecC作為系統(tǒng)級(jí)建模語(yǔ)言,SystemC用來(lái)進(jìn)行硬件設(shè)計(jì),而C則用來(lái)完成軟件設(shè)計(jì)。系統(tǒng)規(guī)格主要描述系統(tǒng)的功能而不必考慮實(shí)際實(shí)現(xiàn),它應(yīng)該盡可能接近該系統(tǒng)的概念模型,以方便維護(hù)和修改。這種描述應(yīng)是可執(zhí)行的,以便于作驗(yàn)證。圖9-6自上而下的多種語(yǔ)言設(shè)計(jì)流程通信模型實(shí)現(xiàn)模型通信細(xì)化映射系統(tǒng)部件行為模型通信模型實(shí)現(xiàn)模型SWSW純C(SWSystemC(HW結(jié)構(gòu)模型規(guī)格模型C模型SpecCVCCHWHW在圖9-7所示的例子中,系統(tǒng)本身指定為頂層行為B0,它包括一個(gè)整數(shù)變量shared和一個(gè)布爾變量sync。行為B0依次有B1,B2,B3三個(gè)子行為,其中,B1、B3是原子行為(AtomicHevavior,B2是復(fù)合行為(CompositeHevavior,由兩個(gè)并發(fā)行為B4和B5構(gòu)成,B5則依次由B6和B7組成。圖9-7系統(tǒng)規(guī)格的例子(a控制流視圖;(b原子行為(a(bB6B7B5B4syncB2B1B3B0sharedsyncB1({stmt;…}B3({stmt;…}B6({intlocat;…shared=loca1+1;signal(sync;}B4({intlocat;wait(sync;local=shared-1;…}B7({stmt;…}2.配置(分配和劃分當(dāng)給定一個(gè)系統(tǒng)部件(如各種處理器,存儲(chǔ)器和定制IP模塊庫(kù)時(shí),配置的任務(wù)就是確定被選部件的類型、數(shù)量及它們之間的相互連接,以便實(shí)現(xiàn)系統(tǒng)的功能并滿足限制和目標(biāo)成本函數(shù)最小。配置的結(jié)果可以使一般結(jié)構(gòu)變?yōu)榫唧w的實(shí)現(xiàn)。通常配置由設(shè)計(jì)者人工地完成,并且是設(shè)計(jì)展開(kāi)的起點(diǎn)。系統(tǒng)部件配置要決定系統(tǒng)實(shí)現(xiàn)的部件種類和數(shù)量,主要包括如下:●處理部件:微處理器、微控制器、DSP、ASIC、ASIP、FPGA等?!翊鎯?chǔ)部件:存儲(chǔ)器、寄存器等?!裢ㄐ挪考?總線、點(diǎn)—點(diǎn)連接、網(wǎng)絡(luò)等?!駥S肐/O部件:A/D、D/A等。這里,我們示出了一個(gè)可能的目標(biāo)結(jié)構(gòu)模型及其系統(tǒng)部件配置的例子,如圖9-8所示。圖9-8目標(biāo)結(jié)構(gòu)模型及其系統(tǒng)部件配置的例子PE1Proc1LMem1總線1[IF1]GMem1總線2[IF2]PE2ASIC1LMem2總線3[IF3]仲裁器系統(tǒng)總線PE:處理部件LMem:局部存儲(chǔ)器GMem:全局存儲(chǔ)器IF:接口劃分定義了行為集合(規(guī)格中和配置的部件集合(被選結(jié)構(gòu)中之間的映射關(guān)系。映射質(zhì)量如何,決定了能否滿足設(shè)計(jì)限制和使設(shè)計(jì)成本最低。歸納起來(lái)劃分要解決如下問(wèn)題:●建立功能劃分和結(jié)構(gòu)劃分的對(duì)應(yīng)關(guān)系?!癯橄?如對(duì)規(guī)格進(jìn)行抽象?!駝澐炙惴ㄟx擇:選擇最好的劃分算法。●劃分粒度(精或細(xì)選擇:如模塊、處理器和程序、指令?!裣到y(tǒng)部件配置:選擇系統(tǒng)部件類型及其集合?!駝澐帜繕?biāo)確定:性能、最小通信開(kāi)銷、低功耗、組合標(biāo)準(zhǔn)?!翊_定度量和評(píng)估標(biāo)準(zhǔn):性能和硬件大小等等。劃分之后的系統(tǒng)模型必須反映劃分前的設(shè)想,并為我們所確認(rèn)。如圖9-9所示,需要插入一個(gè)附加層級(jí)用來(lái)描述所選劃分的2個(gè)處理部件(ProcessingElement,即PE0和PE1。每當(dāng)子行為的處理部件PE有別于父行為的處理部件PE時(shí),還應(yīng)插入附加的控制行為。在圖9-9中,為了執(zhí)行控制行為B1和B4,分別插入行為B1_ctr1和B4_ctr1。另外,為了維持被劃分的模型和原規(guī)格之間的功能等同及PE之間的同步操作,也須插入B1_ctr1和B4_ctr1。在圖9-9中,還加入同步變量B1_start、B1_done、B4_start、B4_done,以執(zhí)行PE1的行為B1和B4,因此,行為B1和B4可以通過(guò)PE間同步,由其控制行為B1_ctr1和B4_ctr1來(lái)控制。圖9-9系統(tǒng)劃分的例子(a系統(tǒng)模型;(b原子行為B6B7B4_ctr1syncB3B5B2B4_startB4B1_ctr1B1B0PE0sharedsyncB1_startB1_doneB4_startB4_doneTopPE1B1_startB1_doneB4_doneB1({wait(B1_start;…signal(B1_done;}B1_ctr1({signal(B1_start;wait(B1_done;}B3({stmt:…}B7({stmt:…}B4({intlocal;wait(B4_start;wait(sync;local=shared-1;…signal(B4_done;}B4_ctrl({signal(B4_start;wait(B4_done;}B6({intlocal;…shared=local+1signal(sync;}(a(b簡(jiǎn)言之,調(diào)度在一組以某種關(guān)系聯(lián)系起來(lái)的任務(wù)中制定每個(gè)任務(wù)執(zhí)行的開(kāi)始時(shí)間,也就是將任務(wù)賦予所指定的控制步,并在滿足約束條件下,實(shí)現(xiàn)給定的目標(biāo)函數(shù)(包括控制步數(shù)、硬件資源、延遲、功耗等。在給定一個(gè)行為集合和可能的性能限制集合后,調(diào)度要確定在同一PE上,行為運(yùn)行的總的調(diào)用時(shí)間次序,并使PE間的同步開(kāi)銷及PE內(nèi)前后轉(zhuǎn)換(ContextSwitching的開(kāi)銷最小。根據(jù)在編譯時(shí)行為的局部次序,有多少信息是有效的,可以采用幾種不同的調(diào)度策略。在極端情況下,即無(wú)任何有關(guān)的次序信息時(shí),系統(tǒng)實(shí)現(xiàn)常常依賴于對(duì)運(yùn)行時(shí)間系統(tǒng)的動(dòng)態(tài)調(diào)度。在這種情況下,調(diào)度后的模型與劃分后的模型沒(méi)有太大的不同,只是運(yùn)行時(shí)間系統(tǒng)要增加履行調(diào)度。當(dāng)一個(gè)運(yùn)行任務(wù)被模塊化,并且一個(gè)新的任務(wù)被調(diào)度時(shí),這種策略將要考慮前后轉(zhuǎn)換的開(kāi)銷。另一個(gè)極端情況是,編譯時(shí)局部次序是完全已知的,這時(shí)可以采用靜態(tài)調(diào)度策略。靜態(tài)調(diào)度策略可以得到每個(gè)行為所執(zhí)行時(shí)間的估計(jì)。這個(gè)策略完全忽略了前后轉(zhuǎn)換的開(kāi)銷,實(shí)際上性能估計(jì)不精確時(shí),還要考慮PE間同步;基于動(dòng)態(tài)調(diào)度的策略就沒(méi)有此問(wèn)題,因?yàn)槊慨?dāng)一個(gè)行為需在PE間同步時(shí),調(diào)度器將選擇另一個(gè)執(zhí)行。因此,調(diào)度策略的選擇應(yīng)該綜合地權(quán)衡前后轉(zhuǎn)換的開(kāi)銷和CPU的利用。在靜態(tài)調(diào)度后產(chǎn)生的模型中,其同一PE中移去行為的并發(fā)處理。如圖9-10所示,在PE0內(nèi)的所有子行為現(xiàn)在是按次序的,沒(méi)有并發(fā)處理。為了維持跨PE的局部次序,必須在它們之間插入同步。例如,B6由B6_start來(lái)同步,而B(niǎo)6_start是由B1完成時(shí)決定的。圖9-10調(diào)度的例子(a系統(tǒng)模型和調(diào)度判斷;(b原子行為B4({intlocal;wait(sync;local=shared-1;…signal(B3_start;}B1({…signal(B6_start;}B3({wait(B3_start;…}B6({intlocal;wait(B6_start;…shared=local+1signal(sync;}B7({stmts;…}B7B3B6B1B4PE0PE1B6_startsyncB3_startTopsharedsyncB6_startB3_start(a(b通信綜合主要應(yīng)解決的問(wèn)題:●創(chuàng)建抽象通信通道。●通信細(xì)化:選擇通信線的寬度、選擇協(xié)議等?!窠涌谏?設(shè)備驅(qū)動(dòng)器、通信硬件等。一般,系統(tǒng)由幾個(gè)相互作用的行為構(gòu)成,這些行為需要相互之間的通信。在通常的編程語(yǔ)言中,通信是預(yù)定義的,并且對(duì)程序是隱蔽的。例如,函數(shù)通過(guò)全局變量或經(jīng)過(guò)傳送的參數(shù)進(jìn)行通信(全局變量共享一個(gè)公共的存儲(chǔ)空間。在局部過(guò)程調(diào)用時(shí),參數(shù)傳遞是由交換堆棧的信息或通過(guò)處理器寄存器來(lái)實(shí)現(xiàn)的。在遠(yuǎn)端過(guò)程調(diào)用時(shí),參數(shù)通過(guò)復(fù)雜協(xié)議的編組/分解編組并由一個(gè)網(wǎng)絡(luò)發(fā)送/接收數(shù)據(jù)來(lái)傳送的。對(duì)標(biāo)準(zhǔn)編程語(yǔ)言,這種機(jī)制是足夠的。但對(duì)嵌入式系統(tǒng)還需要:●將計(jì)算和通信的描述分開(kāi);●抽象通信函數(shù)(聲明;●定義一個(gè)用戶通信實(shí)現(xiàn)。為了滿足這些要求,在描述使用的語(yǔ)言中必須包含通道的概念,當(dāng)行為指定了如何完成計(jì)算并啟動(dòng)通信時(shí),這些通道把通信的實(shí)現(xiàn)隱蔽起來(lái)。每個(gè)行為包含一組端口,行為可以通過(guò)端口通信。每個(gè)端口包含一組通信函數(shù)和一組接口,接口說(shuō)明這個(gè)通道函數(shù)的一個(gè)子集,而此通道可為連接的行為所用。這樣一來(lái),通信函數(shù)的聲明是以接口給定的,而這些函數(shù)的實(shí)現(xiàn)是由通道指定的。例如,在圖9-11中,系統(tǒng)由兩個(gè)行為B1、B2和一個(gè)通道C組成。行為B1經(jīng)其端口P1與通道C的左邊接口I1相通信。圖9-11通信的模型B1P1I1I2CB2P2類似地,行為B2通過(guò)它的端口P2訪問(wèn)通道C的右邊接口I2。只要其端口的類型是相同的,B1和B2就很容易由其他的行為來(lái)替換。類似地,只要其提供兼容的接口,通道C就可以由任何其他通道替換。更為特別的是:一個(gè)通道成了一組變量和操作這些變量的一組函數(shù)的一個(gè)隱蔽器。這些函數(shù)指定了數(shù)據(jù)如何在這個(gè)通道上傳送。所有對(duì)通道的訪問(wèn)只限于對(duì)這些函數(shù)。例如,圖9-12所示的是兩個(gè)通信例子。圖9-12(a表示一個(gè)共享變量M的兩個(gè)行為通信關(guān)系。圖9-12(b表示一個(gè)類似的利用通道模型的情況。事實(shí)上,通過(guò)共享存儲(chǔ)器進(jìn)行通信,恰恰是一般通道模型的一個(gè)特殊情況。圖9-12通信的例子(a共享存儲(chǔ)器;(b通道模型B1intx;…M=x;…intM;B2inty;…y=M;…B1intx;…C.send(x;…Cvoidsend(intd{…}intreceive(void{…}B2inty;…y=C.receive(…(a(b一個(gè)通道也可以是有層次的。例如,一個(gè)通道可以實(shí)現(xiàn)一個(gè)高級(jí)的通信協(xié)議,它把數(shù)據(jù)包流分為一個(gè)字節(jié)流,并依次利用較低層通道,例如同步總線,它有時(shí)傳送字節(jié)流的1位。在這一級(jí),并發(fā)行為之間的通信和同步是通過(guò)訪問(wèn)共享變量來(lái)完成的。其任務(wù)是把共享變量分解為在實(shí)現(xiàn)級(jí)的一個(gè)適當(dāng)?shù)腜E間的通信模式。如果共享變量是一個(gè)共享存儲(chǔ)器,那么,此通信綜合器將確定變量的位置,并把對(duì)所有模型中共享變量的訪問(wèn),改變?yōu)閷?duì)相應(yīng)地址進(jìn)行讀或?qū)懙恼Z(yǔ)句。如果這些變量是一個(gè)特定PE的局部存儲(chǔ)器,那么,對(duì)其他PE模型中的共享變量的訪問(wèn)將被改變?yōu)閷?duì)函數(shù)調(diào)用(諸如發(fā)信和收信信息。這兩種情況下,綜合器還要為這些PE和共享存儲(chǔ)器插入一些接口,以便適應(yīng)總線的不同協(xié)議。在通信綜合后,產(chǎn)生的模型如圖9-13所示,其中在幾個(gè)方面已經(jīng)不同于以前的模型。對(duì)于接口,新的行為即共享存儲(chǔ)器和仲裁器(Arbiter被插入到層次結(jié)構(gòu)的最高級(jí)。在圖9-13中,所加的行為是IF0、IF1、IF2、Shared_mem、Arbiter。這些來(lái)自以前模型的共享變量都被分解,它們可存于共享存儲(chǔ)器,也可以存于大于一個(gè)PE的局部存儲(chǔ)器。不同PE的通信通道就成為局部總線和系統(tǒng)總線。在圖9-13中,我們選擇把所有的全局變量置于Shared_men中,并把頂層行為中的所有全局聲明移到行為Shared_men中?,F(xiàn)在,頂層行為的全局變量是一些總線:lbus0、lbus1、lbus2、sbus。圖9-13通信綜合后的系統(tǒng)模型(a通信綜合判斷;(b系統(tǒng)模型;(c原子行為B6B7B5B4_ctrlB2B1_ctrlB3B0PE0IF0PE1B1B4IF1Shared_memIF2ArbiterTop1bus01bus11bus2sbussharedB1_startB4_startsyncB1_doneB4_donePE0的LMPE1的LMShared_mem(b(a圖9-13通信綜合后的系統(tǒng)模型(a通信綜合判斷;(b系統(tǒng)模型;(c原子行為B1({wait(*B1_start_addr;…signal(*B1_done_addr;}B1_ctrl({signal(*B1_start_addr;wait(*B1_done_addr;}B3({stmt;…}B7({stmt;…}IF0({stmt;…}IF1({stmt;…}IF2({stmt;…}B4({intIocal;wait(*B4_start_addr;local=(*shared_addr-1;…signal(*B4_done_addr;}B4_ctrl({signal(*B4_start_addr;wait(*B4_done_addr;}B6({intlocal;…*shared_addr=local+1;signal(*sync_addr;}Shared_mem({intshared;boolsync;boolB1_start,B1_done;boolB4_start,B4_done;…}Arbiter({stmt;…}(c分析的目的是從系統(tǒng)的物理結(jié)構(gòu)描述推導(dǎo)出系統(tǒng)的行為,而綜合則是構(gòu)建一個(gè)有給定行為的系統(tǒng)。當(dāng)綜合一個(gè)系統(tǒng)時(shí),通常要求優(yōu)化一個(gè)以上的性能參數(shù)。自動(dòng)綜合常利用計(jì)算機(jī)將行為模型(通常是一個(gè)HDL程序映射到一個(gè)結(jié)構(gòu)模型。驗(yàn)證是要確定分析是否“正確”,形式方法是要“證明”正確性。而測(cè)試是利用輸入信號(hào)(激勵(lì)并觀察輸出信號(hào)(行為;其中物理測(cè)試是要測(cè)試一個(gè)實(shí)際系統(tǒng),模型測(cè)試是要測(cè)試一個(gè)系統(tǒng)模型。一般,驗(yàn)證過(guò)程包括如下相關(guān)內(nèi)容:●仿真(模擬:建立一個(gè)系統(tǒng)可執(zhí)行模型,執(zhí)行此模型,并觀察相關(guān)信號(hào)等。●原型:建立離散部件的系統(tǒng)(如FPGA原型環(huán)境等?!裥问津?yàn)證:提供系統(tǒng)的某些特征,進(jìn)行等效檢查、模型檢查、定理證明等。●測(cè)試:基于系統(tǒng)的實(shí)際實(shí)現(xiàn)而不是模型?!裥薷慕Y(jié)構(gòu)。第9章SOC和硬件/軟件協(xié)同設(shè)計(jì)技術(shù)圖9-14功能規(guī)格-系統(tǒng)設(shè)計(jì)-部件實(shí)現(xiàn)流程圖存儲(chǔ)器配置變量→存儲(chǔ)器劃分總線配置通道→總線劃分ASIC/處理器配置行為→ASIC/處理器劃分接口綜合仲裁器綜合實(shí)現(xiàn)軟件實(shí)現(xiàn)硬件規(guī)格3.部件實(shí)現(xiàn)2.系統(tǒng)設(shè)計(jì)1.功能規(guī)格在每個(gè)設(shè)計(jì)細(xì)化之前,輸入的設(shè)計(jì)模型必須是通過(guò)了仿真或形式驗(yàn)證,在功能上得到確認(rèn)的。另外,還要求借助仿真器對(duì)設(shè)計(jì)模型作靜態(tài)和動(dòng)態(tài)的分析,以便得到對(duì)質(zhì)量指標(biāo)的評(píng)估,這個(gè)質(zhì)量指標(biāo)是由綜合器來(lái)評(píng)估的。這些要求推動(dòng)了分析和驗(yàn)證工具集的發(fā)展。通常分析和驗(yàn)證工具集中包含靜態(tài)分析器、仿真器、調(diào)試器和顯示器等。靜態(tài)分析器把每個(gè)行為與質(zhì)量標(biāo)準(zhǔn)關(guān)聯(lián)起來(lái)。在軟件實(shí)現(xiàn)的情況下,質(zhì)量標(biāo)準(zhǔn)是程序的大小和性能,而在用硬件(如ASIC實(shí)現(xiàn)時(shí),質(zhì)量標(biāo)準(zhǔn)則是硬件面積和性能。為了以滿意的精度達(dá)到快速評(píng)估,靜態(tài)分析器依賴于概率技術(shù)和后端工具,如編譯器和高級(jí)綜合器技術(shù)。仿真器用于功能驗(yàn)證和動(dòng)態(tài)分析這雙重目的。仿真模型運(yùn)行在仿真引擎之上,它以運(yùn)行時(shí)間庫(kù)的形式提供仿真任務(wù)的實(shí)現(xiàn)。仿真能按不同級(jí)別的精度來(lái)完成,比如按功能、基于周期的和離散事件進(jìn)行仿真。功能上的精確仿真常采用直接在主機(jī)上進(jìn)行編譯和執(zhí)行設(shè)計(jì)模型的方式實(shí)現(xiàn),不必特別關(guān)注仿真時(shí)間;時(shí)鐘周期精度的仿真則執(zhí)行一個(gè)時(shí)鐘形態(tài)的設(shè)計(jì)模型;離散事件仿真要考慮一個(gè)部件的更精細(xì)的定時(shí)模

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論