新聞中心

EEPW首頁(yè) > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 基于混合建模的SoC軟硬件協(xié)同驗(yàn)證平臺(tái)研究

基于混合建模的SoC軟硬件協(xié)同驗(yàn)證平臺(tái)研究

作者: 時(shí)間:2009-06-30 來(lái)源:網(wǎng)絡(luò) 收藏

驗(yàn)證平臺(tái)軟件部分中最重要的模型是CPU的ISS(Instlruction Set Simulator,指令集仿真器),用來(lái)模擬系統(tǒng)中的CPU,可以提供軟件代碼執(zhí)行時(shí)周期準(zhǔn)確的仿真結(jié)果。平臺(tái)中使用的是ARM系列CPU的ISS,稱為ARMulator。ARMulator也是ARM CPU軟件集成開(kāi)發(fā)環(huán)境的直接載體,的軟件開(kāi)發(fā)人員可以在基于AR-Mulator’的集成開(kāi)發(fā)環(huán)境中運(yùn)行、調(diào)試源代碼,與其在真實(shí)的CPU上的運(yùn)行調(diào)試完全相同。其他的總線模型,如圖中所示的IP3、IP4,用來(lái)描述硬件系統(tǒng)中除CPU之外的一些模塊,最好都是SystemC語(yǔ)言描述的事務(wù)級(jí)模型。事務(wù)級(jí)模型是RTL級(jí)硬件模型的抽象,省略了RTL級(jí)的實(shí)現(xiàn)細(xì)節(jié),但是仍然以周期數(shù)精確等方式反映了RTL級(jí)模型的特點(diǎn),是設(shè)計(jì)初期系統(tǒng)的常用選擇。不過(guò)考慮到驗(yàn)證環(huán)境的通用性,再加上ARMulator本身也并不是SystemC語(yǔ)言的模型,而是基于C的功能性模型,驗(yàn)證環(huán)境自然需要同時(shí)支持事務(wù)級(jí)模型與功能性模型,因此,驗(yàn)證平臺(tái)也支持其他總線模塊以C/C++等語(yǔ)言描述的功能級(jí)模型。這些模型與ARMulator都連接到AHB總線的模型上,如圖1中IP3、IP4所示,AHB總線模型負(fù)責(zé)完成ARMulator。與軟件方各總線模型間,以及與硬件方之間的連接。
驗(yàn)證平臺(tái)硬件部分的物理載體是以FPGA為主的PCB板卡,以PCI總線為物理通道連接到PC機(jī)。SoC硬件系統(tǒng)中RTL模型形式的總線模塊全部下載到FPGA內(nèi)部,如圖1中的IPl、IP2。由于FPGA內(nèi)模塊的RTL模型與CPU之間的總線通信數(shù)據(jù)可以在軟件方得到良好的可觀測(cè)性,對(duì)于以驗(yàn)證總線模塊間通信正確性為目的的系統(tǒng)級(jí)驗(yàn)證來(lái)說(shuō),模塊間通信數(shù)據(jù)的可觀測(cè)性是足夠的,這也就部分避免了硬件方法觀測(cè)性不足的缺點(diǎn)。
因?yàn)檐浖降哪P统橄髮哟伪扔布絉TL模型的抽象層次高,所以要想把軟件方模型和硬件方模型組合起來(lái)形成可用的SoC硬件系統(tǒng),就必須完成這兩種抽象層次之間的數(shù)據(jù)同步和交換,這個(gè)任務(wù)是BFM完成的。BFM的具體實(shí)現(xiàn)將在后面詳細(xì)闡述??傮w的效果是,在軟件方模型看來(lái),BFM代表了硬件上的RTL模型,對(duì)軟件方隱藏了RTL模型的實(shí)現(xiàn)細(xì)節(jié),軟件方只需要訪問(wèn)BFM,就得到了相應(yīng)模塊的數(shù)據(jù);而在硬件方模型看來(lái),BFM代表了軟件方的所有總線模塊,BFM驅(qū)動(dòng)的RTL級(jí)總線信號(hào)就是由軟件方中各總線模塊的總線訪問(wèn)轉(zhuǎn)化而來(lái)的。
硬件方與軟件方接口的實(shí)現(xiàn),以PCI總線為基礎(chǔ),遵守SCE-MI(Standard C-Emulation Modeling Interface)協(xié)議。SCE-MI是.Accellera組織提出的用于規(guī)范協(xié)同仿效平臺(tái)中軟件方與硬件方之間的接口的協(xié)議,是業(yè)界實(shí)際的標(biāo)準(zhǔn),目前已被多個(gè)商業(yè)化驗(yàn)證平臺(tái)支持。本驗(yàn)證平臺(tái)的BFM遵守SCE-MI協(xié)議接口,也是為了驗(yàn)證平臺(tái)以及BFM本身的通用性。
如上所述,通過(guò)BFM的層次轉(zhuǎn)接作用,軟件方模型和硬件方模型得以完成連接,不同抽象層次的模型共同構(gòu)成了SoC的硬件系統(tǒng);而SoC的軟件則可以以此硬件系統(tǒng)為基礎(chǔ),得到實(shí)際的運(yùn)行和調(diào)試,最終建立起了混合驗(yàn)證環(huán)境。
2.2 以平臺(tái)為基礎(chǔ)的驗(yàn)證流程
基于上述驗(yàn)證平臺(tái),混合建模方法的流程如圖2所示。在系統(tǒng)級(jí)仿真和軟硬件劃分之后,開(kāi)始軟件和硬件的并行設(shè)計(jì),同時(shí)開(kāi)始驗(yàn)證。協(xié)同驗(yàn)證過(guò)程可以分為三個(gè)階段。在最初的驗(yàn)證階段中,SoC硬件系統(tǒng)全部由軟件方的模型建模。隨后的階段,開(kāi)始完成硬件系統(tǒng)中高層模型中IP模塊的逐個(gè)細(xì)化,此時(shí),完成了RTL模塊開(kāi)發(fā)的IP可從軟件建模部分移到硬件建模部分的FPGA中,還未開(kāi)發(fā)出的模塊,或是未完成配置的IP仍然由軟件方的模型建模。這樣,設(shè)計(jì)人員完成一個(gè)模塊的細(xì)化,驗(yàn)證人員就可以開(kāi)始系統(tǒng)級(jí)驗(yàn)證工作,而不必等到系統(tǒng)的全部模塊全部完成細(xì)化后才開(kāi)始驗(yàn)證。這樣,一方面避免了驗(yàn)證等待設(shè)計(jì)的情況;另一方面,模塊的逐個(gè)細(xì)化,可以使新出現(xiàn)的仿真錯(cuò)誤的bug被定位到最后細(xì)化的模塊中,有效降低了驗(yàn)證的難度。最后的階段,除CPU之外,SoC硬件的所有模塊都被逐步移到了驗(yàn)證平臺(tái)的硬件方FPGA中,即基本完成了RTL級(jí)模型的SoC驗(yàn)證,之后向快速原型驗(yàn)證的遷移是也非常方便的,大部分的驗(yàn)證環(huán)境都可以復(fù)用。

