APB UVM Agent  0.0.1
Public Member Functions | Public Attributes | List of all members
apb_agent Class Reference

Implements the UVC Agent component for Amba Peripheral Bus (APB). More...

+ Inheritance diagram for apb_agent:
+ Collaboration diagram for apb_agent:

Public Member Functions

 uvm_component_utils (apb_agent) apb_agent_config m_cfg
 Agent configuration. More...
 
 new (string name="apb_agent", uvm_component parent=null)
 Implements the default UVM component constructor. More...
 
void build_phase (uvm_phase phase)
 Builds individual components based on configured agent's settings. More...
 
void connect_phase (uvm_phase phase)
 Connects all the components that have been created suring the build phase. More...
 

Public Attributes

uvm_analysis_port< apb_seq_itemap
 Analysis port exported from the agent's monitor component. More...
 
apb_monitor m_monitor
 An instance of the APB monitor. More...
 
apb_sequencer m_sequencer
 An instance of the APB sequencer. It is present only in the active mode. More...
 
apb_driver m_driver
 An instance of the APB driver. It is present only in the active mode. More...
 
apb_coverage_monitor m_fcov_monitor
 An instance collecting functional coverage. More...
 

Detailed Description

Implements the UVC Agent component for Amba Peripheral Bus (APB).

The implementation comes from the Verification Cookbook at the Verification Academy site (https://verificationacademy.com/). It follows the conventional UVC agent structure.

The agent consists of the following parts: Driver, monitor, sequencer and a coverage collection class. The agent is configured through a specific configuration object. The agent exports its monitor's analysis port.

Definition at line 31 of file apb_agent.svh.

Member Function Documentation

◆ build_phase()

void apb_agent::build_phase ( uvm_phase  phase)

Builds individual components based on configured agent's settings.

Parameters
phaseReference to the build phase instance.

Definition at line 98 of file apb_agent.svh.

References m_driver, m_fcov_monitor, m_monitor, and m_sequencer.

◆ connect_phase()

void apb_agent::connect_phase ( uvm_phase  phase)

Connects all the components that have been created suring the build phase.

Parameters
phaseReference to the connect phase instance.

Definition at line 114 of file apb_agent.svh.

References ap, apb_monitor::ap, apb_monitor::APB, apb_monitor::apb_index, m_driver, m_fcov_monitor, m_monitor, and m_sequencer.

◆ new()

apb_agent::new ( string  name = "apb_agent",
uvm_component  parent = null 
)

Implements the default UVM component constructor.

Parameters
nameName of the agent component. This name will be associated with the agent instance and may be used for looking up the instance in the UVM Config DB.
parentReference to a parent component, which the agent instance will be a part of.

Definition at line 94 of file apb_agent.svh.

◆ uvm_component_utils()

apb_agent::uvm_component_utils ( apb_agent  )

Agent configuration.

It will be obtained from the UVM Configuration DB during the build phase, under the keyword apb_agent_config.

Member Data Documentation

◆ ap

uvm_analysis_port<apb_seq_item> apb_agent::ap

Analysis port exported from the agent's monitor component.

Definition at line 47 of file apb_agent.svh.

Referenced by connect_phase().

◆ m_driver

apb_driver apb_agent::m_driver

An instance of the APB driver. It is present only in the active mode.

Definition at line 54 of file apb_agent.svh.

Referenced by build_phase(), and connect_phase().

◆ m_fcov_monitor

apb_coverage_monitor apb_agent::m_fcov_monitor

An instance collecting functional coverage.

It is present only if the agent was configured with enabled coverage collection.

Definition at line 57 of file apb_agent.svh.

Referenced by build_phase(), and connect_phase().

◆ m_monitor

apb_monitor apb_agent::m_monitor

An instance of the APB monitor.

This component is always present (i.e. even in the passive mode).

Definition at line 50 of file apb_agent.svh.

Referenced by build_phase(), and connect_phase().

◆ m_sequencer

apb_sequencer apb_agent::m_sequencer

An instance of the APB sequencer. It is present only in the active mode.

Definition at line 52 of file apb_agent.svh.

Referenced by build_phase(), and connect_phase().


The documentation for this class was generated from the following file: