RTL Studio Open IDE

Bus Interfaces

AHB-Lite Slave Interface

Single-beat AHB-Lite slave with configurable address range, combinational read response, and write capture on full-word granularity.

About this block

Simulate it in the Verilog IDE

Hardsystemverilogsimsyn

AHB-Lite Slave Interface is a SystemVerilog reference block in the Bus Interfaces catalog. AXI, APB, Wishbone, and other on-chip bus interface adapters. Marked Hard: a larger reference. Simulate the packaged testbench before you change the RTL.

This module implements a single-beat AHB-Lite slave interface for memory-mapped register access. It supports address decoding, word/halfword/byte writes, and combinational read responses. The slave is designed for integration into larger AHB-based systems where minimal latency and simplicity are prioritized.

The interface adheres to the ARM AHB-Lite specification (non-burst, single-cycle transfers only), with HREADYOUT always asserted to indicate immediate completion. Address range is configurable via SLAVE_ADDR and SLAVE_SIZE parameters.

Writes are captured on the rising edge of HCLK only when HREADY && HREADYOUT && is_slave_access && HWRITE, storing the full 32-bit HWDATA regardless of HSIZE (though only full-word semantics are strictly enforced in storage).

  1. Choose Open in IDE. RTL Studio loads the packaged workspace for AHB-Lite Slave Interface.
  2. Read the SystemVerilog module in the editor. The catalog line for this block: Single-beat AHB-Lite slave with configurable address range, combinational read response, and write capture on full-word granularity.
  3. Run the packaged testbench with the in-browser Verilator simulator, then open the VCD in the waveform viewer.
  4. Run Yosys in the same IDE for a generic netlist. Sky130 liberty mapping is a separate Pro library option.

RTL Studio is the Verilog simulator and IDE around this block: Slang lint, Verilator, VCD waveforms, and Yosys, in the browser. Simulation guide · Yosys guide.

Ports

PortDirectionWidthDescription
HCLKinput1AHB clock
HRESETninput1Active-low reset
HADDRinputADDR_WIDTHAddress bus
HWDATAinputDATA_WIDTHWrite data bus
HTRANSinput2Transfer type (IDLE/BUSY/NONSEQ/SEQ)
HSIZEinput3Transfer size (bytes: 0=8,1=16,2=32)
HWRITEinput1Write/Read control
HREADYinput1Master ready (for backpressure)
HRDATAoutputDATA_WIDTHRead data bus
HRESPoutput2Response (00=OKAY, 10=ERROR)
HREADYOUToutput1Slave ready (always 1 — single-beat)

Verification

Test CaseDescriptionStatus
TC1Basic write to valid address✅ PASS
TC2Basic read after write✅ PASS
TC3Back-to-back write-read✅ PASS
TC4Access outside slave range → ERROR response✅ PASS
TC5IDLE transfer (HTRANS=00) handled correctly✅ PASS
TC6Wait-state simulation (HREADY=0 → 1)✅ PASS

More in Bus Interfaces

All Bus Interfaces blocks