В синтезируемом 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