當我創建一個systemc模塊時,我給它一個字符串作爲模塊名稱(:: sc_core :: sc_module_name)。如何獲取當前運行模塊的systemc sc_module_name
如何獲得當前在systemc中運行的模塊的名稱?
當我創建一個systemc模塊時,我給它一個字符串作爲模塊名稱(:: sc_core :: sc_module_name)。如何獲取當前運行模塊的systemc sc_module_name
如何獲得當前在systemc中運行的模塊的名稱?
不要爲構造函數使用內置宏。使用以下,假設模塊名稱是「反」:
counter(sc_module_name _name):sc_module(_name)
{
cout << "Creating object " << _name;
}
你可以做各種事情與_name
你包括<string>
後。您可以使用string()
,與+
運營商串聯等
爲了獲得當前在SystemC的運行模塊的名稱:
使用sc_get_current_process_b
獲得當前正在執行的進程(線程SC或方法)。然後使用get_parent
獲取它的父母,這將成爲模塊。然後使用basename
或name
得到它的名字:
const char* name = sc_core::sc_get_current_process_b()->get_parent()->basename();
(處理爲簡潔起見省略錯誤)
謝謝,這是我需要的東西。 但是,有沒有關於這些功能的任何文檔? 例如,如果我有一些操作系統線程與某些sc_threads並行運行,並且操作系統線程會調用這些函數會發生什麼? – yonigo
我在代碼中使用了[IEEE 1666](http://standards.ieee.org/getieee/1666/download/1666-2011.pdf)和文檔('systemc-2.2.0/src/sysc/kernel/sc_simcontext。 h') – anatolyg