APB Overview - nayanarudramurthy/uvm_sequence-start- GitHub Wiki

Advanced Peripheral bus (APB)

The Advanced Microcontroller Bus Architecture (AMBA) protocol family includes the Advanced Peripheral Bus (APB) . It is a single-channel protocol that defines a low-cost interface that is designed to use the least amount of power and reduce interface complexity.
APB is not pipelined. It is used to connect to peripherals with limited bandwidth that don't need the AXI protocol's high performance. In APB, signal transitions are mainly represented at the rising edge of the clock. Every transfer in APB takes a minimum of two clock cycles.

There are three versions of APB

  1. AMBA 2 APB Specification (APB2)
    It includes the interface signals, the basic read and write transfers, and the two APB components the APB bridge and the APB slave.

  2. AMBA 3 APB Specification v1.0 (APB3)
    Wait state and Error reporting was added to this specification. PREADY (Ready signal) and PSLVERR (Slave error signal) signals support this functionality.
    PREADY - This signal indicates the completion of the APB transfer.
    PSLVERR - This signal indicates failure of a transfer.

  3. AMBA APB Protocol Specification v2.0 (APB4)
    Transaction protection and Sparse data transfer was added to this specification. PPROT (Protection signal) and PSTRB (Strob signal) signals support this functionality.
    PPROT - This signal support both non-secure and secure transactions on APB.
    PSTRB - This signal enables sparse data transfer on the write data bus.

Why do we need APB

  • It is used to communicate between high-level components to low-level components through the bridge.
  • APB can interface to any peripherals that are low bandwidth and do not require the high performance of a pipelined bus interface.
  • It helps to reduce system power consumption.
  • It can interface with AHB, AXI and etc..