我想为数组赋值 - mem。它有16行和16列。 每个元素是2位宽。 我想像这样初始化一个数组的每一行。如果我正在初始化数组的第4行,那么每个值应存储在相应的列中。所以0将在第15列,2将在第12列,等等。我不想逐列存储值。 但是下面的代码给了我一个错误。请有人可以帮助我。非常感谢。
module test2;
reg [1:0] mem [15:0][15:0];
wire [1:0] icon;
assign icon = mem[4][4];
mem[4][15:0] = 16'h0002000000000000;
$strobe("%b", icon);
endmodule;
答案 0 :(得分:0)
您可以在初始块内的for循环中执行此操作:
module test2;
parameter initial_value = 16'b0001000000000000;
integer i;
reg [1:0] mem [15:0][15:0];
wire [1:0] icon;
assign icon = mem[4][4];
initial
for ( i=0 ; i<=15; i++)
mem[4][i] = initial_value[i];
always begin #10 $strobe("%b", icon); end
endmodule;