AXI总线协议的学习

1、AXI总线的初步认识

What is AXI?
AXI is part of ARM AMBA, a family of micro controller buses first introduced in 1996. The
first version of AXI was first included in AMBA 3.0, released in 2003. AMBA 4.0, released in
2010, includes the second major version of AXI, AXI4.
There are three types of AXI4 interfaces:
• AXI4: For high-performance memory-mapped requirements.
• AXI4-Lite: For simple, low-throughput memory-mapped communication (for example,
to and from control and status registers).
• AXI4-Stream: For high-speed streaming data.

这段是摘自xilinx的ug1037的对于AXI的简介。大概意思就是AXI是ARM AMBA的一部分,有常用的三种形式。感觉读完后还是什么都不知道。作为一个传输协议,主要的目的还是传输数据。如何能够快速地理解一个协议呢?找到这个协议的传输特点。

由于AXI的种类有多种,具体的设计一般只会使用一种(会一种基本上就可以会其他的)。所以,先看一下AXI4总线的优势。

Summary of AXI4 Benefits
AXI4 is widely adopted in Xilinx product offerings, providing benefits to Productivity,
Flexibility, and Availability:
• Productivity: By standardizing on the AXI interface, developers need to learn only a
single protocol for IP.
• Flexibility: Providing the right protocol for the application:
° AXI4 is for memory-mapped interfaces and allows high throughput bursts of up to
256 data transfer cycles with just a single address phase.
° AXI4-Lite is a light-weight, single transaction memory-mapped interface. It has a
small logic footprint and is a simple interface to work with both in design and
usage.
° 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.
• Availability: By moving to an industry-standard, you have access not only to the
Vivado IP Catalog, but also to a worldwide community of ARM partners.
° Many IP providers support the AXI protocol.
° A robust collection of third-party AXI tool vendors is available that provide many
verification, system development, and performance characterization tools. As you
begin developing higher performance AXI-based systems, the availability of these
tools is essential.

这里谈到了AXI4的效率、灵活性、可用性。简单来说,就是AXI对于设计者来说只需要知道IP协议,对于传输来说是应用程序协议,可以直接由程序调用。由于是ARM家族的,自然可以适用于各种ARM器件。这里就可以大致的了解AXI协议是什么了。AXI支持直接的硬件设计,可以由硬件描述语言构建发送和接受的模块。同时,该协议还支持APPLICATION直接调用,相当于实现了数据有硬件层向软件层跨越。对比串口协议,串口的数据只能通过软件端的库函数接受和发送,直接的软件是不能够直接访问传输中的数据的。换言之,软件无法直接操控传输。

2、AXI总线的设计思路

Both AXI4 and AXI4-Lite interfaces consist of five different channels:
• Read Address Channel
• Write Address Channel
• Read Data Channel
• Write Data Channel
• Write Response Channel

这是AXI总线的工作通道。从这里就可以看出AXI总线的复杂之处。同样对比串口,串口没有地址,数据通道的读写共用。写响应也是夹杂在数据位中。另外一个有代表性的通信协议是SCCB协议。SCCB协议的双向口具有数据、地址、响应这三个模块,加上状态线sio_e也是可以进行多机通信的。但是,显然,过于集中的数据流向限制了通信效率。而AXI作为内部总线协议,效率的考量是大于面积的。毕竟在芯片内部的布线资源要远大于IO口的资源。

作为协议,基本的功能就是数据传输。和其他协议一样,AXI的读操作也是需要读地址和读数据两个步骤。写操作需要写数据、写地址和写响应三个部分的操作。这只是单向操作。设计到多个从属设备时,情况会更加复杂。可以在后面的设计中有所体现。

3、AXI总线的开发概念

为什么会学到AXI,在ZYNQ内部集成了ARM内核,是一个可以搭载微型操作系统的内核。而FPGA被作为外设资源置于外围。这种片上系统的操作是明确的。通过FPGA设计出足够灵活的外设,将信号处理后传递到ARM,有ARM的稳定架构加工,即可快速实现各种功能。而在内部,PS和PL的连接协议就是芯片内部常用的AXI总线协议。使用这个协议的原因前面已经分析过了。

这种结构的优势是将ARM的稳定性和FPGA的灵活性融合在一起,用于实现特定的目的。所以,如果想要掌握这种设计方法,AXI总线会是躲不开的坎。你总不能用IO口去连接ARM和FPGA,这个太奢侈了。

小结一下,就是使用AXI是ARM结合FPGA的灵魂。

