Avalon Protocol
Avalon-MM/Avalon-ST signals, handshakes and Platform Designer integration.
What is Avalon?
Avalon is a family of interface protocols developed by Intel (formerly Altera) for their Cyclone, Arria, and Stratix FPGAs. It is used in Platform Designer (formerly Qsys) to connect IPs within an FPGA SoC.
The Avalon family includes several variants:
- Avalon-MM (Memory Mapped): register and memory access
- Avalon-ST (Streaming): continuous data stream
- Avalon-Interrupt: interrupt signals
- Avalon-Clock: clock distribution
- Avalon-Conduit: custom out-of-band signals
Avalon-MM (Memory Mapped)
Main Signals
| Signal | Direction (Master) | Description |
|---|---|---|
| address | Output | Word address |
| read | Output | Read request |
| write | Output | Write request |
| readdata | Input | Read data (slave → master) |
| writedata | Output | Write data (master → slave) |
| byteenable | Output | Active byte mask |
| waitrequest | Input | Slave requests a wait cycle |
| readdatavalid | Input | (pipeline) Read data is valid |
Avalon-MM Read and Write Cycles

The master must hold read and address stable while waitrequest is high.
VHDL Implementation
A zero-latency Avalon-MM slave is the simplest implementation: waitrequest is always low, and reads/writes execute in a single cycle. The slave decodes the address to access an internal register array.
Avalon concepts are practiced through the protocol quizzes and exercises, including Avalon-MM slave implementation work.