uvm_agent

The uvm_agent virtual class should be used as the base class for the user- defined agents.  Deriving from uvm_agent will allow you to distinguish agents from other component types also using its inheritance.  Such agents will automatically inherit features that may be added to uvm_agent in the future.

While an agent’s build function, inherited from uvm_component, can be implemented to define any agent topology, an agent typically contains three subcomponents: a driver, sequencer, and monitor.  If the agent is active, subtypes should contain all three subcomponents.  If the agent is passive, subtypes should contain only the monitor.

Summary
uvm_agent
The uvm_agent virtual class should be used as the base class for the user- defined agents.
Class Hierarchy
Class Declaration
virtual class uvm_agent extends uvm_component
Methods
newCreates and initializes an instance of this class using the normal constructor arguments for uvm_component: name is the name of the instance, and parent is the handle to the hierarchical parent, if any.
get_is_activeReturns UVM_ACTIVE is the agent is acting as an active agent and UVM_PASSIVE if it is acting as a passive agent.

new

function new ( string  name,
uvm_component  parent )

Creates and initializes an instance of this class using the normal constructor arguments for uvm_component: name is the name of the instance, and parent is the handle to the hierarchical parent, if any.

The int configuration parameter is_active is used to identify whether this agent should be acting in active or passive mode.  This parameter can be set by doing:

set_config_int("<path_to_agent>", "is_active", UVM_ACTIVE);

get_is_active

virtual function uvm_active_passive_enum get_is_active()

Returns UVM_ACTIVE is the agent is acting as an active agent and UVM_PASSIVE if it is acting as a passive agent.  The default implementation is to just return the is_active flag, but the component developer may override this behavior if a more complex algorithm is needed to determine the active/passive nature of the agent.

The uvm_void class is the base class for all UVM classes.
virtual class uvm_object extends uvm_void
The uvm_object class is the base class for all UVM data and hierarchical classes.
class uvm_report_object extends uvm_object
The uvm_report_object provides an interface to the UVM reporting facility.
virtual class uvm_component extends uvm_report_object
The uvm_component class is the root base class for UVM components.
virtual class uvm_agent extends uvm_component
The uvm_agent virtual class should be used as the base class for the user- defined agents.
function new ( string  name,
uvm_component  parent )
Creates and initializes an instance of this class using the normal constructor arguments for uvm_component: name is the name of the instance, and parent is the handle to the hierarchical parent, if any.
virtual function uvm_active_passive_enum get_is_active()
Returns UVM_ACTIVE is the agent is acting as an active agent and UVM_PASSIVE if it is acting as a passive agent.