ARM之AXI总线协议初试的更多相关文章

  1. AXI总线协议

    AXI总线协议 (一).概述 AXI (高性能扩展总线接口,Advanced eXtensible Interface)是ARM AMBA 单片机总线系列中的一个协议,是计划用于高性能.高主频的系统设 ...

  2. zynq里面的AXI总线(2017-1-11)

    在ZYNQ中有支持三种AXI总线,拥有三种AXI接口,当然用的都是AXI协议.其中三种AXI总线分别为: AXI4:(For high-performance memory-mapped requir ...

  3. 自我生啃 AMBA AXI 总线笔记

    视频1:https://www.youtube.com/watch?v=1zw1HBsjDH8&list=PLkqJVNOiuuHtNrVaNK4O1BSgczja4obeW (What is ...

  4. AMBA总线协议AHB、APB、AXI对比分析【转】

    转自:https://blog.csdn.net/ivy_reny/article/details/56274412 一.AMBA概述    AMBA (Advanced Microcontrolle ...

  5. zedboard如何从PL端控制DDR读写(二)——AXI总线

     虽然Xilinx已经将和AXI时序有关的细节都封装起来,给出了官方IP和向导生成自定义IP,用户只需要关注自己的逻辑实现,但是还是有必要简单了解一下AXI的时序,毕竟咱是做硬件设计的. AXI(Ad ...

  6. AXI总线

    AXI(Advanced eXtensible Interface)是一种总协议,该协议是ARM公司提出的AMBA(Advanced Microcontroller Bus Architecture) ...

  7. AXI总线简介

    AXI全称Advanced eXtensible Interface,是Xilinx从6系列的FPGA开始引入的一个接口协议,主要描述了主设备和从设备之间的数据传输方式.在ZYNQ中继续使用,版本是A ...

  8. AXI总线介绍

    原帖地址:https://wenku.baidu.com/view/7c424c17e3bd960590c69ec3d5bbfd0a7956d5b9.html   1.AXI简介 AXI(Advanc ...

  9. AXI总线(转)

    AXI(Advanced eXtensible Interface)是一种总协议,该协议是ARM公司提出的AMBA(Advanced Microcontroller Bus Architecture) ...

  10. AHB总线协议

    https://blog.csdn.net/linton1/article/details/79649249 1. 简介 AHB(Advanced High Performance Bus)总线规范是 ...

随机推荐

  1. 【Unity3D】MonoBehaviour的生命周期

    1 前言 ​ Unity3D 中可以给每个游戏对象添加脚本,这些脚本必须继承 MonoBehaviour,用户可以根据需要重写 MonoBehaviour 的部分生命周期函数,这些生命周期函数由系统自 ...

  2. 2021-09-15 JavaScript中强制将某个未知类型变量转成基础数据类型

    为什么要强制将某个未知类型变量转成基础数据类型? 实际业务场景里,一个变量的数据是否合法或符合预期,会影响到自己的代码的可靠性.比如在别人使用自己写的自定义函数,而自己写的函数中的一些值是需要对入参严 ...

  3. 如何处理Long类型精度丢失问题?

    一.现象与分析: 1.1. 现象 前后端交互,当后端传一些值给前端的时候,如果是long类型,有可能会出现数字太大而前端接收不了(java中的long大于js的number)而导致数据不一致,精度会丢 ...

  4. python运算符---day04

    1.python运算符 (1)算数运算符: + - * / // % ** (2)比较运算符: > < >= <= == != (3)赋值运算符:= += -= *= /= / ...

  5. ubuntu18.04下创建虚拟环境

    准备 ubuntu18.04自带python3.6版本 安装pip3 apt install python3-pip 安装virtualenv和virtualenvwrapper pip3 insta ...

  6. Android内存优化—内存优化总结

    内存优化总结 内存问题 内存抖动:导致GC导致卡顿 内存泄漏:导致频繁GC,可用内存减少 内存溢出:导致OOM 工具排查 AS中的Profiler查看内存情况,是否锯齿状,是否持续上升 MAT排查 L ...

  7. 在ABP的模块解决方案中使用BootstrapBlazor

    1.为Study.Trade.Blazor.Server.Host引入两个包 成功后效果如下: 2.修改Study.Trade.Blazor.Server.Host的Pages目录下的_Host.cs ...

  8. 【Azure Function App】本地运行的Function发布到Azure上无法运行的错误分析

    问题描述 Azure Function部署后未执行,查看日志发现错误信息: 2023-12-19T11:12:27.145 [Verbose] Host configuration applied.2 ...

  9. 分布式事务框架seata入门

    一.简介 在近几年流行的微服务架构中,由于对服务和数据库进行了拆分,原来的一个单进程本地事务变成多个进程的本地事务,这时要保证数据的一致性,就需要用到分布式事务了.分布式事务的解决方案有很多,其中国内 ...

  10. 一文了解 Nebula Graph DBaaS 服务——Nebula Graph Cloud Service

    Nebula Graph DBaaS 作为一款 DBaaS(DataBase as s Service)的产品,Nebula Graph Cloud Service 极大地降低了研发人员使用 Nebu ...