从VHDL测试平台实例化systemc模块

时间:2013-07-25 12:48:58

标签: modelsim systemc

我试图用VHDL Testbench测试systemc模板类。为此我遵循了https://ece.uwaterloo.ca/~ece327/protected/modelsim/htmldocs/mgchelp.htm#context=modelsim_se_user&tab=0&tag=1021469&id=452中的说明。

在我的systemc模块中,输入/输出的位长度取决于模板参数

template <int N = 1>
SC_MODULE(xor_gate)
{
// ports
sc_core::sc_out<sc_bv<N> >  xor_out;
sc_core::sc_in<sc_bv<N>  >  a;
sc_core::sc_in<sc_bv<N>  >  b;

我创建了一个包装器模块(如链接所述),它作为systemc和vhdl之间的接口。在本单元中,我按以下方式声明参数

SC_GENERIC_INT(N,1);

//constructor
xor_gate_wrapper(sc_core::sc_module_name nm, params pa = params() ) :SC_INIT_GENERIC_INT(N)

并声明顶层模块的信号

sc_core::sc_out<sc_bv<N>  > xor_out;
sc_core::sc_in<sc_bv<N>  > a;
sc_core::sc_in<sc_bv<N>  > b;

但是参数不被识别为常量,因此我在输入/输出声明中得到以下错误

error: invalid use of non-static data member 'example_namespace::xor_gate_wrapper::N'
error: from this location

有没有办法使用该参数来设置输入/输出的位长?

感谢您的回答。

0 个答案:

没有答案