2024年3月13日 星期三

*****SystemC-- 仿真過程

模擬過程是基於事件(Event)的,時間只前進,不後退。 前進的尺度與模擬時間解析度和時間單位有關。


執行過程分三個階段:


  1. 目標描述
    • 模組實例和連接模組的通道的初始化
    • 設定trace時間單位和模擬分辨率
    • sc_clock 的初始化
    • sc_time 類型資料的初始化
  2. 初始化
    • 整個 SystemC 模擬的執行過程由 SystemC 調度器(Scheduler)控制,初始化是其執行的第一步
    • SystemC 核心語言函式庫定義了三種process:
      • SC_METHOD
      • SC_THREAD
      • SC_CTHREAD
    • 在初始化階段,預設情況下每一個程序都被執行一次,THREAD 程序執行到第一個 wait() 語句
    • 透過 don't_initialize() 函數可以關閉對進程的初始化
    • 在初始化階段,進程的初始化順序是不確定的;但不同次執行中進程的初始化順序是確定的。 因此用不同編譯器可能產生不同的運行結果。
  3. 模擬
    • 從第一次遇到 sc_start() 開始到預先設定的模擬時間結束或遇到 sc_stop()
    • 預先設定的仿真時間由 sc_start() 決定,如:

如果缺省的時間單位為 ns 且程式碼中沒有使用 sc_stop(),則模擬進行 500ns

如果 sc_start() 的參數為空,則模擬會進行到遇到 sc_stop()



沒有留言:

張貼留言

*******【WSL教學】在Windows上執行Linux + VSCode

安裝WSL: 以管理員身份運行PowerShell來開啟此功能。要做到這一點,您可以在Windows搜索欄中輸入“PowerShell”,然後右鍵單擊Windows PowerShell,選擇“以管理員身份運行”。 在PowerShell中,輸入以下指令以安裝WSL。 wsl -...