在SystemC中,有三種主要的進程類型,每種類型適用於不同的場景:
表示方法進程,是SystemC中最簡單的進程類型。它在敏感事件發生時觸發執行,執行結束後即停止,不能使用wait()
語句。
wait()
語句)。適用場景:
適用於組合邏輯、簡單的行為建模,通常用於描述不會涉及複雜時序行為的部分。
表示時鐘線程進程,是由clock驅動的進程,可以在進程內部使用wait()
語句以便進行suspend和rresume操作。
wait()
語句來同步時鐘(即等待一個cycle)。wait()
語句,用於描述複雜的時序行為。Suspend:
定義:指進程在某個點暫停執行,進入等待狀態,直到某個條件或事件發生。
在SC_CTHREAD中:suspend是通過wait()語句實現的。當進程執行到wait()語句時,進程會暫停,等待下一個時鐘周期或者某個事件發生。
Resume:
定義:指進程從等待狀態中恢復執行,從suspend的位置繼續執行後續的代碼。
在SC_CTHREAD中:當等待的條件滿足(例如下一個時鐘周期到來)時,進程會從上一次掛起的位置繼續執行,這就是恢復操作
適用於時鐘同步的過程、描述複雜時序行為,如寄存器傳輸級(RTL)設計。
表示線程進程,與SC_METHOD類似,但SC_THREAD可以在進程內部使用wait()
語句,從而允許進程suspend or resume。
wait()
語句,但不需要與時鐘同步。適用於複雜的控制邏輯、模擬真實硬體行為、需要進行suspend/resume的場景。
SC_METHOD:適用組合邏輯。
SC_CTHREAD:時鐘同步,複雜時序,適用於RTL design。
SC_THREAD:較靈活,適用於複雜控制邏輯。
SystemC的建構函式為SC_CTOR,必須與module的名字相同。
結束時執行清理工作。
在C++和SystemC中,析構函式以~符號開頭。