Source code for avl_axi._agent_cfg

# Copyright 2025 Apheleia
#
# Description:
# Apheleia Verification Library Agent Configuration

import avl


[docs] class AgentCfg(avl.Object):
[docs] def __init__(self, name: str, parent: avl.Component) -> None: """ Initialize the avl-axi Agent Configuration :param name: Name of the agent instance :type name: str :param parent: Parent component :type parent: Component """ super().__init__(name, parent) # Agent Attributes self.has_manager = avl.Factory.get_variable(f"{self.get_full_name()}.has_manager", False) """Has Manager Driver""" self.has_subordinate = avl.Factory.get_variable(f"{self.get_full_name()}.has_subordinate", False) """Has Subordinate Driver""" self.has_monitor = avl.Factory.get_variable(f"{self.get_full_name()}.has_monitor", False) """Has Monitor Driver""" self.has_coverage = avl.Factory.get_variable(f"{self.get_full_name()}.has_coverage", False) """Has Functional Coverage""" self.has_bandwidth = avl.Factory.get_variable(f"{self.get_full_name()}.has_bandwidth", False) """Has Bandwidth Monitor""" self.has_trace = avl.Factory.get_variable(f"{self.get_full_name()}.has_trace", False) """Has Trace Generator""" self.subordinate_ranges = avl.Factory.get_variable(f"{self.get_full_name()}.subordinate_ranges", None) """Subordinate memory ranges""" self.narrow_transfer_lane_steering = avl.Factory.get_variable(f"{self.get_full_name()}.narrow_transfer_lane_steering", False) """When True, drivers place wdata/wstrb (and de-shift rdata) on the byte lanes mandated by AXI A3.2.3 / A3.4.1 for narrow transfers (transfers where 1<<awsize is smaller than the data bus). Enable when the agent's bus is wider than the awsize/arsize of the transactions being driven and the DUT depends on spec-compliant byte-lane placement (e.g. a downsizer). Leave False otherwise to preserve legacy behaviour."""
__all__ = ["AgentCfg"]