The AMBA-PV Extensions to TLM 2.0 (AMBA-PV) map AMBA buses on top of TLM 2.0.
The key features are:
- Dedicated to the Programmer’s View (PV), this class focuses on high-level, functionally accurate, transaction modeling. Low-level signals such as, for example, channel handshake, are not important at that level.
- This class is the standard for the modeling of AMBA ACE, AXI, AHB, and APB buses with TLM 2.0.
- Targeted at Loosely-Timed (LT) coding style of TLM 2.0, this class includes blocking transport, Direct Memory Interface (DMI), and debug interfaces.
- Interoperable, this class permits models using the mapped AMBA buses to work in an Accellera-compliant SystemC environment.
AMBA-PV classes and interfaces are layered on top of the TLM 2.0 library. AMBA-PV specializes TLM 2.0 classes and interfaces to handle AMBA buses control information such as secure, non-secure, and privileged. In addition, AMBA-PV provides a framework that minimizes the effort required to write TLM 2.0 models that communicate over the AMBA buses.
AMBA buses add the following specific features to the TLM 2.0 Generic Payload (GP):
- Addressing options support.
- Protection unit support.
- Cache support.
- Atomic accesses support.
- Quality of Service (QoS) support.
- Multiple region support.
- Coherency support.
- Barrier transactions.
- Distributed Virtual Memory (DVM) support.
The AMBA-PV extensions to the TLM 2.0 Base Protocol (BP) covers the following:
- Definition of AMBA-PV extension and trait classes.
- Specialization of TLM 2.0 sockets and interfaces.
- Use of TLM 2.0 b_transport() blocking transport interface only.
In addition, AMBA-PV defines classes and interfaces for the modeling of side-band signals such as, for example, interrupts.