總的來(lái)說(shuō),混合建模方法的好處就在于:建立支持不同抽象層次模型的驗(yàn)證環(huán)境,從而在不同層次的驗(yàn)證中實(shí)現(xiàn)驗(yàn)證環(huán)境的復(fù)用,也使得在不同層次的設(shè)計(jì)過(guò)程中始終都可以進(jìn)行系統(tǒng)級(jí)驗(yàn)證;同時(shí)糅合了軟件和硬件建模方法的特點(diǎn)來(lái)解決RTL模型仿真速度慢的問(wèn)題,并且避免了硬件建模的低可觀測(cè)性增加系統(tǒng)驗(yàn)證難度的問(wèn)題。


3 總線功能模型BFM
在上述的驗(yàn)證平臺(tái)中,BFM模塊起著混合建模方法中高層次模型與RTL模型間的轉(zhuǎn)接作用,是驗(yàn)證平臺(tái)中最為關(guān)鍵的組成部分。下面詳細(xì)闡述BFM模塊的概念和具體實(shí)現(xiàn)。
3.1 BFM及事務(wù)級(jí)的概念
BFM是與TL(Transaction Level,事務(wù)級(jí))的概念分不開(kāi)的。TL模型是高于RTL模型的一個(gè)抽象層次,忽略了RTL模型中具體的信號(hào)和時(shí)序信息,但是保持RTL模型中模塊的框架和模塊間數(shù)據(jù)通信的信息和周期數(shù)。TL模型最典型的例子就是符合總線接口協(xié)議的模塊,例如符合AHB總線接口的一個(gè)模塊A,模塊A的TL模型保持與其RTL模型相同的模塊接口、模塊邊界以及內(nèi)部功能,但是其內(nèi)部功能只是功能性描述,不涉及硬件具體實(shí)現(xiàn);模塊的接口則是忽略了AHB總線接口協(xié)議的具體信號(hào)和相關(guān)時(shí)序,只關(guān)心其總線訪問(wèn)的關(guān)鍵信息,如訪問(wèn)的地址、數(shù)據(jù)、完成訪問(wèn)所花的周期數(shù)等。模型的優(yōu)點(diǎn)是忽略了硬件具體實(shí)現(xiàn)細(xì)節(jié),使得模型大大簡(jiǎn)化,模型的建立和仿真都不復(fù)雜,同時(shí)又保留了部分RTL模型的特征,使得仿真結(jié)果的精確度有一定保證,滿足了系統(tǒng)級(jí)仿真的需求。



關(guān)鍵詞: SoC 建模 軟硬件協(xié)同

評(píng)論


相關(guān)推薦

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

關(guān)閉