Eeng428 Lecture 007 Axi Protocol
Eeng428 Lecture 007 Axi Protocol
EENG 428
ENAS 968
bit.ly/cloudfpga
Lecture: Advanced eXtensible Interface (AXI)
• Recall that Amazon’s Cloud FPGAs contain a Shell (SH) which contains a number of
modules usable by the user’s Custom Logic (CL)
• PCIe controller to communicate with the server
• DRAM controller to use DRAM modules
• AXI bus interfaces
• QSFP interfaces
• Virtual logic analyzer
• …
User Logic
FPGA chip
Share: EENG 428 / ENAS 968 – Cloud FPGA
Block diagram from [2] 3
bit.ly/cloudfpga © Jakub Szefer, Fall 2019
Use of AXI in the Shell and Custom Logic
Most of the communication between Shell and the Custom Logic is done through AXI buses
Share: EENG 428 / ENAS 968 – Cloud FPGA AXI information from [3] 6
bit.ly/cloudfpga © Jakub Szefer, Fall 2019
Basic AXI Connections between Master and Slave
0x2000 Reg2
Write data channel
0x3000 Config
Master Write response channel Slave
… …
module module
Read address channel
Note, can have a
Read data channel protocol where
‘commands’ are
sent on the data
Data channels are for sending actual data, while bus, so it’s not just
others are to control the data sending process pure data
A “beat” is used to
Master Write response channel Slave describe transfer
module module of one payload
Read address channel
The payload can
Read data channel be address, control
signal, or data
AXI4-Lite signals:
Example of AXI4-Lite read, need to specify address for each data transfer
AR
channel
R
channel
Ready to receive data Data is valid, and received Not ready to receive more data
Example read:
Request 4 transfers (ARLEN + 1)
of 4 bytes (32 bits) each from
address 0x0
Example write:
Request 4 transfers (ARLEN + 1)
of 4 bytes (32 bits) each from
address 0x0
• AXI4 is for memory mapped interfaces and allows burst of up to 256 data transfer cycles
with just a single address phase
• AXI4-Stream removes the requirement for an address phase altogether and allows
unlimited data burst size
• AXI4-Stream interfaces and transfers do not have address phases and are therefore not
considered to be memory-mapped.
• The AXI4-Stream protocol is used for applications that typically focus on a data-centric and
data-flow paradigm where the concept of an address is not present or not required. Each AXI4-
Stream acts as a single unidirectional channel for a handshake data flow
Share: EENG 428 / ENAS 968 – Cloud FPGA AXI4 information from [1] 15
bit.ly/cloudfpga © Jakub Szefer, Fall 2019
AXI4 Stream Signals
• The software libraries (SDK) provides means to read and write data to the FPGA
• peek() and poke() are
most basic ways to read or
write data
AXI read or write
• They are triggered by software transaction
and result in AXI read or write
request to show up App App App
App
App App
App App App
Hardware
1. “AXI Reference Guide, UG761 (v14.3) November 15, 2012” Available at:
https://www.xilinx.com/support/documentation/ip_documentation/axi_ref_guide/latest/ug761_axi_reference_gui
de.pdf
2. “AWS Shell Interface Specification, v1.4.5” Available at: https://github.com/aws/aws-
fpga/blob/master/hdk/docs/AWS_Shell_Interface_Specification.md
3. “Advanced eXtensible Interface” Wikipedia, The Free Encyclopedia. Available at:
https://en.wikipedia.org/wiki/Advanced_eXtensible_Interface