首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在SystemC中使用接收参数设置信号长度

在SystemC中使用接收参数设置信号长度
EN

Stack Overflow用户
提问于 2021-08-06 08:18:15
回答 1查看 110关注 0票数 0

上下文

我正在用modelsim/questasim开发一个用verilog/VHDL模块共同模拟的systemC仿真环境。

我的Verilog模块使用参数来设置每个模块,我的VHDL模块使用泛型来设置每个模块,如果需要的话,我的systemC模块可以使用模板复制这些模块。

下面的讨论非常相似,但我不能使用sc_main,因为有Modelsim:Setting the vector length in SystemC with a received parameter

问题

我希望能够使用verilog参数实例化systemC模块

示例

下面是一个最小的(不起作用的)示例:

Verilog文件

代码语言:javascript
复制
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文件

代码语言:javascript
复制
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);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-06 16:46:31

您不能这样做,因为您的SystemC代码是独立于Verilog/VHDL代码编译的。泛型/参数的概念是VHDL/Verilog独有的,并不直接映射到C++模板。在编译SystemC代码时,您不知道有多少SC_MODULE实例以及它们的参数值可能是什么。

使用sc_main的示例之所以有效,是因为它是使用C++编译器编译的,而SC_MODULE的模板化就是在这里发生的。

choosing appropriate specialized template at runtime

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68678393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档