預備打勞工之SystemC學習
- 動态建立程序
-
- sc_spawn
- sc_spawn_options
- 系統模組化中的分層模型
-
- 通訊中的抽象層次
- 寄存器傳輸層
- 傳輸層
- 事務層
- 消息層
- SystemC的事務處理級模組化初步
-
- 事務的概念
- 事務級模組化用法
- 事務級模組化的特點
- 通信細化
-
- 通信細化的概念
- 一個通信細化執行個體
動态建立程序
SC_METHOD、SC_THREAD、SC_CTHREAD都是講台程序,從SystemC2.1開始引入了動态程序。動态程序 建立允許在同一個函數方法中自動建立和配置設定多個程序,用于臨時斷言檢查、處理零時性的并發事件等。相關的文法包括:
sc_spawn
sc_spawn_options
SC_FORK
SC_JOIN
sc_process_handle::wait()
sc_bind
sc_ref
sc_cref
注意:使用任何上述文法前需要調用
#define SC_INCLUDE_DYNAMIC_PROCESSES
以下逐個介紹
sc_spawn
函數sc_spawn主要用于建立動态程序,也可以用于建立靜态程序。sc_spawn可以在sc_main中調用,可以在子產品的構造函數中調用,也可以在其他程序中調用,還可以在sc_spawn動态建立的程序中調用,進而形成程序樹。
文法如下:
參數T object是為以必須指定的sc_spawn函數的參數。它可以是一個函數指針,可以是由sc_bind指定的子產品的方法,也可以是一個函數對象。所謂函數對象是指一個對象重載了操作符(),為了支援動态程序建立。
sc_spawn_options
類sc_spawn_options用于建立作為sc_spawn實參的一個對象。類sc_spawn_options包括很多方法用來修改sc_spawn_options的屬性。
系統模組化中的分層模型
事務處理器模型和通信細化是SystemC中給的重要概念,首先介紹系統模組化中通訊的抽象層次。
通訊中的抽象層次
系統模組化是将底層細節屏蔽的抽象過程。這是通信的抽象層次。

每個層次包含三個元件:發起者、通道和目标裝置。發起者通過接口,利用通道連接配接到目标裝置上。接口給發起者和目标裝置提供了通道所提供的的服務。
寄存器傳輸層
寄存器傳輸層是第0層。寄存器傳輸層描述了存儲單元群組合邏輯快之間的互聯關系,可以直接進行邏輯綜合得到門級網表。
傳輸層
傳輸層在寄存器傳輸層之上,稱為第一層。它的特點是這個抽象基本中的系統是由精确到周期的行為組成,寄存器傳輸層也是精确到時鐘的。傳輸層的系統監控一般對應着一定的總線協定。這一層的系統模型是有時鐘的,主裝置和從裝置之間的一次事務在時鐘事件上完成。一次事務代表了一次資料傳輸和相應的總線控制信号的握手。
這一層的模型不需要寫可綜合的實作代碼,而隻需要提供一個精确到時間周期、符合協定要求的子產品互連機制和一個快速仿真的測試平台。
第一層的模型可以通過适當的轉換與第零層的RTL子產品互連,也可以與第二層互連。第一層的文法适用于進行指令集處理器模型與時鐘精确的其他硬體模型的互聯。
這一層,傳輸層與寄存器傳輸層相比,特點在于:
- 網表簡單
- 仿真速度快
- 功能塊和通信通道之間的接口更為簡單,不需要知道所有的接口信号。
這一層模組化的主要用途是:
- 作為第三層和第二層子產品和精确到周期的模型之間的橋梁
- 為一些IP子產品(例如嵌入式微處理器)的抽象仿真模型提供精确到周期的接口。
- 精确到周期的測試平台模組化
- 精确到周期的測試性能仿真
主要特點:
事務層
事務層是第二層。這一層的系統模型帶有時間資訊,但不精确到時鐘周期,系統是時間驅動執行的。發起者裝置和目标裝置之間的一個事務可能包含幾個資料的傳輸。執行這個事務所需要的時間由主裝置和從裝置來評估。通常的事務級系統摩西與總線協定無關,因為總線協定總是與精确到時鐘周期的系統有關。
事務級模組化的主要用途為:
- 硬軟體系統結構的性能分析和行為分析
- 軟硬體劃分和協同設計
- 周期性能分析
- 作為底層裝置驅動和硬體仿真軟體的接口
- 內建操作做系統仿真器
- 作為精确到周期的模型和事務級模型仿真平台
- 作為測試圖樣,或者模拟設計的系統環境
主要特點為:
- 事務層是将理想結構映射到需要充分考慮資源配置設定和設計限制的結構中
- 存儲器和寄存器的映射是精确的
- 多線程通信
- 可以通過對資料類型的限制來對總線的突發傳輸或者突發傳輸的片段進行模組化
- 時間驅動的仿真機制
- 能夠基于傳輸量和延時限制進行延時性能估計
消息層
消息層是第三層。這一層的系統沒有任何時間資訊,系統執行是事件驅動的。主裝置和從裝置之間的一次事務包含了多個資料的傳輸,這些資料可能處于非常抽象的層次。
消息層系統模型主要是用來證明系統概念,制定可執行的設計規範,功能劃分和高層的設計折中等。具體的包括:
- 對資料通道和控制單元進行功能劃分
- 系統通信定義和最初的概念型系統的測試平台
- 與高層的系統仿真內建
- 算法性能、行為和控制探索
SystemC的事務處理級模組化初步
事務的概念
事務可以了解為系統模型中兩個元件之間的一次資料交換。
事務級模組化用法
事務處理級模組化提供一個非常重要的用途就是可以在設計比較早的時候進行嵌入式軟體的開發。TLM模型能夠提供非常快速的硬體仿真速度,從個人提高開發的效率。
另一個作用是系統結構探索,提供初步的性能分析
事務級模組化的特點
進行事務級模組化的SoC設計一般都是需要軟硬體的混合系統。大多數的系統帶有一個或者多個嵌入式的微處理器和相應的片上總線通信結構,完成各個功能子產品之間的互相通訊。事務處理器模組化的主要任務是利用SystemC進行相應的通信抽象,實作通信機制。
特點:
- 功能與通信分離。實作具體算法的部分與實作資料和時間傳輸的部分分離。
- 接口方法調用。一組給定的同學方法被稱為接口,包括資料接口和控制接口。
通信細化
通信細化的概念
當最佳系統體系結構被標明,TLM模型被逐漸地細化,轉化為可以綜合的寄存器傳輸級模型。
所謂通信細化是指在保持接口不變的情況下具體實作的細節可以由粗糙的功能模型向更低級别的模型和更具體的實作細節轉換,單獨修改或者替換某一個單元不會影響其他單元,一般需要引入适配子產品以保持到其他子產品的接口不變。
一個通信細化執行個體
通信細化的過程就是一個替換的過程。假設圖中的FIFO是我們要最終硬體實作的目标子產品,最初是一個TLM級行為模型,然後細化RTL模型。