Update testbench, fix off by 1

This commit is contained in:
Byron Lathi
2023-10-18 08:40:00 -07:00
parent e621d4047b
commit 35d4ea968e
2 changed files with 18 additions and 6 deletions

View File

@@ -61,7 +61,14 @@ endtask
int errors; int errors;
int rnd_values [16];
initial begin initial begin
for (int i = 0; i < 16; i++) begin
rnd_values[i] = $urandom();
end
errors = 0; errors = 0;
repeat (5) @(posedge r_clk_cpu); repeat (5) @(posedge r_clk_cpu);
reset = 1; reset = 1;
@@ -73,14 +80,19 @@ initial begin
reset = 0; reset = 0;
repeat (5) @(posedge r_clk_cpu); repeat (5) @(posedge r_clk_cpu);
write_reg(0, 8'haa);
write_reg(1, 8'hbb); for (int i = 0; i < 16; i++) begin
write_reg(2*i, rnd_values[i][7:0]);
write_reg(2*i + 1, rnd_values[i][15:8]);
end
repeat (5) @(posedge r_clk_cpu); repeat (5) @(posedge r_clk_cpu);
assert (u_mapper.mm[0] == 16'hbbaa) else begin for (int i = 0; i < 16; i++) begin
$error("mm[0] expected 0xbbaa got 0x%x", u_mapper.mm[0]); assert (u_mapper.mm[i] == rnd_values[i][15:0]) else begin
errors += 1; $error("mm[%d] expected 0x%x got 0x%x", i, rnd_values[i][15:0], u_mapper.mm[i]);
errors += 1;
end
end end
if (errors != 0) begin if (errors != 0) begin

View File

@@ -28,7 +28,7 @@ always_ff @(negedge i_clk or posedge i_reset) begin
end end
end end
for (int i = 0; i < 31; i++) begin for (int i = 0; i < 32; i++) begin
if (we[i]) begin if (we[i]) begin
mm[i/2][(i%2)*8 +: 8] <= i_data; mm[i/2][(i%2)*8 +: 8] <= i_data;
end end