我的Verilog-2001代码如下:
reg [5:0] Xpos [0:31];
reg [5:0] Ypos [0:31];
initial begin
Xpos[0] = 6'd20;
Xpos[1] = 6'd19;
Xpos[2] = 6'd18;
Ypos[0] = 6'd15;
Ypos[1] = 6'd15;
Ypos[2] = 6'd15;
end
当我试图从总是阻塞的Xpos或Ypos中读取元素0时,我得到0.解决方案是在初始块中添加for循环,这将填充其余的"字节"数组:
initial begin
Xpos[0] = 6'd20;
Xpos[1] = 6'd19;
Xpos[2] = 6'd18;
Ypos[0] = 6'd15;
Ypos[1] = 6'd15;
Ypos[2] = 6'd15;
for (k=3; k<32; k=k+1'b1) begin
Xpos[k] <= 6'd0;
Ypos[k] <= 6'd0;
end
end
第一个问题是为什么必须初始化解压缩数组的所有元素,其次,是否有更优雅的方法来执行此操作?
祝你好运, 卡米尔