Functional Verification — Prerequisites
What to Know Before Starting This Guide
This guide builds a self-checking testbench for the exact seq_detector_101 module RTL Design & Computer Architecture already built — the prerequisites are that exact module and toolchain, not a new design or a new simulator.
Required (Must Have)
1. RTL Design & Computer Architecture, Completed
seq_detector_101 Mealy FSM — Overview's testbench instantiates this exact module, unmodified, and reuses its exact input stream and expected output sequence rather than inventing a new exampleiverilog/vvp — this guide's Installation runs a full self-checking testbench through that same toolchain2. HDL — Verilog & VHDL, Completed
initial blocks, $display, and simulation-only constructs (#10 delays) — Overview's testbench uses all of these, and Interview's own material (referenced from HDL) already distinguishes synthesizable RTL from simulation-only testbench code3. Comfort With the Idea of "Comparing Actual Output Against a Known-Correct Expected Value"
Nice to Have (Speeds Up Learning)
Prior Exposure to Automated Testing in Software
If you've written a unit test in any programming language (asserting an actual result equals an expected result), the self-checking testbench pattern here is the exact same idea applied to hardware simulation — prior exposure speeds up the conceptual leap, though it isn't required.
What You Do NOT Need
Time Estimate
If you have the prerequisites above:
Start Here
Go to the Installation section to actually compile and run Overview's self-checking testbench — against both the correct design and a deliberately broken one — rather than only reading the expected results.

