Getting Organized with SystemVerilog Arrays

Getting Organized with SystemVerilog Arrays

SystemVerilog has many ways to store your data. Vectors, arrays, structures, classes, and probably several more ways that I don’t…

UVM Configuration DB Guidelines

UVM Configuration DB Guidelines

Introduction My previous blog posts were on static and parameterized classes to get you ready for the big game –…

Asking better questions on the Verification Academy Forums with EDAPlayground

Asking better questions on the Verification Academy Forums with EDAPlayground

The forums on the Verification Academy have been around for about a decade (even longer if you count its origins…

SystemVerilog Static Methods

SystemVerilog Static Methods

Introduction In my last post, you learned how to create a class with a static property. This variable acts like…

SystemVerilog Classes with Static Properties

SystemVerilog Classes with Static Properties

Introduction One of the advantages of creating your testbenches with Object Oriented Programming, as opposed to traditional procedural programming, is…

SystemVerilog Parameterized Classes

SystemVerilog Parameterized Classes

SystemVerilog allows you to create modules and classes that are parameterized. This makes them more flexible, and able to work…

Tips for new UVM users

Tips for new UVM users

Or: What I forgot in class When I first learned UVM, there were many things that baffled me. What was…

How do you spell UVM? Opportunities in professional development.

How do you spell UVM? Opportunities in professional development.

A few months ago I had the honor of being invited to lecture a graduate-level course on functional verification. After…

A Little Verilog Knowledge Goes A Long Way in Understanding How SystemVerilog Constraints Work

A Little Verilog Knowledge Goes A Long Way in Understanding How SystemVerilog Constraints Work

In its simplest form, a constraint is nothing more than a Boolean expression with random variables where the solver is…