SystemVerilog中未压缩数组元素的单独绑定

问题描述 投票:0回答:1

在可综合的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
verilog system-verilog
1个回答
2
投票

你有没有尝试过

.in_vec('{a, b, c})

或者您可以创建一个数组并为其分配单个值。然后将数组信号绑定到子模块。

© www.soinside.com 2019 - 2024. All rights reserved.