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