1 系統(tǒng)級(jí)設(shè)計(jì)與驗(yàn)證簡(jiǎn)介
片上電子系統(tǒng)的速度和復(fù)雜度的不斷提高不僅使得底層的設(shè)計(jì)實(shí)現(xiàn)易于出問(wèn)題,而且頂層的系統(tǒng)架構(gòu)、通訊機(jī)制、軟硬件劃分等都可能使系統(tǒng)的功能、性能或成本、開(kāi)發(fā)周期等指標(biāo)不滿足要求。一旦在底層的實(shí)現(xiàn)階段發(fā)現(xiàn)了這種頂層的設(shè)計(jì)問(wèn)題,會(huì)有大量的設(shè)計(jì)工作重新進(jìn)行;此外,工程師對(duì)設(shè)計(jì)規(guī)格的理解偏差,或設(shè)計(jì)規(guī)格本身的不完整及二義性也是造成設(shè)計(jì)錯(cuò)誤的原因之一;底層硬件的設(shè)計(jì)在驗(yàn)證時(shí)需要大量的輸入激勵(lì)和檢驗(yàn)響應(yīng),在信號(hào)級(jí)完成這樣的工作不但速度很慢而且容易遺漏。
由于電子系統(tǒng)中相當(dāng)部分的工作是由軟件完成,所以必須確保在應(yīng)用環(huán)境下軟硬件能夠正確地協(xié)同工作。以前軟件中依賴(lài)于硬件的部分通常要等到樣機(jī)加工好后才能調(diào)試,使得嵌入式軟件的完整驗(yàn)證只能在系統(tǒng)設(shè)計(jì)周期的后端進(jìn)行,此時(shí)發(fā)現(xiàn)的設(shè)計(jì)錯(cuò)誤通常要花費(fèi)較高的修改代價(jià),特別是那些牽涉到軟硬件劃分等系統(tǒng)層次的問(wèn)題。
所有這些都要求我們用跟以往大不相同的方式看待電子系統(tǒng)的設(shè)計(jì)流程:設(shè)計(jì)規(guī)格必須用形式化的、語(yǔ)法嚴(yán)格且語(yǔ)義明確的高級(jí)語(yǔ)言描述;從系統(tǒng)的頂層到底層的每一適當(dāng)?shù)某橄髮哟味疾捎煤线m的高級(jí)語(yǔ)言建立相應(yīng)的模型;每一層次的模型都要進(jìn)行驗(yàn)證,并可作為下一層次系統(tǒng)模型的參考模型和子模塊的測(cè)試平臺(tái)。如此,便可形成一系列可執(zhí)行的設(shè)計(jì)規(guī)格( Executable Specification ),并將驗(yàn)證工作左移到系統(tǒng)設(shè)計(jì)的早期階段,從而達(dá)到消除設(shè)計(jì)規(guī)格的歧義性和及早發(fā)現(xiàn)較高層次的設(shè)計(jì)錯(cuò)誤的目的。
目前國(guó)際上已普遍做到用高級(jí)語(yǔ)言來(lái)進(jìn)行系統(tǒng)的規(guī)格描述和底層實(shí)現(xiàn),從而形成從系統(tǒng)頂層到底層的一系列可驗(yàn)證的模型;軟件與硬件的相互驗(yàn)證不必等到實(shí)物樣機(jī)加工好再進(jìn)行,而是與硬件的RTL模型聯(lián)合仿真。其存在的主要問(wèn)題有:頂層設(shè)計(jì)如算法等用的是傳統(tǒng)的軟件高級(jí)語(yǔ)言C++、Fortran等,而底層的硬件設(shè)計(jì)用的是硬件描述語(yǔ)言VHDL、Verilog,這樣造成整個(gè)設(shè)計(jì)和驗(yàn)證流程不夠順暢,各層次之間難以做到無(wú)縫連接;對(duì)于更復(fù)雜或運(yùn)算量非常大的系統(tǒng),驗(yàn)證的速度尤其是軟硬件聯(lián)合仿真的速度太慢,難以進(jìn)行有效的驗(yàn)證。上述問(wèn)題的解決方法是:規(guī)定軟硬件設(shè)計(jì)和驗(yàn)證統(tǒng)一的高級(jí)描述語(yǔ)言;規(guī)范抽象方式和級(jí)別,特別是在RTL之上規(guī)范硬件平臺(tái)的建模方法。
國(guó)際上EDA界經(jīng)過(guò)幾年的發(fā)展與討論,公認(rèn)最有前途成為電子系統(tǒng)設(shè)計(jì)與驗(yàn)證統(tǒng)一語(yǔ)言的就是SystemC,它是在C++的基礎(chǔ)上加上一套適合于硬件描述的模板庫(kù)和仿真內(nèi)核構(gòu)成,并不斷地?cái)U(kuò)充進(jìn)有望成為標(biāo)準(zhǔn)的附加庫(kù),如驗(yàn)證庫(kù)SCV、事務(wù)級(jí)建模庫(kù)TLM API等。
在基于SystemC的系統(tǒng)級(jí)建模和驗(yàn)證流程中,首先在頂層建立較高抽象級(jí)的模型,主要用于完成系統(tǒng)控制與算法的設(shè)計(jì)分析,進(jìn)行物理架構(gòu)的功能性能的設(shè)計(jì)分析。通過(guò)建立系統(tǒng)級(jí)的抽象模型,執(zhí)行仿真分析和評(píng)估給出量化的指標(biāo),從而對(duì)系統(tǒng)級(jí)的功能性能作出正確的設(shè)計(jì),并在此基礎(chǔ)上進(jìn)行軟硬件模塊劃分。
2 模型層次
為便于后面敘述的方便,這里先簡(jiǎn)要介紹一下系統(tǒng)建模的幾種抽象方式和應(yīng)用類(lèi)型。
抽象方式可分為:
非定時(shí)功能UTF(UnTimed Functional):可用于模型的接口和內(nèi)部功能,進(jìn)程的執(zhí)行和數(shù)據(jù)傳輸都不耗費(fèi)時(shí)間, 時(shí)間只可能作為定序機(jī)制而使用。
定時(shí)功能TF(Timed Functional):可用于模型的接口和內(nèi)部功能,進(jìn)程的執(zhí)行和數(shù)據(jù)傳輸都都分配了有限的時(shí)間。
總線周期精確BCA(Bus Cycle Accurate):僅用于模型的接口,而非內(nèi)部功能,定時(shí)精確到時(shí)鐘周期,通常與系統(tǒng)時(shí)鐘相關(guān),不引入管腳級(jí)的細(xì)節(jié),信息傳輸通常以事務(wù)的方式建模。
管腳周期精確PCA(Pin Cycle Accurate):僅用于模型的接口,而非內(nèi)部功能,定時(shí)精確到時(shí)鐘周期,通常與系統(tǒng)時(shí)鐘相關(guān),描述精確到管腳級(jí)。
寄存器傳輸精確RT(Register Transfer accurate):同時(shí)用于模型的接口和內(nèi)部功能,所有的事情都被安排了時(shí)間,時(shí)鐘用于同步,需要做完整的詳細(xì)的功能說(shuō)明,每個(gè)寄存器、每條總線、每一位在每個(gè)周期的行為都有描述,能夠直接被邏輯綜合器綜合成硬件實(shí)現(xiàn),等同于RTL模型。
應(yīng)用類(lèi)型可分為:
系統(tǒng)架構(gòu)模型SAM(System Architectural Model):是系統(tǒng)的一份不含時(shí)間信息的可執(zhí)行規(guī)格,描述系統(tǒng)的硬件和軟件成分。模型接口用不含管腳細(xì)節(jié)的UTF方式,通常描述通訊協(xié)議;模型功能也用UTF方式,行為用算法來(lái)建模,且主要以順序方式描述。此種模型主要用于架構(gòu)探索和算法驗(yàn)證。
系統(tǒng)性能模型SPM(System Performance Model):是系統(tǒng)的一份含時(shí)間信息的可執(zhí)行規(guī)格,描述系統(tǒng)的硬件和軟件成分。模型接口用不含管腳細(xì)節(jié)的UTF或TF方式,通常描述通訊協(xié)議,通訊行為可以是定時(shí)的但不一定達(dá)到周期精確;模型功能可用TF或UTF方式,行為用算法來(lái)建模,順序或并發(fā)方式都可以采用,定時(shí)不是周期精確的。此種模型主要用于高層次性能建模和時(shí)間預(yù)算。
事務(wù)級(jí)模型TLM(Transaction Level Model):用于建??蓤?zhí)行的平臺(tái),通常只描述硬件。模型接口用不含管腳細(xì)節(jié)的TF方式,可以是也可以不是周期精確的,數(shù)據(jù)傳輸用事務(wù)方式建模;模型功能用TF方式,但不必是周期精確的。
功能模型(Functional Model):指抽象級(jí)別在TLM之上的模型,包括SAM和SPM。
系統(tǒng)級(jí)模型(System Level Model):指抽象級(jí)別在RTL之上的模型,包括SAM、SPM和TLM。
3 事務(wù)級(jí)建模方法TLM
事務(wù)級(jí)建模方法TLM(Transaction Level Modeling)是為了解決以下問(wèn)題而發(fā)展起來(lái)的,這些問(wèn)題包括提供軟件開(kāi)發(fā)的早期平臺(tái);系統(tǒng)架構(gòu)探索與驗(yàn)證;系統(tǒng)級(jí)模型在模塊級(jí)驗(yàn)證中的應(yīng)用。它用于建??蓤?zhí)行的平臺(tái),通常只描述硬件。
所謂事務(wù),一方面指把低層次的信息傳輸組合成的較高級(jí)別的傳輸,比如把讀寫(xiě)一大塊數(shù)據(jù)作為一個(gè)事務(wù),它包含總線上的若干次突發(fā)傳輸,每個(gè)突發(fā)傳輸又會(huì)包含地址連續(xù)的多個(gè)數(shù)據(jù)傳輸;另一方面指不牽涉具體的信號(hào),而是把傳輸中涉及到的信息分類(lèi)作為整體表示。事務(wù)級(jí)建模方法把模塊的功能和模塊間的通訊分開(kāi)建模,模塊間通訊用事務(wù)來(lái)表示,接口用不含管腳細(xì)節(jié)的TF方式,功能也用TF方式,是否周期精確根據(jù)需要而定。通過(guò)提高抽象級(jí)別,并把分散在各模塊中的通訊協(xié)議處理功能集成在專(zhuān)門(mén)的通訊模塊中完成,極大地加快了系統(tǒng)仿真的速度。
軟件工程師可以使用處理器指令集仿真器ISS(Instruction Set Simulator)來(lái)測(cè)試程序,ISS使用總線事務(wù)訪問(wèn)外部設(shè)備,總線事務(wù)通過(guò)總線功能模型連接到硬件模型,從而使軟硬件測(cè)試過(guò)程無(wú)縫連接。以前的總線功能模型是PCA,相應(yīng)的硬件模型是RTL,導(dǎo)致仿真速度很慢, 現(xiàn)在通過(guò)使用事務(wù)作為內(nèi)部模塊間通信的方式,總線功能模型是BCA,相應(yīng)的硬件模型是TLM,軟件模型、硬件模型和測(cè)試平臺(tái)可以在較高的抽象級(jí)連接成整體,仿真速度快100倍以上,并可在設(shè)計(jì)周期中更早的階段與ISS一起作為軟件運(yùn)行的平臺(tái)。具體可見(jiàn)示意圖1。
在TLM級(jí)實(shí)現(xiàn)可執(zhí)行的規(guī)格有助于進(jìn)行系統(tǒng)架構(gòu)的性能分析,探索不同的架構(gòu)方案;為RTL設(shè)計(jì)提供參考模型和驗(yàn)證平臺(tái);可以作為軟件開(kāi)發(fā)的平臺(tái),優(yōu)化軟硬件劃分方案。所以事務(wù)級(jí)的系統(tǒng)硬件可執(zhí)行規(guī)格又稱(chēng)為可執(zhí)行平臺(tái)EP( Executable Platform )。它是架構(gòu)精確的,為軟件開(kāi)發(fā)和模塊級(jí)的驗(yàn)證提供一個(gè)快速全功能的環(huán)境。當(dāng)EP作為底層RTL模塊的測(cè)試平臺(tái)時(shí),需要將相應(yīng)的TLM模塊替換為目標(biāo)RTL模塊與transactor的組合,transactor是SystemC的術(shù)語(yǔ),作用是將一種抽象級(jí)的接口轉(zhuǎn)換為另一種抽象級(jí)的接口。
圖1 由TLM構(gòu)成的可執(zhí)行平臺(tái)
由于高層模型(如算法模型)的仿真速度通常要比低一層的模型快10倍或更多,同時(shí)高層模型可重用為低層次設(shè)計(jì)的參考模型,高層的可執(zhí)行規(guī)格可作為低層設(shè)計(jì)模塊的驗(yàn)證平臺(tái),因此經(jīng)常需要將不同層次的模型混合仿真。把高層模型的對(duì)外接口用transactor形式轉(zhuǎn)換成低層模型的接口,就可以連接到整個(gè)系統(tǒng)上。
4 總結(jié)
系統(tǒng)級(jí)設(shè)計(jì)和驗(yàn)證包括從系統(tǒng)規(guī)格開(kāi)始的設(shè)計(jì)輸入、架構(gòu)評(píng)估、功能驗(yàn)證、多層次多語(yǔ)言混合驗(yàn)證、軟硬件協(xié)同開(kāi)發(fā)及驗(yàn)證等高抽象度的描述方法和驗(yàn)證技術(shù)。
SystemC作為一種適用于多層次建模和仿真的高級(jí)語(yǔ)言,已被廣泛應(yīng)用于系統(tǒng)級(jí)設(shè)計(jì)和驗(yàn)證的多個(gè)領(lǐng)域,為研究不同的系統(tǒng)結(jié)構(gòu)、進(jìn)行算法評(píng)估、軟硬件任務(wù)劃分和軟件開(kāi)發(fā)提供了有效的方法。它能使整個(gè)團(tuán)隊(duì)使用一種語(yǔ)言來(lái)靈活地組合不同的抽象層次,使設(shè)計(jì)者優(yōu)化系統(tǒng)的設(shè)計(jì)和驗(yàn)證流程。
事務(wù)級(jí)模型(TLM)與寄存器傳輸級(jí)(RTL)模型相比較,是在更高抽象級(jí)別上對(duì)系統(tǒng)硬件建模,在結(jié)構(gòu)級(jí)的組件上交換數(shù)據(jù)或執(zhí)行事件。事務(wù)級(jí)描述抽象度較高,比RTL容易開(kāi)發(fā),這樣在設(shè)計(jì)早期就可得到系統(tǒng)的硬件模型;TLM比相應(yīng)的RTL模型仿真速度快100倍以上,在TLM級(jí)的平臺(tái)上可以很快地運(yùn)行軟件,非常適合于架構(gòu)和性能分析、早期的軟硬件協(xié)同驗(yàn)證。
責(zé)任編輯:gt
-
接口
+關(guān)注
關(guān)注
33文章
8633瀏覽量
151368 -
eda
+關(guān)注
關(guān)注
71文章
2767瀏覽量
173414
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論