Verification #33 · 2026-10-26 · Delayed checks · Medium · about 10 min

The assertion that compares with the wrong request

A block answers each request exactly 3 cycles later:

  1. rsp is high in the 3rd cycle after any cycle where req is high.
  2. rsp_data in that cycle equals the req_data that was on the bus in the request cycle. req_data only means something while req is high, and requests may come in consecutive cycles.

Write a concurrent assertion in checker.sv that enforces this and is disabled while rst_n is low. Use $error in the failure branch, or leave the branch out.

The stimulus in tb.sv has two correct request/response pairs, but the starter assertion fires on them. Fix it so it stays quiet when you press Run. Grading uses five hidden scenarios.

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