[source]

Class uvm_pkg::uvm_agent

uvm_pkg::uvm_agent + is_active : uvm_active_passive_enum + type_name : string + build_phase(): void + get_is_active(): uvm_active_passive_enum + get_type_name(): string dv_lib_pkg::dv_base_agent <CFG_T, DRIVER_T, HOST_DRIVER_T, DEVICE_DRIVER_T, SEQUENCER_T, MONITOR_T, COV_T> irq_agent_pkg::irq_request_agent ibex_cosim_agent_pkg::ibex_cosim_agent ibex_mem_intf_agent_pkg::ibex_mem_intf_response_agent ibex_mem_intf_agent_pkg::ibex_mem_intf_request_agent

Inheritance Diagram of uvm_agent

Copyright 2007-2011 Mentor Graphics Corporation Copyright 2007-2011 Cadence Design Systems, Inc. Copyright 2010 Synopsys, Inc. All Rights Reserved Worldwide

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

CLASS

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.

Variables

Name

Type

Description

is_active

uvm_active_passive_enum

type_name

string

Constructors

new(string name, uvm_component parent)

Function

new

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:

 uvm_config_int::set(this, ", "is_active", UVM_ACTIVE);
Parameters:

Functions

build_phase(uvm_phase phase)
Parameters:

phase (uvm_phase)

get_type_name()
get_is_active()

Function

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.

Return type:

uvm_active_passive_enum