SystemVerilog reference

A practitioner's guide to SystemVerilog for verification.

Three parts covering the language features that matter for testbenches — from data types and procedural statements, through randomization and OOP, to threads and DPI. Each part has practice questions.

Overview

These notes cover the SystemVerilog features that matter for verification work — from the logic type through the covergroup, with stops at randomization, inheritance, concurrent threads, and the Direct Programming Interface.

The material is organized into three parts. Each part ends with a 20-question exam to check understanding.

Reference sections

How to use these notes

These aren't a replacement for the full language spec or textbooks. They're practitioner's notes — the things that come up in real verification work, explained the way a senior engineer would explain them at a whiteboard.

If you're already familiar with SystemVerilog, skim Part I for the idioms and jump to the exams. If you're newer, read the parts in order and take each exam before moving on.

Related

When you're ready to build a testbench, the UVM generator will scaffold a full project for you — agent, sequences, environment, scoreboard, tests — based on an interface you describe.