Nothing Special   »   [go: up one dir, main page]

UVM Meeting 5 25-11-21

Download as pdf or txt
Download as pdf or txt
You are on page 1of 3

UVM – UVM components

A UVM testbench is composed of components extended from the uvm_component base


class. When a uvm_component derived class object is created, it becomes part of the
testbench hierarchy which persist during all the simulation (static object).

uvm_object
Adds reporting infrastructure

uvm_report_object uvm_transaction
Adds static hierarchy, phase Adds sequencer
and configuration support hooks

uvm_component uvm_sequence_item
Adds body
method

uvm_sequence
UVM – UVM components
The uvm_component base class template has a virtual method for each of the UVM
phases and these are to be implemented by the user as required.
A phase level virtual method that is not implemented results in the component
effectively not participating in that phase.

uvm_component class hierarchy


code
function void function void
build_phase connect_phase

task function void Dummy UVM testbench


run_phase final_phase code
UVM – UVM components
Also embedded into the uvm_component base class is support for a configuration table
to store configuration objects. When the uvm_config_db API is used, this static
hierarchy is employed as part of the path mechanism to control which components may
access a given configuration object.
Lookup
Lookup
Monitor
agent Lookup BFM
Monitor uvm_config_db DUT
Config Driver
Initial begin BFM
run_test(); //Starts uvm tb
Sequencer Driver end
hvl_top hdl_top

You might also like