Tutorials

Protocols

Learn More

In a typical SoC, the APB side is reached through a bridge. The bridge receives a transaction from a higher-performance interconnect, decodes the target address, selects one APB peripheral, and drives the APB transfer sequence.

The bridge is the Requester. It drives request-side signals such as address, select, enable, direction, write data, strobe, and protection attributes. The selected peripheral is the Completer. It returns read data, ready, error, and optional response/user information.

apb-bus-architecture

The important architectural idea is selection. APB uses a PSELx signal per Completer. A shared address/control/data path can be routed to many peripherals, but only the selected Completer participates in the active transfer.

Requester and Completer

RoleCommon implementationMain responsibility
RequesterAPB bridge, bus adapter, local controllerStarts transfers, drives address/control/write data, asserts PSELx and PENABLE
CompleterAPB peripheral register blockAccepts writes, returns read data, controls PREADY, optionally reports PSLVERR

Older material may use master/slave terminology. This tutorial uses Requester/Completer because that is the terminology used by the current APB specification.

APB bridge behavior

The APB bridge commonly performs these steps:

  1. Accept a request from AXI, AHB, or a local internal bus.
  2. Decode the address to choose the APB Completer.
  3. Assert the correct PSELx.
  4. Drive address, direction, write data, and attributes.
  5. Assert PENABLE in the Access phase.
  6. Wait for PREADY if the Completer needs extra cycles.
  7. Return read data or error status to the upstream bus.

APB itself does not define the upstream bus. AXI-to-APB and AHB-to-APB bridges are common implementation choices, but APB remains the simple peripheral-side protocol.