Professional Documents
Culture Documents
Amba Axi Protocol
Amba Axi Protocol
CONTENTS
Key Features
Objectives
Channel Architecture
Basic Transaction
Signal Descriptions
Addressing Options
Channel Handshake
AMBA AXI PROTOCOL
Key Features
• Separate address/ control and data phases
• Separate read and write channels to enable low-cost
Direct Memory Access
• Burst-based transactions with only start address issued
• Ability to issue multiple outstanding address
• Out – of – order (OOO) transaction completion
• Register slice support for high frequency operation
AMBA AXI PROTOCOL
Objectives
• Be suitable for high-bandwidth and low-latency
designs
• Enable high-frequency operation
• Fit for devices with high initial latency
• Provide flexibility of interconnect architectures
• Be backward-compatible with existing AHB and
APB interfaces.
AMBA AXI PROTOCOL
Channel Architectures
Write Address/ Control
AWREADY
ARREADY
Write data
AXI Master AXI Slave
WREADY
Read data
RREADY
Write Responce
BREADY
Outstanding Transactions
Data Interleaving
4KB
Slave1
Slave2
AMBA AXI PROTOCOL
Addressing Options
Burst Length
• Burst length specifies the number of data
tranfers that occur within each a burst.
• Fixed burst
- Address remains the same for every tranfer in the burst
- Repeat access to the same location
• Incrementing burst
- Address for the each tranfer in the burst is an increment of the previous address
- The increment value depends on the size of the tranfer
• Wrapping burst
- The start address must be aligned to the size of the tranfer
- The length of the burst must be 2, 4, 8 or 16.
AMBA AXI PROTOCOL
Addressing Options
Burst Adress
• Start Address : the start address issued by the master
• Number_bytes : the maximum number of bytes in each data
tranfer
• Data_bus_bytes : the number of byte lanes in the data bus
• Aligned_address : the aligned version of the start address
• Burst_length : the total number of data tranfers within a burst
• Address_N : the address of tranfer N within a burst. N is an
integer from 2-16
• Wrap_boundary : the lowest address within a wrapping burst
• INT(x) : the rounded-down integer value x
AMBA AXI PROTOCOL
Addressing Options
Burst Adress - formulas
• Start Address = ADDR
• Number_bytes = 2^SIZE
• Burst_length = LEN + 1
• Aligned_address = (INT(Start_address / Number_Bytes)) x Number_Bytes
• Address1 = Start_Address
• Address_N = Aligned_address + (N-1) x Number_Bytes
For wrapping burst, the wrap_boundary variable is extended to account for the
wrapping boundary :
• Wrap_boundary = (INT(Start_address / (Number_Bytes x Burst_length))) x
(Number_Bytes x Burst_length)
• Address_4 = 0x44
Start_address
If a slave can always accept any valid address, the default value of READY will
be HIGH, although if READY is HIGH then the slave must be able to accept
any valid address that is presented to it.
If the default READY value of LOW, it can take at least two cycle, but one
cycle is ok. So why the default READY value need HIGH ?
If the master can always accept any valid data, READY will be always HIGH
for 1-cycle handshaking
AMBA AXI PROTOCOL
Channel Handshake
Dependency in Read Transactions
• A slave can wait for ARVALID before asserting ARREADY
• A slave must wait for ARVALID & ARREADY before
asserting RVALID
• A master can wait for RVALID before asserting RREADY
IMPORTANT NOTE :
AWVALID WVALID BVALID Master must not wait for
AWREADY to be asserted before
AWREADY WREADY BREADY driving WVALID. This could cause a
deadlock condition if the slave is
must wait
conversely waitting for WVALID
before asserting AWREADY
can wait