实践任务一:寄存器堆仿真
raddr1 = 5'd0;
raddr2 = 5'd0;
waddr = 5'd0;
wdata = 32'd0;
we = 1'd0;
task_phase = 4'd0;
#2000;
信号初始化以后延迟2000个时间单位,在显示提示信息以后又延迟11个时间单位,所以第一次有效的波形显示是在第2011时间单位的时候。
// Part 0 Begin
#10;
task_phase = 4'd0;
we = 1'b0;
waddr = 5'd1;
wdata = 32'hffffffff;
raddr1 = 5'd1;
#10;
we = 1'b1;
waddr = 5'd1;
wdata = 32'h1111ffff;
#10;
we = 1'b0;
raddr1 = 5'd2;
raddr2 = 5'd1;
#10;
raddr1 = 5'd1;
#200;
可以看到开始的时候我的we信号值为0所以无法给对应的寄存器赋值,对应寄存器的值保持原来的不变,如下
此时1号寄存器值依然为未知,接下来延时10个时间单位,我们给we赋值为1,继续延时10个时间单位,我们可以看到此时1号寄存器被赋值为对应wdata的值,其他依此类推。