Altera® AXI4 Bus Functional Model User Guides

ID 838773
Date 5/19/2025
Public
Document Table of Contents

1.2. Altera® AXI4 Memory-Mapped BFM Architecture

The Altera® AXI4 Memory-Mapped Manager and Subordinate BFMs are fully implemented in SystemVerilog using object oriented programming methodology inside an interface.

An AXI4 transaction is the complete set of information exchanged between a manager and a subordinate for communication. For example, the Manager BFM can initiate a write transaction by sending a valid address, valid data, and corresponding control channels that the AXI4 protocol provides. Similarly, a read transaction has its corresponding set of channel information. The Altera® AXI4 BFM models this in the AlteraAxiTransaction class. AlteraAxiTransaction contains all information that the manager and the subordinate require to initiate and complete a transaction.

The Altera® AXI4 BFM APIs are functions and virtual methods of the AlteraAxiTransaction class and the abstract base classes that you can extend to implement concrete BFMs. The APIs are encapsulated in the altera_axi_bfm_pkg package that contains the functions and virtual methods. This architecture decouples the BFM base class from the DUT and supports reusability. You import the base class declared in a common package. The concrete classes are implemented in the interface. This interface is in the same scope that declares relevant bus signals and has direct access to signals without any hierarchical reference.

The APIs create the transaction objects and the methods to consume them and drive the corresponding AXI4 signals. The methods internally implement protocol-compliant behavior that drive the signals for both manager and subordinate agents.

In a testbench, you use the APIs to create protocol-compliant transactions. You use the BFM methods to drive the signals. The AlteraAxiTransaction AXI4 Monitor BFM flags assertion failure when the monitor observes non-compliant behavior.