Tutorials

Protocols

Learn More

AHB is part of the AMBA family of on-chip bus protocols. It is designed for higher-performance data movement than APB while remaining simpler than multi-channel protocols such as AXI. AHB is useful when a design needs pipelined transfers, burst support, and a clean synchronous interface.

At a system level, AHB defines how an active bus component starts a transfer, how address/control information is presented, how write or read data moves, and how the selected target reports completion or error. It is not a memory controller by itself and it is not a complete interconnect implementation by itself. Instead, it is the interface contract that lets Managers, Subordinates, bridges, and interconnect blocks communicate predictably.

AHB is especially useful in designs where a simple register bus would become a bottleneck. It supports one transfer address phase overlapping another transfer data phase, so a well-designed zero-wait-state system can complete one transfer per cycle after the pipeline is filled. This makes it suitable for traffic that is more demanding than APB peripheral access but does not need the full complexity of AXI.

The protocol is usually used for:

  1. Processor instruction and data paths.
  2. Internal SRAM or tightly coupled memory access.
  3. DMA traffic.
  4. External memory controllers.
  5. Higher-bandwidth peripheral interfaces.
  6. Bridges to APB, AXI, or other bus fabrics.

AHB is commonly seen in microcontroller-class and embedded SoC designs because it balances performance and implementation cost. A small system might use one Manager, a decoder, and a few Subordinates. A larger system might use a multi-layer interconnect so multiple Managers can access different Subordinates in parallel.

ahb-soc-positioning

The most important idea is that AHB separates a transfer into an address phase and a data phase. These phases are pipelined, so the address phase of one transfer can overlap with the data phase of the previous transfer. This overlap gives AHB better throughput than a non-pipelined register bus.

For beginners, the useful mental model is:

  1. The Manager announces what it wants during the address phase.
  2. The selected Subordinate completes the transfer during the data phase.
  3. HREADY controls whether the pipeline can advance.
  4. HRESP reports whether the transfer completed successfully or with an error.
  5. Burst, protection, security, user, and parity signals add context around the same basic transfer flow.

AHB system roles

To stay aligned with current engineering standards and the latest official Arm AMBA specifications, this guide uses modernized terminology. Legacy codebases, older documentation, and classic textbooks may use Master/Slave conventions, but contemporary AMBA specifications define the roles as Manager, Subordinate, and Interconnect.

The underlying clock-edge mechanics and protocol concepts remain exactly the same. Only the terminology has been updated so the tutorial matches today’s Arm AMBA ecosystem.

RoleTypical implementationMain job
ManagerFormerly Master; CPU bus interface, DMA engine, bridge, debug portActive component that initiates read or write operations and drives address, control, and write data
SubordinateFormerly Slave; SRAM, peripheral, bridge, memory controllerPassive component that responds to selected requests from a Manager and returns read data, ready, and response
InterconnectDecoder, mux, arbiter, routing fabricRouting and arbitration logic that manages traffic between Managers and Subordinates

In a single-Manager AHB system, the interconnect can be simple. A decoder watches HADDR and asserts one HSELx select line. A response multiplexor returns HRDATAHREADYOUT, and HRESP from the selected Subordinate back to the Manager.

In a multi-Manager system, the interconnect also performs arbitration and routing. The AHB protocol defines the interface behavior, but a complete multi-layer interconnect can add internal policy around priority, arbitration, and route timing.

AHB compared with APB

FeatureAHBAPB
Main purposeHigher-bandwidth system trafficLow-bandwidth register access
Transfer stylePipelined address and data phasesSetup and Access phases
Burst supportYesNo
Wait-state supportHREADY and HREADYOUTPREADY
Error responseHRESPPSLVERR
Typical targetsMemory, DMA, bridges, high-speed peripheralsTimers, GPIO, UART registers, control blocks

APB is often connected behind an AHB-to-APB bridge. The bridge appears as an AHB Subordinate on the AHB side and as an APB Requester on the APB side.