在更詳細(xì)地描述事務(wù)級建模之前,首先介紹在事務(wù)級建模中用到的一些術(shù)語。首先事務(wù)表示數(shù)據(jù)和事件的交換過程。各個連續(xù)的事務(wù)可以是不同大小的數(shù)據(jù)傳輸,也可以是在系統(tǒng)同步時用來調(diào)整或管理模塊之間行為的事件。這種事件對保證模塊間的行為傳遞是至關(guān)重要的。
例如,DMA傳輸結(jié)束后的中斷信息就是一個系統(tǒng)同步行為。在電子系統(tǒng)中,每個元件由一組狀態(tài)和并發(fā)的行為組成。在事務(wù)級建模中,電子系統(tǒng)中的元件可以建模為一個功能模塊。一個電子系統(tǒng)可以由若干個事務(wù)級模塊組成。元件的狀態(tài)在事務(wù)級模型中用變量表示,而不同的行為在模型中用一組可以并發(fā)進行的進程表示。模塊之間通過一種特殊的事務(wù)級通信結(jié)構(gòu)實現(xiàn)相互通信,這種結(jié)構(gòu)稱為通道。
根據(jù)仿真精度的不同,通道可以是簡單的路由器、抽象總線模型或者是片上網(wǎng)絡(luò),也可以是其他結(jié)構(gòu)。通道是事務(wù)級模型中將通信從運算單元獨立出來所必需的一種抽象。
模塊和通道通過端口連接在一起。事務(wù)級模型中的接口包含通信協(xié)議,而這種通信協(xié)議的具體實現(xiàn)則在通道中完成。在系統(tǒng)中,主設(shè)備是系統(tǒng)中發(fā)起事務(wù)的模塊,而從設(shè)備是接收或響應(yīng)事務(wù)請求的模塊。在建立通信過程中,主設(shè)備的進程通過模塊的端口訪問接口,接口區(qū)分事務(wù)級模型系統(tǒng)中的通信。
事務(wù)級模型(模塊M、模塊S和通道)構(gòu)成一個簡單的系統(tǒng)。模塊M是系統(tǒng)中發(fā)起事務(wù)的主設(shè)備,而模塊S是系統(tǒng)的從設(shè)備。模塊M和模塊S分別有兩個獨立的進程,描述不同的行為。模塊M和模塊S之間通過各自的端口綁定到通道提供的接口實現(xiàn)通信。
可以看出事務(wù)級模型實現(xiàn)了運算功能和通信功能的分開,它們在不同的事務(wù)級模型中完成。接口A和接口B分別是通信協(xié)議A和通信協(xié)議B的接口,它們是一組函數(shù)的集合,通過端口提供給進程調(diào)用,而接口函數(shù)集合中的函數(shù)體即通信協(xié)議的具體實現(xiàn)在通道模型中完成。
通道實現(xiàn)了兩種通信協(xié)議,通信協(xié)議A和通信協(xié)議B。而模塊M和模塊S通過模塊的端口綁定到通道后,以通信協(xié)議A規(guī)定的方式進行通信。
具體而言,在基于SystemC或C++的事務(wù)級模型中,接口通常被表示為C++抽象類。該抽象類定義了一組抽象的方法,但不定義這些方法的具體實現(xiàn),即純虛函數(shù)。
通道則繼承一個或多個接口,實現(xiàn)在接口中定義的所有虛函數(shù)。模塊中的進程可以通過端口使用時用通道提供的方法。端口總是與一定的接口類型相關(guān)聯(lián),端口只能連接到實現(xiàn)了該類接口的通道上。關(guān)于在SystemC中接口、通道、端口的具體語法請參照4.6.7節(jié)所述。
前面提到事務(wù)級模型可以分為3種,即沒有時序信息的模型、周期近似的模型和精確到每個周期的模型。沒有時間信息的計算或通信模型表示系統(tǒng)設(shè)計的功能描述,這些模型沒有具體的實現(xiàn)細(xì)節(jié)。
周期近似的計算或通信模型則包含系統(tǒng)級的實現(xiàn)細(xì)節(jié)如系統(tǒng)體系結(jié)構(gòu)的選擇、系統(tǒng)定義的功能和體系結(jié)構(gòu)中模塊的映射關(guān)系等。
周期近似的運算或通信模型中的執(zhí)行時間通常在系統(tǒng)級通過估計得到,因為在這時還沒有周期精確的RTL級或者指令級的仿真平臺。而周期精確的運算和通信模型包含了系統(tǒng)級的實現(xiàn)細(xì)節(jié)如RTL級或指令級描述,因此,可以得到周期精確的仿真結(jié)果。
算法模型描述系統(tǒng)的功能與具體的實現(xiàn)無關(guān)。算法模型不用通道的概念而是通過變量訪問的形式建模數(shù)據(jù)在進程間的傳輸。算法模型是沒有時間信息的模型。
在元件組裝模型中,并發(fā)進行的進程單元通過通道進行通信。所謂進程單元是指剝離了通信機制的定制硬件、通用處理器、DSP或其他IP的事務(wù)級模型的模塊。通道是消息的輸出通路,表示進程單元之間的數(shù)據(jù)傳輸和進程同步。
在元件組裝模型中,通道沒有時間信息,也沒有總線或協(xié)議的具體實現(xiàn)。進程單元的運算部分是周期近似的,通過估計特定的進程單元的執(zhí)行時間得到。與算法模型相比較,元件組裝模型明確定義了進程在系統(tǒng)結(jié)構(gòu)中的位置,并規(guī)定了進程到進程單元的映射。
在總線仲裁模型中,進程單元間的通道表示總線,包含了總線或者協(xié)議的實現(xiàn),稱為抽象的總線通道。通道同樣通過消息的傳送實現(xiàn)數(shù)據(jù)傳輸。在總線仲裁模型中,總線協(xié)議沒有實現(xiàn)周期精確或者引腳精確,抽象的總線通道只是包含近似的時間信息,這個時間信息通常在每個事務(wù)中的等待聲明中給出。
在一些情況下,幾個總線通道抽象成一個總線通道,需要在總線通道的接口函數(shù)中增加邏輯地址和總線優(yōu)先級參數(shù),其中,邏輯地址區(qū)分不同的進程單元或進程調(diào)用接口函數(shù),而總線優(yōu)先級規(guī)定了總線沖突發(fā)生時總線的訪問順序,而且總線仲裁器作為一個新的進程單元增加到系統(tǒng)的體系結(jié)構(gòu)中去,由它來處理總線沖突。主進程單元、從進程單元和總線仲裁器調(diào)用同一抽象總線通道中不同接口的函數(shù)。
總線功能模型包括時間精確或周期精確的通信及周期近似的運算。有兩種總線功能模型,一種是時間精確,另一種是周期精確。時間精確的總線功能模型規(guī)定通信的時間約束,這種約束由模塊之間通信協(xié)議的時序圖決定,而周期精確模型以主進程單元時鐘周期的方式給出時間約束。
在總線功能模型中,消息傳送通道被協(xié)議通道取代。在一個協(xié)議通道中,總線的互連被例化成相應(yīng)的變量和信號,實現(xiàn)周期精確的通信。
周期精確的運算模型包括周期精確的運算模型和周期近期的通信,這個模型可以從總線仲裁模型得到。在這個模型中,運算單元是引腳精確和周期精確的。
定制硬件電路可以在RTL級上建模周期精確的運算模型,而通用處理器或者DSP則一般在周期精確的指令集結(jié)構(gòu)上建模周期精確的運算模型。為了使周期精確的進程單元和抽象總線通道的抽象接口進行通信,需要包裹一個轉(zhuǎn)換層,實現(xiàn)高層抽象到低層抽象的數(shù)據(jù)傳輸,即實現(xiàn)進程單元和總線接口的通信。在周期精確的運算模型中沒有必要使所有的運算都做到周期精確。
實現(xiàn)模型既是周期精確的運算,也是周期精確的通行,就是通常所指的RTL模型或者指令集模型。這個模型可以從總線功能模型或者周期精確的運算模型得到。
-
模塊
+關(guān)注
關(guān)注
7文章
2776瀏覽量
49174 -
接口
+關(guān)注
關(guān)注
33文章
8897瀏覽量
153044 -
ESL
+關(guān)注
關(guān)注
1文章
74瀏覽量
21597 -
dma
+關(guān)注
關(guān)注
3文章
569瀏覽量
102124
發(fā)布評論請先 登錄
評論