基于AMBA架構的SoC系統(tǒng)事務級建模介紹
1.引言
本文引用地址:http://2s4d.com/article/148395.htm隨著集成電路制造技術的發(fā)展,VLSI 已經(jīng)進入了SoC(System-on-Chip )片上系統(tǒng)時代。對于復雜的片上系統(tǒng)而言,系統(tǒng)驗證占整個設計時間的60%-70%,其中涉及到軟件與硬件的協(xié)同工作等等。傳統(tǒng)的系統(tǒng)驗證在RTL 級進行,RTL 提供更精確接近實現(xiàn)的同時,也加長了驗證時間以及此時發(fā)現(xiàn)問題再修改帶來的成本增加,所以非常有必要地在盡可能早地進行有效的系統(tǒng)驗證。
SystemC 作為一種系統(tǒng)描述語言應運而生,它支持從系統(tǒng)級到門級的描述,解決了傳統(tǒng)片上系統(tǒng)設計方法中不同級別使用不同描述語言帶來的過渡問題,而其事務級(TransacTIon-Level,TL)建模仿真方法可以在早期有效地進行系統(tǒng)驗證,同時速度較RTL 級仿真更快。
目前,事務級建模得到廣泛的使用和認同,Synopsys 公司現(xiàn)已提供關于AMBA 架構的事務級模型,以供進行由AMBA 架構組成的SoC 系統(tǒng)的事務級建模仿真所用。
2.SystemC 事務級建模
SystemC 由C++衍生而來,在C++基礎上添加硬件擴展庫和仿真庫構成,從而使SystemC 可以建模不同抽象級別的包括軟件和硬件的復雜電子系統(tǒng),既可以描述純功能模型和系統(tǒng)體系結構,也可以描述軟硬件的具體實現(xiàn)。
在使用SystemC 進行高層次建模時,引出一個新的概念——TLM(Transaction-Level Model )事務級模型,該建模方法創(chuàng)建一可執(zhí)行平臺模型,對系統(tǒng)進行仿真,但其不僅僅是功能級描述,仿真也具有一定時序。
事務級模型建模因不考慮很多底層細節(jié),所以進行建模時間短,并且可以將重點放在如何通信,而不是通信在更底層如何實現(xiàn);事務級建??梢允褂檬录?qū)動,由一事件可以驅(qū)動一系列行為,因此建??梢栽谠缙谶M行。所以,SystemC 事務級模型具有建模效率高和仿真速度快的優(yōu)點。另外,SystemC 事務級建模作為高層次建模方法,還具有如下特點:
–模型之間依靠時鐘和(動態(tài))事件同步;
–模型內(nèi)部是周期精確的;
–模塊pin 沒有明確進行建模實現(xiàn),但可通過適配器外部實現(xiàn);
–模塊之間通過端口(port)和層次化通道(hierarchy channel )進行通信。
上述特點描述中,端口(port)和層次化通道(hierarchy channel )概念為SystemC 事務級建模引入的新概念:
. 接口(inteRFace):定義一組方法來實現(xiàn)設計目標,但不實現(xiàn)這些方法;
. 通道(channel): 實現(xiàn)接口定義的方法;根據(jù)通道內(nèi)部所實現(xiàn)方法的情況,又分為基本 通道和層次化通道;基本通道中沒有可見的結構,不包括進程,也不能直接訪問其他的基本通道;層次化通道則包括模塊、進程等,可以直接訪問其他的通道;
. 端口(port):總是與一定的接口類型相關聯(lián),端口也只能連接到實現(xiàn)了該類接口的通道上,通過端口模塊和進程來訪問通道內(nèi)定義的接口方法; 通過接口又引出接口方法調(diào)用(interface-method-call,IMC) 的概念,是指一個進程通過端口調(diào)用通道內(nèi)實現(xiàn)的接口方法。方法在接口中定義,在通道內(nèi)實現(xiàn),但在進程內(nèi)執(zhí)行。基于以上概念,提出一種事務級建模思想:
①設備若僅作為被訪問者,如存儲器、FIFO 等,那么只需要定義接口,以備被訪問,實現(xiàn)接口方法,此設備作為基本通道存在;
?、谠O備若僅作為訪問者,如CPU,那么只需要定義端口,來訪問其他設備;
?、墼O備若既可作為訪問者和被訪問者,如總線,那么它就需要同時定義端口和接口,同時也要實現(xiàn)接口,這也就是層次化通道,接口用來被訪問,端口用來發(fā)起訪問。
對于SoC 設計而言,事務級建模屬于架構型設計。在架構的事務級建模中,模塊在共享的通信通道(如總線)彼此進行交易。同時在進行系統(tǒng)的SystemC 事務級建模中,可以有效地對軟件部分進行描述,結合其進行協(xié)同仿真。所以,對所設計的系統(tǒng)使用事務級模型進行仿真時,不僅系統(tǒng)架構可以找到系統(tǒng)級的瓶頸并能有效解決,而且軟件開發(fā)者也可以評估軟件的運行吞吐量,同時也可以研究在系統(tǒng)背景下軟件和硬件模型之間的交互。
評論