Engineering reference

SystemVerilog Design and Verification — Technical Glossary

Use this page when a term, acronym or engineering concept is unfamiliar. Understand the term, then return to the lesson where it is used.

See unfamiliar term→Check definition→Return to lesson
01

Associative array

A sparse collection that stores only written entries, indexed by a key of any type.

02

Class

A user-defined type that bundles properties and methods and is created at run time.

03

Clocking block

A block that defines when a testbench samples and drives signals relative to a clock.

04

Concurrent assertion

An assertion sampled on a clock that checks a temporal property over cycles.

05

Constraint

A Boolean rule that random values must satisfy when randomize() is called.

06

Coverage closure

The process of finding and closing coverage holes until the plan goal is met.

07

Covergroup

A construct that defines coverpoints, bins and crosses for functional coverage.

08

Cross coverage

Coverage of combinations of bins from two or more coverpoints.

09

Deep copy

A copy that also creates new copies of nested objects instead of sharing them.

10

Dynamic array

An unpacked array whose size is set at run time with new[].

11

Enumeration

A user-defined type with named values, declared with enum.

12

Four-state type

A type whose bits can hold 0, 1, x or z, such as logic or integer.

13

Handle

A variable that refers to a class object, or holds null.

14

Implication

A property operator (|-> or |=>) that checks a consequent only after an antecedent matches.

15

Inheritance

Creating a derived class with extends so that it reuses and extends a base class.

16

Interface

A named bundle of signals, modports and clocking blocks passed as a single port.

17

Mailbox

A FIFO channel for passing items between threads, optionally bounded.

18

Modport

A list of interface signals with directions for one user of the interface.

19

Packed array

An array whose dimensions are declared before the name and stored as one contiguous vector.

20

Polymorphism

Using base-class handles to operate on objects of different derived classes.

21

Queue

An ordered, variable-size collection that can be pushed and popped at either end.

22

Scoreboard

A component that compares observed results with predicted results.

23

Semaphore

A set of keys used to control access to a shared resource between threads.

24

Soft constraint

A default constraint that is dropped if it conflicts with a hard constraint.

25

Structure

A user-defined type that groups named fields; a packed struct is also a vector.

26

Transaction

An object describing one operation, such as a bus write, independent of pin timing.

27

Two-state type

A type whose bits hold only 0 or 1, such as bit, int or byte.

28

Unpacked array

An array whose dimensions are declared after the name, holding separate elements.

29

Virtual interface

A handle to an interface instance, used by classes to reach DUT signals.

30

Virtual method

A method whose body is selected at run time by the object type, not the handle type.