Verification #7 · 2026-09-30 · Processes · Medium · about 15 min
The timeout that outlives its wait
Tests talk to the DUT through ack_if in ack_if.sv. After raising req, a test calls bus.wait_ack(limit, ok), which waits for ack with a timeout:
- If
ackis 1 at one of the nextlimitrising edges,ok = 1and the task returns at that edge. - Otherwise it counts one timeout in
timeouts, setsok = 0and returns at thelimit-th edge. - Tests call it from processes that have their own background threads, started with
fork ... join_none. Those must keep running.
Every request in the current testbench is acked in time, yet timeouts keeps growing, with TIMEOUT messages in the middle of later requests. Fix wait_ack.
Write and run your answer in the browser. The hidden tests check it, and it’s free.