← Week 6

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

  1. 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

  2. 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

  1. 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

  2. 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

  1. Create a random transaction class using rand/randc, legal ranges, exclusions, inline constraints and pre/post_randomize hooks. Check every randomize() result.

    Marks: 15

  2. 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

  1. 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