Parking lot with an Automobile and Pickup, plus class variables

Class Variables and $cast

Introduction My previous post showed how SystemVerilog class variables can refer to base and derived objects. This post shows you…

Base and derived classes and their handles

Class Variables and Assignments in SystemVerilog

Introduction Good OOP style says you should start your project with a common base class (or several). When you want…

Runtime checks with the $cast() method

Introduction Verilog was always known for its lack of type checking, treating everything as just bits strung together into vectors…

Verification Class Categories

Introduction What can you describe with Object-Oriented Programming? When I learned OOP, we had cute classes like animals, cars, and…

SystemVerilog Class Variables and Objects

Introduction How can you visualize the relationship between classes and objects in SystemVerilog? This is the first post in a…

The UVM Config DB and Scope

Introduction With any large software project, you need to share information and control across widely separated blocks. In the bad…

UVM Transaction Coding Style

How to write a UVM transaction class? There has been a split in UVM – how to create a sequence…

Extend transactions from uvm_sequence_item

Why are UVM transactions built with uvm_sequence_item?

What is a UVM transaction? A transaction in UVM is a class with properties for the signals, such as address…

What Does Importing a SystemVerilog Package Mean?

In my last webinar I explained what happens when you import a package in SystemVerilog. There were still many questions,…