5.5 Creating an AMBA-PV ACE slave

This section describes how to create an AMBA-PV ACE slave.

Procedure

  1. Derive the slave class from class amba_pv_slave_base (in addition to sc_module).
  2. Instantiate one slave socket of class amba_pv_ace_slave_socket for each connection to an AMBA® ACE bus. Specify a distinct identifier for each socket.
  3. Implement the methods b_transport(), get_direct_mem_ptr(), and transport_dbg().
    A slave does not need to implement any other method than b_transport() if it does not support DMI or debug transactions.
  4. In the implementations of the b_transport() method obtain a pointer to the amba_pv_extension object using get_extension(). Inspect and act upon the attributes in the extension object. The transaction response should be set in the extension object. Rather than implementing the requested functionality, a slave may choose to return an AMBA_PV_SLVERR error response. Setting an AMBA_PV_OKAY response indicates the success of the transfer.
  5. In the implementation of get_direct_mem_ptr(), either return false, or inspect and act on the parameters, and on the attributes of the AMBA-PV extension, and set the return value and all the attributes of the DMI descriptor (class tlm_dmi) appropriately.
  6. In the implementation of transport_dbg(), either return 0, or obtain a pointer to the AMBA-PV extension. Inspect and act on the parameters, and on the attributes of the AMBA-PV extension. Return the number of bytes read/written.
Non-ConfidentialPDF file icon PDF version100962_0200_03_en
Copyright © 2014–2018 Arm Limited (or its affiliates). All rights reserved.