lab2
Regfile 仿真
创建工程,添加已有的设计文件。
module regfile(
input clk,
input [ 4:0] raddr1,
output [31:0] rdata1,
input [ 4:0] raddr2,
output [31:0] rdata2,
input we,
input [ 4:0] waddr,
input [31:0] wdata
);
reg [31:0] rf[31:0];
// WRITE
always @(posedge clk) begin
if (we) rf[waddr]<= wdata;
end
// READ OUT 1
assign rdata1 = (raddr1==5'b0) ? 32'b0 : rf[raddr1];
// READ OUT 2
assign rdata2 = (raddr2==5'b0) ? 32'b0 : rf[raddr2];
endmodule
我们可以看到这是一个同步写异步读的 Regfile。
进行仿真
由于我们可以看到 testbench 文件中有以下字段。
...
initial
begin
raddr1 = 5'd0;
raddr2 = 5'd0;
waddr = 5'd0;
wdata = 32'd0;
we = 1'd0;
task_phase = 4'd0;
#