引言
基于平臺(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 SoC 系統(tǒng)建模方法, 實(shí)現(xiàn)了SoC系統(tǒng)建模環(huán)境CPSME (CTG PBD SoCModeling Environment,,簡(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 SoC系統(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描述的難度,。
圖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),??擅枋鰹椋篢ask = { InputSeq, ActionSeq,, OutputSeq }
(2) 約束:這是一個(gè)包括時(shí)間,、空間、功耗,、面積,、成本等代價(jià)的多元組。必須在所指定的代價(jià)范圍內(nèi)實(shí)現(xiàn)任務(wù),,并以約束信息作為選擇任務(wù)軟硬件實(shí)現(xiàn)方式的依據(jù),。可描述為:Constraint = { 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)原型代碼,。
圖2 任務(wù)流到算法流的映射
基于平臺(tái)的CTG SoC系統(tǒng)建模與重用
圖3顯示了我們基于平臺(tái)的CTG SoC系統(tǒng)建模與重用方法,,主要分為CTG模型庫(kù)管理與CTG模型重用。
圖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è)部分,。
圖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ù)中沒(méi)有所需的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)鍵,。