目的:我的目的是想将mem的每一个地址所存的数据全部赋值为“0000_0001”。
出现错误:
修改方法:把“1'b1”改为“8‘d1”就可以了
问题:请问为什么写成“1'b1”会导致mem中只有第一个地址被赋值,而且是255而不是1呢?即赋值符号左右两侧位数不对,但是赋值的时候不是会将右侧的高位自动补0吗?
目的:我的目的是想将mem的每一个地址所存的数据全部赋值为“0000_0001”。
出现错误:
在 for 中对数组赋值时会有些不一样的变化
for 按赋值的位宽对步长做调整。这只针对for 中赋值的常数
给你贴点代码和对应的图,帮助你对这东西的理解
reg [3:0] xx;
reg [7:0][7:0] mem_xxx1;
reg [7:0][7:0] mem_xxx2;
reg [7:0][7:0] mem_xxx3;
reg [7:0][7:0] mem_xxx4;
initial
begin
#1000
for(xx=0;xx<4;xx=xx+1)
begin
mem_xxx1[xx] <= 1;
mem_xxx2[xx] <= 12'b0_1111_1111;
mem_xxx3[xx] <= 1'b1;
mem_xxx4[xx] <= xx;
end
end