<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于平臺(tái)的CTG SoC系統(tǒng)建模方法

          基于平臺(tái)的CTG SoC系統(tǒng)建模方法

          作者: 時(shí)間:2008-02-19 來(lái)源: 收藏

            引言

          本文引用地址:http://www.ex-cimer.com/article/78988.htm

            基于平臺(tái)的設(shè)計(jì)PBD ( Platform-Based Design,簡(jiǎn)稱PBD)方法是最近幾年提出的SoC系統(tǒng)設(shè)計(jì)新方法,它延伸并發(fā)展了IP重用的設(shè)計(jì)理念,強(qiáng)調(diào)系統(tǒng)重用。其基本思想是為應(yīng)用領(lǐng)域定義通用的設(shè)計(jì)模板,在此設(shè)計(jì)模板中涵蓋了IP庫(kù)、接口互連、軟/硬件系統(tǒng)結(jié)構(gòu)等設(shè)計(jì)信息。系統(tǒng)建模是基于平臺(tái)的SoC系統(tǒng)設(shè)計(jì)中需要解決的首要問(wèn)題。電子產(chǎn)品設(shè)計(jì)領(lǐng)域常見的、基本的系統(tǒng)模型有離散事件模]、有限狀態(tài)機(jī)模型、數(shù)據(jù)流/控制流模型、通信進(jìn)程模型與Petri網(wǎng)模型。這些模型各有特色,但它們用作基于平臺(tái)的SoC系統(tǒng)模型存在一些缺點(diǎn):

            ( 1) 只能描述功能,不能描述性能;

            ( 2) 粒度過(guò)細(xì)且不可變;

            ( 3)有的模型不支持系統(tǒng)原型代碼生成,因此難以進(jìn)行快速的系統(tǒng)仿真驗(yàn)證以及系統(tǒng)設(shè)計(jì)空間探索。

            本文提出約束任務(wù)流圖CTG ( Constrained Taskflow Graph,簡(jiǎn)稱CTG)模型作為SoC系統(tǒng)模型,提出了基于平臺(tái)的CTG 系統(tǒng)建模方法, 實(shí)現(xiàn)了SoC系統(tǒng)建模環(huán)境CPSME (CTG PBDModeling Environme

            nt,簡(jiǎn)稱CPSME) 。CTG模型采用任務(wù)逐步細(xì)化求精的思想實(shí)現(xiàn)層次描述能力以及任務(wù)粒度的可變性,并且定義子任務(wù)執(zhí)行控制機(jī)描述任務(wù)并行、分支與循環(huán)控制等。CTG模型為任務(wù)定義了運(yùn)行時(shí)間(速度) 、功耗、面積、成本等屬性,用以描述任務(wù)的性能約束。CTG模型將任務(wù)映射到實(shí)現(xiàn)算法,以描述任務(wù)功能。完成CTG模型中所有任務(wù)向算法的映射后,得到的算法流可快速生成系統(tǒng)原型代碼,用于系統(tǒng)仿真驗(yàn)證。提出的基于平臺(tái)的CTG系統(tǒng)建模方法支持CTG模型庫(kù)管理以及CTG模型重用與定制,兼顧了系統(tǒng)模型的重用性與靈活性。

            基于平臺(tái)的設(shè)計(jì)方法

            在SoC系統(tǒng)軟硬件協(xié)同設(shè)計(jì)領(lǐng)域,平臺(tái)是關(guān)于虛擬組件(Virtual Component,又稱為虛部件)與體系結(jié)構(gòu)框架的庫(kù)。在平臺(tái)中包含一些可集成的并且預(yù)先驗(yàn)證的軟件IP與硬件IP塊、模型、EDA工具與軟件工具、庫(kù)以及通過(guò)體系結(jié)構(gòu)探索 /集成/驗(yàn)證來(lái)支持快速產(chǎn)品開發(fā)的方法學(xué)?;谄脚_(tái)的設(shè)計(jì)方法是一種面向集成、強(qiáng)調(diào)系統(tǒng)級(jí)重用的SoC設(shè)計(jì)方法,可顯著降低SoC系統(tǒng)開發(fā)風(fēng)險(xiǎn)、代價(jià)與上市時(shí)間。

            圖1給出了我們基于層次平臺(tái)的SoC系統(tǒng)設(shè)計(jì)方法Hi-PBD (Hierarchical PBD,簡(jiǎn)稱Hi-PBD) ,它將SoC系統(tǒng)設(shè)計(jì)分為系統(tǒng)模型層、虛部件層和實(shí)部件層,達(dá)到系統(tǒng)設(shè)計(jì)中功能與結(jié)構(gòu)分離、計(jì)算與通訊分離的目的。該方法通過(guò)設(shè)計(jì)規(guī)劃與虛實(shí)綜合完成三個(gè)設(shè)計(jì)層次之間的兩次映射。Hi-PBD方法不僅重用三個(gè)層次的設(shè)計(jì)模板,而且重用設(shè)計(jì)層次間兩次映射的結(jié)果,提高了重用效率。此外,Hi-PBD方法支持在三個(gè)層次修改相應(yīng)設(shè)計(jì)模板以增強(qiáng)設(shè)計(jì)靈活性,采用性能約束傳播機(jī)制確保最終設(shè)計(jì)目標(biāo)滿足性能要求。特別是SoC虛部件層的采用,使虛部件層作為SoC系統(tǒng)模型與實(shí)部件RTL描述之間的橋梁,可有效降低從SoC系統(tǒng)模型直接映射到實(shí)部件RTL描述的難度。

            

          基于層次平臺(tái)的SoC系統(tǒng)設(shè)計(jì)方法

           

            圖1 基于層次平臺(tái)的SoC系統(tǒng)設(shè)計(jì)方法

            約束任務(wù)流圖模型

            定義

            (1) 任務(wù):任務(wù)是為達(dá)到某一特定目標(biāo)而指定的動(dòng)作序列,此動(dòng)作序列獲取輸入信息,引發(fā)任務(wù)內(nèi)部某些狀態(tài)的變化,并產(chǎn)生輸出信息。任務(wù)可以被劃分到硬件或軟件上實(shí)現(xiàn)。可描述為:Task = { InputSeq, ActionSeq, OutputSeq }

            (2) 約束:這是一個(gè)包括時(shí)間、空間、功耗、面積、成本等代價(jià)的多元組。必須在所指定的代價(jià)范圍內(nèi)實(shí)現(xiàn)任務(wù),并以約束信息作為選擇任務(wù)軟硬件實(shí)現(xiàn)方式的依據(jù)??擅枋鰹椋篊onstraint = { TimeConstr, SpaceConstr, PowerConstr,AreaConstr, PriceConstr.}

            (3) 約束任務(wù)流圖:約束任務(wù)流圖CTG (Constrained Taskflow Graph,簡(jiǎn)稱CTG)描述了任務(wù)間的層次關(guān)系與執(zhí)行關(guān)系。約束任務(wù)流圖中的每個(gè)任務(wù)都有約束限制,作為SoC系統(tǒng)設(shè)計(jì)規(guī)劃、軟硬件劃分、高層綜合與軟硬件協(xié)同仿真等過(guò)程中要求任務(wù)必須滿足的實(shí)現(xiàn)約束。可描述為: CTG = { TaskTree, CommunSet, SubtaskFSMSet, ConstraintSet} 。

            用CTG模型描述SoC系統(tǒng)任務(wù)

            任務(wù)封裝

            分別定義屬性視圖、約束視圖、算法視圖、細(xì)化視圖與子任務(wù)執(zhí)行控制機(jī)視圖,將所有與任務(wù)相關(guān)的設(shè)計(jì)信息封裝在一起。

            任務(wù)細(xì)化

            任務(wù)細(xì)化的思想就是對(duì)大而復(fù)雜的設(shè)計(jì)任務(wù)進(jìn)行逐步拆分,將難以在單個(gè)部件上完成的任務(wù)劃分為較小的子任務(wù),以有效降低任務(wù)實(shí)現(xiàn)難度。任務(wù)細(xì)化 可控制任務(wù)的粒度。在組織方式上,采用任務(wù)樹描述任務(wù)的細(xì)化過(guò)程。

            子任務(wù)執(zhí)行控制機(jī)

            子任務(wù)執(zhí)行控制機(jī)用來(lái)描述屬于相同父任務(wù)的子任務(wù)之間的控制執(zhí)行關(guān)系,從而方便地表達(dá)包括并發(fā)、分支轉(zhuǎn)移、循環(huán)(反饋)等在內(nèi)的多種任務(wù)調(diào)度方案。子任務(wù)執(zhí)行控制機(jī)可描述為:TaskFSM = { SubtaskSet,InitialTask,ConditionSet,TaskTransitionRuleSet} SubtaskSet描述了子任務(wù)執(zhí)行控制機(jī)中的所有任務(wù),InitialTask是第一個(gè)被執(zhí)行的任務(wù), ConditionSet是所有控制轉(zhuǎn)移條件的集合, TaskTransitionRuleSet描述了從一個(gè)子任務(wù)轉(zhuǎn)移到另一個(gè)子任務(wù)的轉(zhuǎn)移規(guī)則。TaskTransitionRuleSet可描述為: TaskTransitionRuleSet: SubtaskSet ×ConditionSet → subtaskSet 。

            基于平臺(tái)的CTG SoC系統(tǒng)原型生成

            我們用算法描述任務(wù)的功能(行為) ,并將一個(gè)應(yīng)用領(lǐng)域中的所有算法組織成領(lǐng)域算法庫(kù)。允許一個(gè)算法存在多種不同的實(shí)現(xiàn),不同的 算法實(shí)現(xiàn)在性能上不同。例如,有的算法實(shí)現(xiàn)方案具有較快的運(yùn)行速度,有的算法實(shí)現(xiàn)方案具有更低的存儲(chǔ)空間需求。

            在生成SoC系統(tǒng)原型代碼之前,先將CTG任務(wù)流映射為算法流,映射過(guò)程如圖2所示。映射得到算法流之后,經(jīng)過(guò)對(duì)算法流的裝配、定義全局變量等過(guò)程,可生成所需的SoC系統(tǒng)原型代碼。

            

          任務(wù)流到算法流的映射

           

            圖2 任務(wù)流到算法流的映射

            基于平臺(tái)的CTG SoC系統(tǒng)建模與重用

            圖3顯示了我們基于平臺(tái)的CTG SoC系統(tǒng)建模與重用方法,主要分為CTG模型庫(kù)管理與CTG模型重用。

            

          基于平臺(tái)的CTG SoC系統(tǒng)建模與重用

           

            圖3 基于平臺(tái)的CTG SoC系統(tǒng)建模與重用

            在CTG模型庫(kù)中包含了不同SoC應(yīng)用領(lǐng)域的、經(jīng)過(guò)驗(yàn)證的基本CTG模型,這些模型在功能與性能約束上反映了相關(guān)領(lǐng)域的基本應(yīng)用需求。除了包括基本的數(shù)據(jù)庫(kù)管理功能外, CTG模型庫(kù)管理還表現(xiàn)在建立CTG領(lǐng)域模型( ①)以及后來(lái)進(jìn)行的CTG模型庫(kù)優(yōu)化( ⑤) 。

            在 SoC系統(tǒng)建模時(shí),首先從CTG模型庫(kù)選取基本的CTG領(lǐng)域模型模板( ②) ;然后,根據(jù)SoC系統(tǒng)的特定功能、性能需求對(duì)所選CTG模板進(jìn)行定制( ③) ,得到面向特定SoC應(yīng)用需求的CTG模型。定制操作包括添加、刪除與修改任務(wù)的功能行為或性能約束,與完全重新建立SoC系統(tǒng)模型相比,其工作量要小得多。并且, CTG模型庫(kù)中的模型已經(jīng)過(guò)較充分的驗(yàn)證,因此僅僅需要對(duì)所得CTG模型中發(fā)生變化的部分進(jìn)行驗(yàn)證即可。可見,基于平臺(tái)的CTG SoC系統(tǒng)建模與重用除了確保CTG模型的整體重用,還通過(guò)定制操作保證系統(tǒng)建模的靈活性。 如果在后來(lái)的應(yīng)用中發(fā)現(xiàn)所定制的CTG模型具有優(yōu)良的應(yīng)用效果,可以通過(guò)CTG模型庫(kù)優(yōu)化( ⑤)將新的模型加入CTG庫(kù)中,以利于以后重用。

            需要指出的是, CTG模型庫(kù)中的各CTG模型不僅僅是前面定義的CTG模型本身,還包括了與此模型相關(guān)的、經(jīng)過(guò)驗(yàn)證的SoC系統(tǒng)性能約束分配、系統(tǒng)模型仿真驗(yàn)證等系統(tǒng)建模方法, CTG模型的重用也包括對(duì)這些系統(tǒng)建模方法的重用。

            基于平臺(tái)的CTG SoC系統(tǒng)建模環(huán)境及應(yīng)用

            SoC系統(tǒng)建模環(huán)境的結(jié)構(gòu)與功能

            圖4是本文基于平臺(tái)的CTG SoC 系統(tǒng)建模環(huán)境(CPSME)結(jié)構(gòu)圖,分為CTG模型庫(kù)管理與CTG模型重用兩個(gè)部分。

            

          CPSME結(jié)構(gòu)圖

           

            圖4 CPSME結(jié)構(gòu)圖

            CTG模型庫(kù)管理部分除提供基本的數(shù)據(jù)庫(kù)管理功能外( ⑦) ,主要是提供了根據(jù)SoC應(yīng)用領(lǐng)域的需求創(chuàng)建新CTG模型的支持( ①②③④⑤⑥) 。

            在我們基于平臺(tái)的CTG SoC系統(tǒng)建模過(guò)程中,進(jìn)行SoC系統(tǒng)建模主要是進(jìn)行CTG模型的重用:首先,依據(jù)SoC系統(tǒng)需求分析( ⑧)結(jié)果,從CTG模型庫(kù)中選擇CTG模型模板( ⑨) ;然后,對(duì)所選CTG模型模板進(jìn)行定制( ⑩) ,以滿足特定應(yīng)用的功能與性能需求。

            在CTG模型模板的定制中,除了對(duì)系統(tǒng)功能行為的定制,還支持對(duì)任務(wù)性能約束的定制。功能行為的定制主要通過(guò)任務(wù)的添加、刪除、編輯等實(shí)現(xiàn)。性能約束的定制在任務(wù)的基礎(chǔ)上進(jìn)行,可以對(duì)已有的性能約束信息進(jìn)行修改,實(shí)現(xiàn)SoC系統(tǒng)性能約束隨設(shè)計(jì)過(guò)程逐步傳播。

            當(dāng)CTG模型庫(kù)中沒有所需的SoC領(lǐng)域CTG模型時(shí),就需要利用CTG模型庫(kù)管理部分的功能模塊為該領(lǐng)域創(chuàng)建基本的SoC CTG模型,并加入CTG模型庫(kù)中以供使用。

            應(yīng)用實(shí)驗(yàn)

            在CPSME下,我們分別對(duì)MP3播放器以及MPEG2播放器SoC進(jìn)行系統(tǒng)建模。實(shí)驗(yàn)表明,應(yīng)用本文建模方法通常只要對(duì)所選的CTG模型模板進(jìn)行10% ~25%的修改 。而且,由于所選的CTG模型模板已經(jīng)得到了充分的性能分配、功能驗(yàn)證等,使所得SoC系統(tǒng)模型在質(zhì)量上更有保證。

            結(jié)束語(yǔ)

            基于平臺(tái)的CTG SoC系統(tǒng)建模方法通過(guò)建立CTG模型庫(kù)支持CTG模型的重用,通過(guò)提供模型定制操作支持對(duì)CTG模型模板的修改以滿足特定的SoC系統(tǒng)功能與性能需求,從而使得在確保CTG模型整體重用的同時(shí)保持具體應(yīng)用的靈活性。CTG模型庫(kù)的建立與完備是基于平臺(tái)的CTGSoC系統(tǒng)建模的關(guān)鍵。



          關(guān)鍵詞: SoC

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁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); })();