Communication Protocols & Interfaces
Industry-standard bus protocols and serial interfaces for chip-to-chip communication
Industry-standard bus protocols and serial interfaces for chip-to-chip communication
© 2024 RTL Digital Design | All Rights Reserved
A polished, ready-to-post set of 15 common AXI/AMBA interview questions with crisp answers, a comparison table, a visual read-transaction timeline, and a SystemVerilog assertion example.
AHB (Advanced High-performance Bus) and AXI (Advanced eXtensible Interface) are both core interconnect protocols within the ARM AMBA specification, but AXI delivers significantly higher throughput and bandwidth by employing a channel-based architecture instead of a shared-bus structure. AHB is ideal for medium-performance, low-latency system components, while AXI is designed for high-performance, high-frequency SoC designs.
| Feature | AHB (AMBA 2 / AHB-Lite) | AXI (AMBA 3 / AXI4 / AXI5) |
|---|---|---|
| Architecture Type | Shared, multiplexed bus structure. | Independent, channel-based topology. |
| Bus Channels | Shared address/data lines for read and write. | 5 independent channels (AW, W, B, AR, R). |
| Read/Write Concurrency | Half-duplex. | Full-duplex (simultaneous read and write). |
| Outstanding Transactions | Not natively supported. | Supported natively via transaction IDs. |
| Out-of-Order Execution | In-order processing only. | Out-of-order data completion via ID tags. |
| Burst Support | Incrementing and wrapping bursts. | FIXED, INCR, and WRAP burst types. |
| Maximum Burst Length | Up to 16 beats. | Up to 256 beats per burst (AXI4). |
| Design Complexity | Moderate; simpler control logic. | High; complex interconnect matrices. |
AXI-Lite is a simplified, lightweight subset of the full AXI protocol designed for low-throughput memory-mapped communication, such as accessing Control and Status Registers (CSRs) in peripherals like GPIO, UART, or timers.
AWID, ARID).VALID/READY handshakes.WSTRB) to mask valid data lanes.ARVALID, Slave asserts ARREADY. Handshake completes on the rising clock edge when both are high.RDATA beats with RVALID asserted. Multiple beats can flow without new address commands.RLAST on the final data beat, signaling burst completion.AXI data interleaving is the capability to mix individual data beats from different transactions on the same data channel.
RID, WID) to identify each beat's transaction.AXI out-of-order support allows transactions to complete in a different order from issuance, eliminating bottlenecks.
AWID/ARID).The capability of an AXI master to issue new address requests before previous data phases finish.
RCHK/WCHK signals carry parity or ECC bits.WUSER/RUSER.If ready must come exactly 5 cycles after valid rises:
// Property: When valid goes high, ready must be high exactly 5 cycles later
property p_valid_to_ready;
@(posedge clk) disable iff (!rst_n)
$rose(valid) |-> ##5 ready;
endproperty
assert_valid_to_ready: assert property (p_valid_to_ready)
else $error("Violation: ready did not assert exactly 5 cycles after valid!");
If "within 5 cycles" is intended, change ##5 ready to ##[1:5] ready.
VALID/READY Handshake: Transfer only when both high. VALID must stay high until READY asserts.WLAST for writes, RLAST for reads).LAST, VALID, and READY are all high on the same clock edge.LAST is removed (burst is always 1 beat).AxLEN (up to 256 in AXI4).Up to 1024 bits (128 bytes), determined by physical bus width.
AxSIZE (3 bits) specifies bytes per beat.AxSIZE ≤ physical bus width.WSTRB identifies which byte lanes contain valid write data.
WSTRB bit controls one byte (e.g., on 32-bit bus, WSTRB[0] → bits [7:0]).