UVM Quick Reference Guide: Author: Putta Satish
UVM Quick Reference Guide: Author: Putta Satish
UVM Quick Reference Guide: Author: Putta Satish
www.maven-silicon.com
VLSI Training Services
Setting standards in VLSI Design
Table of Contents
1. UVM TB Architecture
2. UVM Factory
2.1 Introduction
Factory is a class that manufactures (creates) UVM components and objects during
runtime and it has the ability to modify the types and number of objects that create the testbench
hierarchy.
2.2.1 `uvm_component_utils
Macro for registering a component.
Syntax :
Example :
2.2.2 `uvm_object_utils
Macro for registering an object.
Syntax :
Example :
2.2.3 `uvm_component_param_utils
Macro for registering a parameterized component.
Syntax :
Example :
2.2.4 `uvm_object_param_utils
Macro for registering a parameterized object.
Syntax :
Example :
2.4.1 set_type_override_by_type
Syntax :
Example :
2.4.2 set_inst_override_by_type
Syntax :
Example :
Syntax :
Example :
3. Stimulus Modelling
3.1 Introduction - Stimulus
It represents the main transaction input to the DUT based on the protocol of the Design.
3.1.1 Steps to define stimulus
✓ Derive a data item class from uvm_sequence_item base class
✓ Register with the factory using `uvm_object_utils macro
✓ Define a constructor for the data item
✓ Add control fields for the items such as constraints
✓ UVM field macros to enable printing, copying, comparing, etc
4. UVM Phases
4.1 Introduction
Phases help in synchronizing different events between Multiple Agents. The “run_test”
is the method to initiate execution of all the phases.
4.2.2 connect_phase
Example :
4.2.3 end_of_elaboration_phase
Example :
4.2.4 start_of_simulation_phase
Example :
4.3 run_phase
Example :
4.4.2 check_phase
checks if the DUT behaved correctly and identifies the errors that may have
occurred during the execution and it will be executed in Bottom up manner
4.4.3 report_phase
displays the result of the simulation and it will be executed in Bottom up
manner
4.4.4 final_phase
completes any other outstanding actions and it will be executed in top-down
manner.
5. Reporting Mechanism
5.1 Introduction
Helps in debugging an complex verification environment using different severities like
info, warning, error and fatal. Useful for displaying simulation results.
Example :
5.4.1 +UVM_VERBOSITY
To set the required level of verbosity as the default verbosity during the
simulation.
Example :
5.4.2 +UVM_REPORT_DISABLE_FILE_LINE
Disables file names and line number while reporting
Example :
Example :
Example :
Example :
Example :
7. UVM Configuration
7.1 Introduction
Helps us to build a reusable testbench. Top Level component has the ability to
configure the structure of lower level components.
7.2 Example
In the below example, agent is being configured to be an active type.
7.2.1 Configuration Object
8. UVM Sequences
8.1 Introduction
It generates the stimulus based on constraints and sends the stimulus to driver through
a sequencer. They can be nested and be overridden with factory.
10.UVM Callbacks
10.1 Introduction
Callback mechanism will help us for altering the behaviour of a transactor externally,
without modifying its existing implementation.
10.3.3 Step 3: Definition of extended driver callback class with callback methods
11.UVM Events
11.1 Introduction
Events help us to achieve the synchronization between various TB components.
12.2 TB Architecture
12.3 Interface
12.9 Environment
12.10 Sequence
12.13 Package