Week 6 — SystemVerilog Verification Formal Assessment
Duration: 180 minutes · Total: 100 marks
This is a read-only assessment brief, not a timed exam or grading engine.
Interface and clocking discipline — 20 marks
Create an interface for a synchronous FIFO with separate driver and monitor modports and a clocking block. Connect it to the DUT and explain sampling versus driving skews.
Marks: 12
Demonstrate a virtual interface handle in a class-based driver. Identify and correct two race or direction errors in a provided or self-created harness.
Marks: 8
Transaction-based verification environment — 35 marks
Build generator, mailbox, driver, monitor, reference model and scoreboard for the chosen FIFO or timer DUT. Show a full transaction from generation to actual/expected comparison.
Marks: 20
Implement reset, empty, full, boundary and simultaneous-operation tests (where supported by the DUT contract). Inject one controlled mismatch and show that the checker detects it.
Marks: 15
Constrained random stimulus — 25 marks
Create a random transaction class using rand/randc, legal ranges, exclusions, inline constraints and pre/post_randomize hooks. Check every randomize() result.
Marks: 15
Extend constraints with if/implication, dist, solve-before, soft preference and a foreach array rule. Show one expected UNSAT case and explain why it fails.
Marks: 10
Integrated mini-project and regression evidence — 20 marks
Submit a complete FIFO or timer verification environment, a short verification plan, and a ten-seed directed-plus-random regression report. Explain coverage gaps and failures.
Marks: 20