History
In December 2009, a technical subcommittee ofFactory
ASequencer
The sequencer is responsible for three main functions: * Put the DUV (Design Under Verification) and the verification environment into an initialization state * Configuring the verification environment and DUV * The entire DUV scenario generationInitialization
In this stage the DUT (Device Under Test) and the environment it is in should be set to the conditions desired before the simulation. Likely, this includes: * Loading memory, with any type of needed initial conditions * Pin settings on the DUT, such as power and high impedance * Register settings that can not be altered during simulation such as mode bits or if part of the environment reg * Verification component settings that can not be altered during simulationScoreboard
Description
A scoreboard can be implemented in various ways. Generally speaking, a scoreboard takes the inputs to and outputs from the DUT, determines what the input-output relationship should be, and judges whether the DUT adheres to the specification. This input-output relationship is often specified by a model, called a predictor.https://www.accellera.org/images/downloads/standards/uvm/uvm_users_guide_1.2.pdf The predictor may be implemented in a higher-level programming language, like SystemC.Implementation Details
UVM scoreboard classes are implemented as subclasses of the uvm_scoreboard class, which itself is a subclass of uvm_component. uvm_scoreboard is a blank slate for implementing a scoreboard. It only contains one class method, namely the "new" constructor method. The rest of the implementation is user-defined.https://www.accellera.org/images/downloads/standards/uvm/UVM_Class_Reference_Manual_1.2.pdfAgent
Description
In modern VLSI, a DUT may have multiple interfaces. Each of these interfaces may have different UVM objects associated with them. For instance, if the DUT is the full-chip, there may be separate interfaces for PCI, Ethernet, and other communication standards. The scoreboard and monitor for a PCI interface will be different from the ones for the Ethernet interface. The various UVM objects can be organized as members of a wrapper class known as an agent. Passive agents will only analyze port values of the interface and should contain a monitor member. Active agents will drive ports and should contain a driver member, perhaps in addition to a monitor member.Implementation Details
UVM agent classes are implemented as subclasses of the uvm_agent class, which itself is a subclass of uvm_component. Much like uvm_scoreboard, uvm_agent is lightweight in terms of class methods. Its only class methods are the "new" constructor and the "get_is_active" method. If the agent is being used to drive ports, get_is_active returns UVM_ACTIVE. Otherwise, get_is_active returns UVM_PASSIVE.Driver
Description
Sequence items for a test are described abstractly. For example, if the DUT is a register file, it may have ports for a read address and a write address. The sequence item object may have member variables for the read address and the write address. However, these values need to eventually become bits at the input pins to the DUT. There may even be an exotic encoding used when providing the stimulus to the DUT that should be abstracted from the rest of the agent. The driver's responsibility is to take these sequence items and provide the proper stimulus to the DUT's ports.Implementation Details
UVM driver classes are implemented as subclasses of the uvm_driver class, which itself is a subclass of uvm_component.Definitions
* Agent - A container that emulates and verifies DUT devices * Blocking - An interface that blocks tasks from other interfaces until it completes * DUT - Device under test, what you are actually testing * DUV - Device Under Verification * Component - A portion of verification intellectual property that has interfaces and functions. * Transactor - see component * Verification Environment Configuration - those settings in the DUT and environment that are alterable while the simulation is running * VIP - verification intellectual propertyUVM Macros
UVM allows the use of MacrosReferences
{{ReflistExternal links