语境
我正在使用 modelsim/questasim 与 verilog/VHDL RTL 模块共同模拟 systemC 的模拟环境
我的 Verilog 模块使用参数来设置每个模块 我的 VHDL 模块使用泛型来设置每个模块 我的 systemC 模块可以在需要时使用模板复制它。
以下讨论非常相似,只是因为 Modelsim 我不能使用 sc_main: Setting the vector length in SystemC with a received parameter
问题
我希望能够使用 verilog 参数实例化一个 systemC 模块
例子
这是一个最小(不工作)的例子:
Verilog 文件
module submodule
#(
parameter parameter1 = 32
}
(
input logic clk,
/* signals (...) */
);
systemc_module
#(
.parameter_sc (parameter1 * 2) /* parameter can be modified */
)
systemc_module_0
(
.clk(clk),
/* signals (...) */
);
endmodule
SystemC 文件
SC_MODULE(systemc_module)
{
sc_in<sc_logic> clk;
sc_signal<sc_lv<parameter_sc> > compilation_dynamic_signal;
// other signals (...)
SC_CTOR(systemc_module)
{
// I can get the parameter at execution time with modelsim :
int buf;
sc_get_param("parameter_sc", buf)
}
}
/*Modelsim module export*/
SC_MODULE_EXPORT(systemc_module);