关于verilog数组赋值问题

求大神指点:部分代码如下:
always @(posedge CLK) if(data_en) FIFO_data1<=mem[j]; else FIFO_data1<=8'bz; always @(posedge CLK) if(data_en&&(j<1023)) j<=j+1; else j<=0; always @(posedge CLK) begin if(count1<24'd1023) begin mem[i]<=FIFO_data; count1<=count1+1; i<=i+1; data_en<=0; end else begin data_en<=1; i<=0; count1<=2000; end end FIFO_data1的输出应该为mem当中的值,起码应该是8位啊,为何出现下面的情况;

要是你的设计和测试激励是分开编写的,那有可能在测试激励文件里面的FIFO_data1的定义有误。追问

大侠,请收下我的膝盖!get√

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-08-13
mem[j]如何定义的?是不是8位呢?检查一下输出波形追问

output[7:0] FIFO_data1;
reg[7:0] mem[0:1023];
定义是没得问题的,当时仿真就出现上面的情况:

相似回答