如何获取当前正在运行的模块的sc_module_name

yon*_*igo 5 c++ systemc

当我创建一个实例时,如果sc_module我给它一个字符串作为模块名称(sc_module_name).

如何获取当前正在运行的模块的名称?

ana*_*lyg 5

要获取当前在systemc中运行的模块的名称,请执行以下操作:

使用sc_get_current_process_b来获得当前正在执行的进程(线程SC或方法)。然后使用get_parent获取其父级,它将成为模块。然后使用basenamename获得其名称:

const char* name = sc_core::sc_get_current_process_b()->get_parent()->basename();
Run Code Online (Sandbox Code Playgroud)

(为简洁起见,省略了错误处理)


zeh*_*awk 0

不要对构造函数使用内置宏。使用以下命令,假设模块名称是“counter”:

counter(sc_module_name _name):sc_module(_name)
{
    cout << "Creating object " << _name;
}
Run Code Online (Sandbox Code Playgroud)

_name包含后,您可以执行各种操作<string>。您可以使用string()、与+运算符连接等。