Course map
- 6 lessons
Starts with Who This Course Is For
- 28 lessons
Starts with 4-State vs 2-State Types
- 30 lessons
Starts with Class Declaration & Objects
- 36 lessons
Starts with rand vs randc
- 40 lessons
Starts with Immediate vs Concurrent Assertions
- 22 lessons
Starts with Covergroup Anatomy
- 23 lessons
Starts with The Layered Testbench
- 25 lessons
Starts with DPI Imports
- 21 lessons
Starts with Failure Triage Method
- 28 lessons
Starts with Policy Classes
About this course
This course takes SystemVerilog from language foundations to senior verification interviews and principal-level verification. It covers object-oriented testbenches, constraint randomization, assertions, functional coverage, and coverage-driven sign-off.
New to the course? Begin with Start Here: who the course is for, how to run the examples, the words you will meet, and the PacketFIFO project you build along the way.
The nine parts
Part | Topics | Lessons | Content |
|---|---|---|---|
1 | 5 | Prerequisites and paths, running examples, a glossary, the testbench picture, and the course project. | |
6 | 28 | Types, arrays, procedural code, operators, packages, and interfaces. | |
6 | 30 | Classes, inheritance, virtual interfaces, IPC, and testbench patterns. | |
7 | 36 | rand, constraint operators, solver control, arrays, debug, and drills. | |
8 | 40 | Sequences, properties, sampled values, protocols, debug, and drills. | |
5 | 22 | Covergroups, bins, crosses, options, and closure strategy. | |
5 | 23 | Layering, stimulus, monitors, scoreboards, regression, and UVM bridge. | |
6 | 25 | DPI-C, bind, macros, plusargs, performance, and RTL/TB boundaries. | |
5 | 21 | Debug playbook, review checklists, strategy, Q&A bank, FIFO capstone. | |
6 | 28 | Reusable architecture, out-of-order checking, assertion depth, coverage models, an out-of-order capstone, and judgment. |
How this was checked
Runnable listings carry a self-checking testbench with a PASS line and are run with Verilator 5.048 or Icarus Verilog 13.
Listings the free tools cannot run say what is missing, and are never shown with invented output.
Check yourself You already write directed Verilog testbenches. Which part should you start with?
Part 2 (OOP), after a quick look at Start Here. Who This Course Is For lists three paths.