AHB Signals Reference

A comprehensive guide to every signal in the AMBA AHB protocol, grouped by function. Understanding these signals is the first step to mastering bus verification.

Global Signals

Signal Source Description
HCLK Clock Source Bus clock. All signal timings are related to the rising edge of HCLK.
HRESETn Reset Controller Active LOW bus reset. Forces all bus modules to a known initialization state.

Master Signals (Address Phase)

These signals are driven by the Master to initiate a transfer.

Signal Width Description
HADDR 32 System address bus.
HTRANS 2 Transfer type.
00: IDLE (No transfer)
01: BUSY (Valid burst cycle, but Master not ready)
10: NONSEQ (First transfer of burst or single)
11: SEQ (Next transfer of burst)
HWRITE 1 HIGH for Write, LOW for Read.
HSIZE 3 Transfer size (000=8bit, 001=16bit, 010=32bit...).
HBURST 3 Burst type (SINGLE, INCR4, WRAP8, etc.).
HPROT 4 Protection. [0]: Op/Data, [1]: User/Priv, [2]: Bufferable, [3]: Cacheable.

Slave Signals (Response Phase)

These signals are driven by the Slave to respond to the Master.

Signal Width Description
HREADY 1 Transfer Done.
HIGH: Signal transfer finished.
LOW: Slave is extending the transfer (wait state).
HRESP 2 Transfer Status.
00: OKAY
01: ERROR
10: RETRY (Protocol v2.0 only)
11: SPLIT (Protocol v2.0 only)
HRDATA 32/64 Read Data bus. Source is Slave, sink is Master.

Data Signals

Signal Source Description
HWDATA Master Write Data bus. Valid only during write transfers (HWRITE=1).

Common Interview Questions

Q: What happens if HREADY is low during the address phase?
Trick question! The AHB protocol is pipelined. If HREADY is low, it means the previous data phase is stuck. The current address phase cannot complete, so the Master must hold HADDR, HTRANS, etc. stable until HREADY goes high.
Q: Can HTRANS change from IDLE to NONSEQ if HREADY is low?
No. Master signals must remain stable when HREADY is low, with the exception of leaving IDLE state in some specific limited cases (HTRANS can transition from IDLE to NONSEQ, but the address must then be held). However, general rule of thumb: Wait for HREADY.