Course hub · All levels

SystemVerilog — Complete Verification Course

A complete SystemVerilog course: language foundations, OOP, constraint randomization, SVA, functional coverage, testbench architecture, advanced integration, and senior interview preparation.

Course goal

This is a full SystemVerilog preparation path for verification engineers and design-aware interviews. It starts at the language core and ends with constraint solver mastery, assertion writing fluency, coverage closure, testbench architecture, and senior-level interview reasoning.

  • Master the testbench-only and synthesizable parts of SystemVerilog with clear mental models.

  • Build class-based verification components from first principles — no methodology magic.

  • Go deep on constraint randomization and SVA: the two most heavily tested interview areas, each with dedicated interview-pattern modules.

  • Design layered, self-checking testbenches and understand how they map onto UVM.


How the course is organized

Each part below is a section hub with topic hubs underneath. Every topic hub opens with an overview and drills into focused sub-lessons with theory, annotated diagrams, complete code examples, and interview-style pitfalls.

diagram
COURSE MAP

  Part 1  Language Foundations      types · arrays · procedural · operators
                                    packages · interfaces & clocking
  Part 2  OOP for Verification      classes · inheritance · class features
                                    virtual interfaces · IPC · patterns
  Part 3  Constraint Randomization  basics · operators · dynamic control
        [INTERVIEW-HEAVY]           arrays · solver · debug · modeling
                                    + interview patterns + interview Q&A
  Part 4  SystemVerilog Assertions  fundamentals · sequences · implication
        [INTERVIEW-HEAVY]           sampled values · protocols · advanced
                                    debug + interview patterns + Q&A
  Part 5  Functional Coverage       covergroups · bins · crosses
                                    options · closure strategy
  Part 6  Testbench Architecture    anatomy · stimulus · monitors/scoreboards
                                    sync · regression · bridge to UVM
  Part 7  Advanced & Integration    DPI-C · bind · macros · plusargs
                                    performance · RTL/TB boundaries
  Part 8  Senior & Interview Prep   debug playbook · review checklist
                                    strategy · Q&A bank · FIFO capstone

Course map

Part 1 · Language Foundations

  1. Data types — 4-state vs 2-state, logic/bit, X/Z propagation, casting

  2. Arrays — packed/unpacked, dynamic, queues, associative, array methods

  3. Procedural code — always_comb/ff/latch, tasks vs functions, blocking vs nonblocking

  4. Operators & expressions — signed math, unique/priority, casez, wildcard equality

  5. Packages & compilation — imports, typedefs, enums, structs, compile order

  6. Interfaces — modports, clocking blocks, parameterized interfaces

Part 2 · OOP for Verification

  1. Classes & handles — objects vs handles, new(), shallow vs deep copy

  2. Inheritance & polymorphism — virtual methods, $cast, abstract classes

  3. Class features — static, local/protected, parameterized classes

  4. Virtual interfaces — the class-to-pins bridge and config patterns

  5. Interprocess communication — mailboxes, events, semaphores, fork/join

  6. OOP patterns — transactions, factories, singletons, callbacks

Part 3 · Constraint Randomization (interview-heavy)

  1. Randomization basics — rand/randc, randomize(), pre/post_randomize

  2. Constraint operators — inside, dist, implication, if-else, solve-before, soft

  3. Dynamic control — rand_mode, constraint_mode, inline with-constraints

  4. Array randomization — foreach, size, sum, unique

  5. Solver deep dive — solution spaces, ordering, randc internals, seeding

  6. Randomization debug — failures, contradictions, reproducibility

  7. Transaction modeling — layered constraints, policy classes, knobs

  8. Interview constraint patterns — the classic write-a-constraint problems

  9. Interview randomization Q&A — deep answers to the standard questions

Part 4 · SystemVerilog Assertions (interview-heavy)

  1. SVA fundamentals — immediate vs concurrent, layers, sampling model

  2. Sequences — delays, repetition, throughout/within/intersect

  3. Implication & properties — |-> vs |=>, vacuity, disable iff

  4. Sampled value functions — $rose, $fell, $stable, $past, $onehot

  5. Protocol assertions — valid/ready, req-ack, FIFO, FSM checks

  6. Advanced SVA — local variables, first_match, multiclock, expect

  7. Assertion debug — vacuous passes, bench bring-up, assertion control

  8. Interview SVA patterns — the classic write-an-assertion problems

  9. Interview SVA Q&A — deep answers to the standard questions

Part 5 · Functional Coverage

  1. Covergroup basics — covergroups, coverpoints, sampling methods

  2. Bins — auto, explicit, transition, illegal, ignore

  3. Cross coverage — crosses, binsof, intersect filtering

  4. Options & methods — per_instance, weights, goals, get_coverage

  5. Coverage closure — plans, merging, holes, exclusions, sign-off

Part 6 · Testbench Architecture

  1. Testbench anatomy — layered architecture, env, program vs module

  2. Stimulus generation — generators, transactions, drivers

  3. Monitors & scoreboards — observation, checking, reference models

  4. Synchronization — events, mailboxes, semaphores, phase control

  5. Self-checking regression — seeds, plusargs, logging, triage

  6. Bridge to UVM — mapping hand-built TB concepts onto UVM

Part 7 · Advanced Language & Integration

  1. DPI-C — imports, exports, context, C reference models

  2. bind & checkers — attaching assertions to RTL without editing it

  3. Macros & compilation units — `define hygiene, include guards

  4. Plusargs & configuration — $test$plusargs, $value$plusargs, files

  5. Performance & memory — simulation speed, TB memory discipline

  6. RTL/TB boundaries — races, timing regions, program blocks

Part 8 · Senior & Interview Prep

  1. Senior debug playbook — systematic failure triage

  2. Code review checklist — what senior reviewers look for

  3. Verification strategy — from spec to coverage closure

  4. Interview Q&A bank — the standard questions with deep answers

  5. Capstone — verify a parameterized FIFO end to end

Full course index

Every section and lesson in this track — expand folders in the sidebar or jump from here.