SystemVerilog Tutorial (Beginner → Advanced)
LEVEL 0 — Introduction to SystemVerilog
What is SystemVerilog?
SystemVerilog = Verilog + Advanced RTL features + Verification features.
Used for:
-
RTL Design
-
Functional Verification
-
UVM Testbench development
Two Big Parts
-
Design (synthesizable)
-
Verification (non-synthesizable + OOP)
LEVEL 1 — Basic SystemVerilog (Beginner)
1. Basic Data Types
Logic type
Used instead of reg and wire.
2. Modules
3. Procedural Blocks
-
always_ff→ flip-flops -
always_comb→ combinational logic -
always_latch→ latches
Example:
4. Operators
-
Arithmetic:
+ - * / % -
Logical:
&& || ! -
Bitwise:
& | ^ ~ -
Reduction:
& | ^
LEVEL 2 — Intermediate SystemVerilog
1. Arrays
Packed Array
Unpacked Array
Dynamic Array
Queues
2. Structures & Unions
3. Enums
4. Interfaces
Used to bundle signals.
5. Modports
LEVEL 3 — SystemVerilog for RTL Design
1. FSM (Finite State Machines)
2. SVA (Assertions) for Designers
Immediate Assertion
Concurrent Assertion
LEVEL 4 — SystemVerilog OOP (Verification)
1. Class Basics
2. Inheritance & Polymorphism
3. Constructors
4. Randomization & Constraints
5. Mailboxes / Semaphores
LEVEL 5 — Functional Coverage
Covergroup
LEVEL 6 — Building a Verification Testbench
Components:
-
Generator / Sequencer
-
Driver
-
Monitor
-
Scoreboard
-
Coverage collector
LEVEL 7 — UVM (Advanced)
Key UVM Components
-
uvm_sequence_item -
uvm_driver -
uvm_monitor -
uvm_agent -
uvm_env -
uvm_test
Example Sequence Item:
LEVEL 8 — Advanced Topics
1. Virtual Interfaces
2. Clocking Blocks
3. DPI (Direct Programming Interface)
-
Connects SystemVerilog ↔ C/C++
LEVEL 9 — Practice Projects
RTL Projects
-
ALU in SystemVerilog
-
FIFO (sync/async)
-
UART design
-
AXI-lite slave
Verification Projects
-
Scoreboard-based testbench
-
Constrained random testbench for FIFO
-
UVM-based driver + monitor + sequence
-
AXI monitor + coverage model
LEVEL 10 — SystemVerilog Interview Preparation
RTL questions
Verification questions
UVM questions
Coding questions with answers
