Skip to content
Engineering Journal
Protocolsbeginner

Why APB Still Matters in an AXI World

If AXI is so powerful, why do modern SoCs still contain APB? A working RTL architect's case for the low-power peripheral bus, the AXI-to-APB bridge, and matching each block to the traffic it carries.

VLSI MentorUpdated 10 July 20266 min read
AMBAAPBAXISoCperipheralslow-power

Modern SoCs may contain hundreds of AXI interfaces, yet almost every one of them still contains an APB subsystem. Open the block diagram of any application processor, microcontroller, or FPGA SoC and you will find the same pattern: a wide, fast fabric carrying the heavy traffic, and off to one side a small, quiet bus wired to the timers, the UART, and the GPIO. That small bus is APB — the Advanced Peripheral Bus — and its survival in an age of ever-faster interconnect is not nostalgia. It is a deliberate engineering choice made by people who have taped out chips.

The "APB is obsolete" reflex

Every few years the industry falls in love with a faster bus, and APB gets written off as the boring one. The reasoning sounds sensible: AXI moves data in bursts, keeps many transactions outstanding, and sustains gigabytes per second, while APB plods through one two-phase transfer at a time with no pipelining and no bursts. If AXI is strictly more capable, why keep the weaker bus around at all?

The flaw in that reasoning is the word capable. AXI is more capable in exactly one dimension — throughput — and that capability is not free. It is paid for in gates, in wires, in switching power, and in verification effort. The question a good architect asks is never "which bus is more powerful?" It is "which bus is sufficient for this block?" For the overwhelming majority of blocks on a chip, the honest answer is: something far simpler than AXI.

Why APB still exists

APB's whole design philosophy is that most peripherals do not need bandwidth — they need cheap, predictable register access. Everything that makes it look primitive next to AXI is actually the feature:

  • Tiny area. An APB slave is a handful of flops, a small address decoder, and a read mux — a few hundred gates. Multiply the saving over the dozens of peripheral blocks on a chip and it becomes real silicon.
  • Low switching activity, low dynamic power. APB carries a few dozen signals and only toggles when a register is actually accessed — a few times per millisecond. A low-power peripheral bus that sits idle most of the time burns almost nothing, which matters enormously on battery-powered parts.
  • Easy verification. A protocol with almost no corner cases is a protocol your verification team is not losing weeks to. There are no bursts to interleave, no outstanding transactions to reorder, no ordering rules to prove.
  • Deterministic behavior. Every transfer is the same two phases with a simple ready handshake. That predictability makes timing closure relaxed and debug straightforward — there is no pipeline to reason about.

Those properties are exactly what you want for register access: writing a baud-rate divisor, setting a GPIO direction, arming a timer. None of it needs bandwidth; all of it needs to be small, cheap, and obviously correct.

Where APB appears in a real SoC

APB is the home of the control plane — the long tail of blocks that are configured occasionally and never stream data. In practice that means the UART, GPIO, timers, the watchdog, the interrupt controller, PWM outputs, and the control registers of I²C and SPI controllers. A single bridge fans one port of the fast fabric down to all of them.

A modern SoC data path: CPU to cache to an AXI interconnect with DDR controller, DMA, and GPU attached directly; a single AXI-to-APB bridge connects the AXI fabric to an APB bus that carries GPIO, UART, SPI, I2C, timers, watchdog, PWM, and an interrupt controller.
Figure 1 — a modern SoC. The CPU and cache sit on a high-bandwidth AXI interconnect alongside the DDR controller, DMA, and GPU. A single AXI-to-APB bridge fans one AXI port down to a simple APB bus carrying GPIO, UART, SPI, I²C, timers, watchdog, PWM, and the interrupt controller.

The AXI-to-APB bridge

Because the fast fabric and the peripheral bus speak different protocols, a bridge joins them. An AXI-to-APB bridge is an AXI slave on one face and an APB master on the other: it accepts a transaction from the fabric, drives the corresponding two-phase APB access to the addressed peripheral, and returns the response — mapping an APB error back into an AXI error along the way. Bridges exist so that the expensive interface is built once, at the boundary, instead of dozens of times inside every peripheral. The CPU still reaches every register; it simply does so through one small translator rather than by giving each timer its own AXI port.

Different optimization goals, not competitors

This is the mental shift that separates people who memorized signal names from people who design systems: AXI and APB are not competing for the same job. AXI is optimized for throughput; APB is optimized for simplicity. They are answers to different questions.

A decision matrix: AXI, optimized for throughput, serves high-bandwidth clients DDR, DMA, GPU, and accelerator; APB, optimized for simplicity, serves low-bandwidth clients GPIO, UART, configuration registers, and timers.
Figure 2 — the traffic picks the bus. High-bandwidth clients (DDR, DMA, GPU, accelerators) belong on AXI; low-bandwidth control blocks (GPIO, UART, configuration registers, timers) belong on APB. Different optimization goals, used together on the same chip.

The misconception: "why not put everything on AXI?"

If AXI reaches everything anyway, why not connect each peripheral directly to it and drop the bridge? Because you would pay AXI's full cost on every block that gains nothing from it. Each peripheral would carry five channels, ID tracking, and outstanding-transaction logic to service traffic that arrives a few times per millisecond. You would multiply gate area, inflate dynamic power, and — most painfully — expand the verification surface of every block from APB's handful of cases to AXI's interleaving, ordering, and back-pressure corner cases. The chip would be larger, hotter, harder to close timing on, and slower to verify, for no functional gain.

A grouped bar chart comparing APB, AHB, and AXI across logic complexity, gate count, verification effort, and throughput; APB is lowest on all four, AHB moderate, and AXI highest, showing cost rising together with throughput.
Figure 3 — cost versus capability across APB, AHB, and AXI. Logic complexity, gate count, and verification effort rise in lock-step with throughput. You only want to pay the first three where the last one is genuinely needed.

Simplicity also shows up directly in the RTL. A complete APB register slave is small enough to read at a glance:

Azvya Education Pvt. Ltd.VLSI Mentor
Snippet
// Minimal APB register slave: one 32-bit control register.
// No pipeline, no bursts, no FSM to reason about.
module apb_ctrl_reg (
  input  logic        pclk, presetn,
  input  logic        psel, penable, pwrite,
  input  logic [31:0] pwdata,
  output logic [31:0] prdata,
  output logic        pready
);
  logic [31:0] ctrl_q;
  assign pready = 1'b1;                       // always ready — zero wait states
 
  always_ff @(posedge pclk or negedge presetn)
    if (!presetn)                       ctrl_q <= 32'h0;
    else if (psel && penable && pwrite) ctrl_q <= pwdata;  // write on access phase
 
  assign prdata = ctrl_q;                     // combinational read
endmodule

There is no state machine to draw, no ordering to prove, no outstanding queue to size. That is the entire point: the block is small, its behavior is obvious, and a reviewer can convince themselves it is correct in seconds. Do that across fifty peripherals and the savings in area, power, and verification time are enormous.

The takeaway

APB is the right choice whenever a block is accessed occasionally, moves no bulk data, and values a small footprint and easy verification over bandwidth — which describes nearly every peripheral on a chip. AXI earns its complexity on CPUs, DMA engines, GPUs, and memory controllers, where throughput and latency-hiding are worth the cost. A real SoC uses both, joined by a bridge, each matched to the traffic it carries.

APB is not the bus you brag about. It is the bus that quietly makes the rest of the chip buildable — and in a world full of AXI, that is exactly why it still matters. For the full picture of how the three AMBA buses divide the work, read AXI vs AHB vs APB — the complete AMBA bus comparison.