Verification #35 · 2026-10-28 · Memory models · Easy · about 10 min

The scoreboard that writes whole words

bytemem is a 16-word memory of 32-bit words with byte strobes. At a rising edge with we = 1, byte b of the word at addr (bits 8b+7:8b) is written from wdata if wstrb[b] is 1, and the other bytes keep their value. rdata always shows the word at addr. The memory starts out all zeros.

scoreboard in scoreboard.sv keeps its own copy of the memory. At every rising edge it counts one cycle in checked, and also in errors if rdata isn't the word its copy holds at addr.

The DUT is correct, but the scoreboard reports mismatches. Fix scoreboard.sv. Grading uses three hidden checks.

Write and run your answer in the browser. The hidden tests check it, and it’s free.