ARM
AMBA
protocols
Yoav Lurie
10.05.20
Contents
AMBA FAMILY
APB
AHB
AXI
2
AMBA family
AMBA – Advanced Microcontroller Bus Architecture
3
APB protocol
Advanced Peripheral Bus
Connects one master to (several) slaves – in our implementation only 1 slave
Each transaction contains its address and data
Simple, fairly slow and not very advanced
4
APB protocol signals
PADDR[x:0]
PPROT[2:0]
PSELx
PENABLE
PWRITE
PWDATA[31:0]
PSTRB[3:0]
PREADY
PRDATA[31:0]
PSLVERR
5
APB transaction flow
Write operation
Read operation
6
AHB – Advanced High-performance Bus
Originally, connected several masters to several slaves through shared bus
Our implementation – one master to one slave – AHB lite
Faster than APB, simple to implement. Still used in many IPs
7
AHB protocol signals
HADDR[x:0]
HBURST[2:0]
HMASTLOCK
HPROT[3:0] HPROT[6:4]
HSIZE[2:0]
HNONSEC
HEXCL
HMASTER[3:0]
HTRANS[1:0]
HWDATA[31:0]
HWRITE
8
AHB write transaction flow
9
AHB read transaction flow
10
AXI – Advanced eXtensible Interface
Each component interacts with a central interconnect – no shared busses.
Traffic is separated into 5 channels
AW – Address Write
W – Write Data
B – Response Data
AR – Address Read
R – Read Data (with integrated response)
Channel items are associated by id field
11
AXI protocol signals
Address Phase signals A(W/R)PROT [3:0]
A(W/R)ID [x:0] A(W/R)QOS [4:0]
A(W/R)ADDR [x:0] A(W/R)VALID
A(W/R)LEN [7:0] A(W/R)READY
A(W/R)SIZE [2:0] Optional signals
A(W/R)BURST [1:0] A(W/R)REGION [3:0]
A(W/R)LOCK [1:0] A(W/R)USER [x:0]
A(W/R)CACHE [3:0]
12
AXI protocol signals
Data channels RRESP
(W/R)ID [x:0] Write Response
(W/R)DATA [x:0] BID [x:0]
(W/R)LAST BRESP [1:0]
(W/R)USER [x:0] BUSER [x:0]
(W/R)VALID BVALID
(W/R) READY BREADY
Only Write
WSTRB [data/8:0]
Only Read
13
AXI waves
14