SystemVerilog:将两个1D数组转换为2D数组

时间:2018-07-06 21:47:28

标签: system-verilog

logic [7:0] a;
logic [7:0] b;
logic [1:0][7:0] c;
assign c = {{a},{b}};

如果我有a和b,如何将其转换为c类型? 我想一种明显的方法是使用:

assign c[0] = a;
assign c[1] = b;

但是假设c不是逻辑变量,而是模块的输入端口。

mymodule inst_mymodule (
    .c_i({{a},{b}}) // c is logic [1:0][7:0]
    .o(out)
);

你会做什么?

1 个答案:

答案 0 :(得分:1)

由于您使用压缩数组,因此c的类型无关紧要。它只需要是16位。另外,您不需要在ab前后加上多余的{}。您可以写{a,b}