You copied the Doc URL to your clipboard.

User and transport layers

The AMBA-PV user and transport layers manage interactions between the master and slave.

Forward calls from master to slave

These calls go from the user layer through the transport layer and back to the user layer.

Figure 3-11 Master to slave calls


The amba_pv_if<> interface is implemented by the master socket. Class amba_pv_slave_base<> inherits from this interface. The interface defines the following member functions:

  • read().
  • read_burst().
  • write().
  • write_burst().
  • get_direct_mem_ptr().
  • debug_read().
  • debug_write().

The amba_pv_fw_transport_if interface is an AMBA-PV core interface. Class amba_pv_slave_base<> also inherits from this interface. The interface defines the following member functions:

  • b_transport().
  • get_direct_mem_ptr().
  • transport_dbg().

Backward calls from slave to master

These calls go from the user layer through the transport layer and back to the user layer.

Figure 3-12 Slave to master calls


The amba_pv_bw_transport_if interface is an AMBA-PV core interface. It defines the invalidate_direct_mem_ptr() member function to invalidate pointers that were previously established for a DMI region in the slave and features tagging through its socket identification parameter.

Forward and backward calls with ACE sockets

This section describes how ACE sockets work.

The forward calls from ACE masters to ACE slaves follow a similar flow to the flow for the non-ACE sockets.

Figure 3-13 ACE master to slave calls


The user layer is not useful for modeling ACE transactions because the extra response attributes required by ACE are not available in amba_pv_control. This is to maintain source level compatibility with previous versions of AMBA-PV.

Figure 3-14 ACE slave to master calls


The amba_pv_bw_transport_and_snoop_if interface is an AMBA-PV core interface. Class amba_pv_ace_master_base<> also inherits from this interface. The interface defines the following member functions:

invalidate_direct_mem_ptr()
Invalidate pointers that were previously returned via get_direct_mem_ptr().
b_snoop()
Equivalent function to the forward method b_transport() but used for transactions in the upstream slave to master direction.
snoop_dbg()
Equivalent function to the forward method transport_dbg() but used for transactions in the upstream slave to master direction.
Was this page helpful? Yes No