HDLForge structured practice path

Design Verification Practice Problems

This path targets design-verification interviews. It combines SystemVerilog language semantics, temporal assertions and UVM transaction flow rather than treating them as isolated topics.

How to use this practice path

Stage 1
Start with SystemVerilog constructs and signal ownership.
Stage 2
Add assertions for reset, handshakes and temporal requirements.
Stage 3
Trace transactions through driver, monitor and scoreboard paths.
Stage 4
For each problem, identify stimulus, checking and coverage separately.

Problems to solve

01 · SystemVerilog · Easy
always_comb vs always_ff
Identify the correct procedural blocks for combinational and sequential logic.
02 · SVA · Easy
Reset Clears State
Verify that a synchronous reset clears a counter on the next clock edge.
03 · SystemVerilog · Easy
Clock and Reset Generator
Create reusable testbench clock and reset stimulus.
04 · SystemVerilog · Easy
Reusable Stimulus Task
Encapsulate repeated stimulus in a SystemVerilog task.
05 · SystemVerilog · Easy
Self-Checking Adder Testbench
Make a simple combinational testbench report mismatches automatically.
06 · SystemVerilog · Easy
Simulation Timeout Watchdog
Prevent a hung test from running forever.
07 · SystemVerilog · Easy
Monitor-Only Interface Modport
Expose a read-only monitor view of an interface.
08 · SVA · Easy
One-Hot Grant Assertion
Assert that an arbiter never grants more than one requester.
09 · SVA · Easy
No FIFO Overflow Assertion
Assert that a write is never attempted while the FIFO is full.
10 · SVA · Easy
No FIFO Underflow Assertion
Assert that a read is never attempted while the FIFO is empty.
11 · SVA · Easy
Mutual Exclusion Assertion
Assert that read_active and write_active are never high together.
12 · SystemVerilog · Easy
Constrain Address Range
Constrain a randomized address to a legal MMIO window.
13 · SystemVerilog · Easy
Basic Coverpoint Bins
Measure whether low, mid and high values have been observed.
14 · SystemVerilog · Easy
Ignore Uninteresting Coverage Range
Exclude irrelevant values from coverage closure.
15 · UVM · Easy
UVM Test Objections
Control UVM test lifetime with phase objections.
16 · SystemVerilog · Medium
SystemVerilog Interface
Create an interface for a simple ready/valid transaction channel.
17 · SVA · Medium
Valid Must Eventually Handshake
Write an assertion for a ready/valid interface.
18 · UVM · Medium
Build a UVM Driver
Implement the core run phase of a UVM driver for a simple transaction.
19 · SystemVerilog · Medium
Queue-Based Expected-Value Checker
Use a queue to align expected outputs with a variable-latency DUT.
20 · SystemVerilog · Medium
Randomized RTL Stimulus Loop
Generate repeatable pseudo-random input combinations.

Interview routine

For each problem, first restate the requirement and assumptions. Then write the RTL, assertion, verification component or architecture derivation without looking at a solution. Before running anything, list at least three edge cases. Finish by explaining how you would verify the result and what trade-offs you made.

Keep going

Use the interactive HDLForge problem workspace, browse company-style tracks, or choose a hardware project that uses the same skills.

Related implementation guides