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