在可综合的SystemC中,我可以单独绑定端口向量的每个元素:
SC_MODULE(submodule)
{
sc_vector<sc_in<int> > SC_NAMED(in_vec, 3);
};
SC_MODULE(top) {
submodule SC_NAMED(submod_inst);
sc_signal<int> SC_NAMED(a);
sc_signal<int> SC_NAMED(b);
sc_signal<int> SC_NAMED(c);
SC_CTOR(top) {
submod_inst.in_vec[0].bind(a);
submod_inst.in_vec[1].bind(b);
submod_inst.in_vec[2].bind(c);
}
};
有没有办法在可综合的SystemVerilog中做同样的事情?
module submodule (
input logic[31:0] in_vec[3];
);
endmodule
module top ();
logic [31:0] a;
logic [31:0] b;
logic [31:0] c;
submodule submod_inst (
// What should I put here?
// .in_vec[0] (a), /// ERROR!!
// .in_vec[1] (b),
// .in_vec[2] (c)
);
endmodule
你有没有尝试过
.in_vec('{a, b, c})
或者您可以创建一个数组并为其分配单个值。然后将数组信号绑定到子模块。