本帖最后由 andyany 于 2010-9-15 14:16 编辑
做了一个数组操作的例子——
module array1(clk, dout);
input clk;
output [3:0] dout;
reg [3:0]data[3:0];
reg [3:0]cnt;
always@(posedge clk)
if(cnt != 4'd14)
cnt <= cnt + 4'd1;
always@(posedge clk)begin
data[cnt] <= cnt;
dout <= data[cnt];
end
endmodule
仿真发现输出全为X。
有的书上说,数组元素的地址必须为常数表达式。
按照新标准,reg为变量。因此错了。
是这样吗? |