Arm Community
Arm Community
  • Site
  • User
  • Site
  • Search
  • User
  • Groups
    • Research Collaboration and Enablement
    • DesignStart
    • Education Hub
    • Innovation
    • Open Source Software and Platforms
  • Forums
    • AI and ML forum
    • Architectures and Processors forum
    • Arm Development Platforms forum
    • Arm Development Studio forum
    • Arm Virtual Hardware forum
    • Automotive forum
    • Compilers and Libraries forum
    • Graphics, Gaming, and VR forum
    • High Performance Computing (HPC) forum
    • Infrastructure Solutions forum
    • Internet of Things (IoT) forum
    • Keil forum
    • Morello Forum
    • Operating Systems forum
    • SoC Design and Simulation forum
    • 中文社区论区
  • Blogs
    • AI and ML blog
    • Announcements
    • Architectures and Processors blog
    • Automotive blog
    • Graphics, Gaming, and VR blog
    • High Performance Computing (HPC) blog
    • Infrastructure Solutions blog
    • Innovation blog
    • Internet of Things (IoT) blog
    • Operating Systems blog
    • Research Articles
    • SoC Design and Simulation blog
    • Smart Homes
    • Tools, Software and IDEs blog
    • Works on Arm blog
    • 中文社区博客
  • Support
    • Arm Support Services
    • Documentation
    • Downloads
    • Training
    • Arm Approved program
    • Arm Design Reviews
  • Community Help
  • More
  • Cancel
Arm Community blogs
Arm Community blogs
SoC Design and Simulation blog Introduction to AXI Protocol: Understanding the AXI interface
  • Blogs
  • Mentions
  • Sub-Groups
  • Tags
  • Jump...
  • Cancel
More blogs in Arm Community blogs
  • AI and ML blog

  • Announcements

  • Architectures and Processors blog

  • Automotive blog

  • Embedded blog

  • Graphics, Gaming, and VR blog

  • High Performance Computing (HPC) blog

  • Infrastructure Solutions blog

  • Internet of Things (IoT) blog

  • Operating Systems blog

  • SoC Design and Simulation blog

  • Tools, Software and IDEs blog

Tags
  • AMBA
  • aldec
  • AXI
  • SoC Design
Actions
  • RSS
  • More
  • Cancel
Related blog posts
Related forum threads

Introduction to AXI Protocol: Understanding the AXI interface

Christina Toole
Christina Toole
October 24, 2016

When part of a team, your group can become more capable than a single individual, but only if your team can work together and communicate effectively. Having members of a group talk over each other leads to nothing but a cacophony, and nothing gets done. For this reason protocols need to be established, such as letting others speak without interruption, or facing those you are addressing. The same is necessary with electronics, especially with system on chip (SoC) designs.

Introducing the AXI Protocol

The protocol used by many SoC designers today is AXI, or Advanced eXtensible Interface, and is part of the Arm Advanced Microcontroller Bus Architecture (AMBA) specification. It is especially prevalent in Xilinx’s Zynq devices, providing the interface between the processing system and programmable logic sections of the chip.

My first introduction with the interface was in a tutorial I was following that was to be implemented on Aldec’s own development board based off the Zynq XC7Z030, the TySOM™ board. The project utilized several of the board’s peripheral connections including HDMI, touchscreen, LEDs, and switches. Despite the various types of inputs and outputs, the IP cores all shared a common interface: AXI. Knowing the differences between these devices, I was interested in why each IP Core was able to share this common interface. Reading more into the technology I found out just why AXI has become the most widespread AMBA interface.

How AXI became the most widespread AMBA interface

The protocol simply sets up the rules for how different modules on a chip communicate with each other, requiring a handshake-like procedure before all transmissions. Having a protocol such as this allows a true “system” rather than a “collection” of modules to be established as the protocol connects and provides an effective medium for transfer of data between the existing components on the chip.

Channel Connections

Protocol specifications

The specifications of the protocol are quite simple, and are summarized below:

  • Before transmission of any control signal/address/data, both master and slave must extend their “hand” for a handshake via ready and valid signals.
  • Separate phases exist for transmission of control signal/address and data.
  • Separate channels exist for transmission of control signal/address and data.
  • Burst type communication allows for continuous transfer of data.

To go more in depth, the interface works by establishing communication between master and slave devices. Between these two devices (or more if using an AXI Interconnect Core IP) exists five separate channels: Read Address, Write Address, Read Data, Write Data, and Write Response. Each channel has its own unique signals as well as similar signals existing among all five. The valid and ready signals exist for each channel as they allow for the handshake process to occur for each channel. For transmitting any signal (address/data/response/etc) the relevant channel source provides an active valid signal and the same channel’s destination must provide an active ready signal. After both signals are active, transmission may occur on that channel. As stated above, the transmission of control signals/address and data are done in separate phases, and therefore an address must always be transferred between devices before the handshake process can occur for the corresponding data transfer. In the case of writing information, the response channel is used at the completion of the data transfer.

Ready and valid signals

Summary

There it is. The protocol is that easy! Of course there are additional options that the protocol provides that up the complexity somewhat, such as burst transfer, QoS, Protections, and others. These options are simply extra signals existing on the different channels that allow for additional functionality, for general use however, the above description gets the point across on how this interface generally works.

Once I understood the basic idea of the AXI protocol it was much easier to understand the tutorial I was going through. The project I was building in Vivado was no longer just a bunch of blocks with random connections, but instead were the various peripherals of the TySOM board all connected with a common bus interface. By learning about this one interface I was able to understand all the various connections of the design due to the interface’s general use. This isn’t just true for the TySOM project as, being an industry standard, knowing the AXI protocol allows for a better understanding of all Arm based chips utilizing this AMBA specification.

Author

This blog is authored by Brandon Wade, Aldec FAE Intern. Brandon is currently working on his B.S. in computer engineering from the University of Nevada, Las Vegas and is set to graduate in 2017. His interests include processor architectures, and the logic of these hardware designs. As a field application engineer intern, Brandon has worked extensively with Aldec's own simulation software such as Active-HDL and Riviera-PRO.

Anonymous
  • techguyz
    Offline techguyz over 1 year ago

    Is AXI protocol open-source or it needs to be licensed?

    • Cancel
    • Up 0 Down
    • Reply
    • More
    • Cancel
SoC Design and Simulation blog
  • Arm Virtual Platform co-simulation solution accelerates SoC verification

    Daniel Owens
    Daniel Owens
    Avery Design Systems’ co-simulation design verification solution that integrates SystemC-based Arm virtual platforms with a SystemVerilog environment.
    • December 6, 2022
  • IP exchange and Cycle Models end-of-life update

    Gemma Platt
    Gemma Platt
    Arm Cycle Models and Arm IP Exchange are now End-of-Life, understand what this means to you.
    • May 25, 2022
  • Accelerate IP Selection with the New Arm IP Explorer

    Zach Lasiuk
    Zach Lasiuk
    The newly announced Arm IP Explorer platform represents a step-change in efficiency for the IP selection process when defining a custom System on Chip (SoC).
    • May 4, 2022