新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > 基于混合建模的SoC軟硬件協同驗證平臺研究

        基于混合建模的SoC軟硬件協同驗證平臺研究

        作者: 時間:2009-06-30 來源:網絡 收藏

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

        總的來說,混合建模方法的好處就在于:建立支持不同抽象層次模型的驗證環境,從而在不同層次的驗證中實現驗證環境的復用,也使得在不同層次的設計過程中始終都可以進行系統級驗證;同時糅合了軟件和硬件建模方法的特點來解決RTL模型仿真速度慢的問題,并且避免了硬件建模的低可觀測性增加系統驗證難度的問題。


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



        關鍵詞: SoC 建模 軟硬件協同

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 襄汾县| 汾阳市| 玛曲县| 英山县| 翼城县| 辰溪县| 盐池县| 洛宁县| 什邡市| 大冶市| 保靖县| 鄢陵县| 通化县| 九江县| 奈曼旗| 怀柔区| 合川市| 宝应县| 永昌县| 剑阁县| 淮南市| 江津市| 锡林郭勒盟| 丹东市| 五华县| 应用必备| 开江县| 华阴市| 祁阳县| 东乡族自治县| 宁津县| 于田县| 博客| 托克逊县| 河西区| 通州区| 阳江市| 荥阳市| 乐亭县| 科尔| 溆浦县|