UVM Components

UVM Components are key building blocks of a UVM environment. They form the architecture of a UVM testbench, each with distinct roles. They follow the principles of object-oriented programming, offering modularity, encapsulation, and reusability. Let's delve deeper into each of the main UVM components.

Sequencer

The Sequencer is responsible for generating and randomizing the sequences of transactions, which provide stimulus to the Design Under Test (DUT). It's an essential part of an active agent and orchestrates the actions of the DUT.

Driver

The Driver acts as an interface between the Sequencer and the DUT. It translates high-level transaction objects into pin-level signals, providing stimuli to the DUT according to the sequences it receives from the Sequencer.

Monitor

The Monitor is a passive entity that watches the activity on the DUT interface, capturing the pin-level activities and translating them back into transaction-level data. Monitors are crucial in both active and passive agents. They help in collecting coverage and checking responses without affecting the operation of the DUT.

Agent

An Agent encapsulates the Sequencer, Driver, and Monitor associated with a specific interface on the DUT. It may also contain additional components like the coverage collector and checker. Agents can operate in active mode, where they drive sequences to the DUT, or in passive mode, where they merely monitor activities on the interface.

Environment

The Environment is a container for all agents in the testbench. It coordinates the activities of various agents and may contain additional components like a scoreboard for end-to-end checking. The Environment's role is to build, connect, and run all the agents and components.

Test

The Test is the top-level component that controls the overall test execution. It builds and configures the Environment and may apply specific test configurations to the testbench.

Scoreboard

The Scoreboard is used for end-to-end data checking. It compares the expected output with the actual output of the DUT to verify the correctness of the DUT's functionality.

Configuration Object

The Configuration Object stores configuration information for components in the testbench. During the build phase, the configuration information is used to configure the components as required.

In the following sections, we'll dive deeper into the inner workings of UVM, including the UVM factory, UVM phases, and UVM transactions.

Last updated

Logo

Copyright Verification Studio 2023