Verification #1 · 2026-09-24 · UVM · Medium · about 15 min
The driver that ignores ready
bus_driver sends each byte from its sequencer over a valid/ready bus (bus.sv). A byte transfers on a rising clock edge where valid and ready are both 1, and once valid is 1 it must stay 1, with data unchanged, until that happens.
In a smoke test where the sink is always ready, every byte arrives. As soon as the sink stalls, bytes go missing and the monitor reports handshake errors.
Fix run_phase in driver.sv so every byte arrives exactly once, in order, however often the sink stalls.
Run uses tb.sv: 24 bytes into a sink that's ready 40% of the time. Check the Log for what crossed the bus, and the Waveform for valid, ready and data. Submit runs three hidden tests.
Write and run your answer in the browser. The hidden tests check it, and it’s free.