This section summarizes the AMBA-PV classes and interfaces.
- For the full list of classes and interfaces, see the AMBA-PV header files. The top-level file is amba_pv.h which contains includes for the other header files.
- All AMBA-PV classes and interfaces use the amba_pv namespace.
AMBA-PV defines these classes and interfaces:
- This supports additional user-defined attributes.
- This is the base class for AMBA-PV ACE master modules.
- This is the socket to be instantiated on the master side for full ACE modeling.
- This is the socket to be instantiated on the slave side for full ACE modeling.
- This is a tagged variant of the tlm_bw_transport_if interface, to be implemented by AMBA-PV ACE master modules.
- This is a simple combination of the interfaces amba_pv_bw_snoop_if and amba_pv_bw_transport_if.
- This is a tagged variant of the tlm_bw_transport_if interface, to be implemented by AMBA-PV master modules.
- This supports additional control information that is part of the AMBA buses.
- This provides additional transaction information for DVM operations.
- This is the AMBA-PV extension type.
- This is a tagged variant of the tlm_fw_transport_if interface, to be implemented by AMBA-PV slave modules.
- This is the user-layer transaction interface.
- This is the base class for AMBA-PV master modules.
- This is the socket to be instantiated on the master side. This socket is also automatically instantiated on the slave side when an amba_pv_ace_slave_socket<> is instantiated.
- This is the base class for AMBA-PV slave modules.
- This is the socket to be instantiated on the slave side.
- This socket is automatically instantiated on the master side when an amba_pv_ace_master_socket<> is instantiated.
The templated AMBA-PV classes and interfaces have a BUSWIDTH parameter.
An AMBA-PV bus master invokes methods on its amba_pv_master_socket to generate burst read and write requests on the AMBA-PV bus and check the returned responses.
An AMBA-PV bus slave implements read() and write() methods to process requests and return the associated responses.
The TLM 2.0 b_transport() blocking interface is the basic mechanism that implements this master-slave interaction. In addition, AMBA-PV uses the extension mechanism to extend TLM 2.0 and provide maximum interoperability.