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. centos7搭建postgresql主从(主备)架构

    本篇介绍如何在centos7系统搭建一个postgresql主备集群实现最近的HA(高可用)架构.后续更高级的HA模式都是基于这个最基本的主备搭建. 节点规划 ip 主机名 用途 192.168.18 ...

  2. Modbus协议入门

    1.Modbus协议是不是开源的,免费的? 标准.开放,用户可以免费.放心地使用Modbus协议,不需要交纳许可证费,也不会侵犯知识产权. 2.怎么传输,有线还是无线? 既可以有线传输如双绞线.光纤, ...

  3. git修改地址三种方法

    1.修改命令 git remote set-url origin [NEW_URL] 2.先删后加 git remote rm origin git remote add origin [url]3. ...

  4. 【Azure 事件中心】使用Apache Flink 连接 Event Hubs 出错 Kafka error: No resolvable bootstrap urls

    问题描述 参考Github上 Event Hub的示例代码(Using Apache Flink with Event Hubs for Apache Kafka Ecosystems : https ...

  5. NebulaGraph v3.3.0 发布:支持子图过滤、和大量性能优化

    NebulaGraph 3.3.0 支持了 GET SUBGRAPH 和 GetNeighbors 的点过滤.引入了大量性能优化,同时,开始对无 tag 顶点的支持默认关闭. 优化 优化了 k-hop ...

  6. Nebula Graph 源码解读系列|客户端的通信秘密——fbthrift

    概述 Nebula Clients 给用户提供了多种编程语言的 API 用于和 Nebula Graph 交互,并且对服务端返回的数据结构进行了重新封装,便于用户使用. 目前 Nebula Clien ...

  7. PHP项目&RCE安全&调试&追踪&代码执行&命令执行

    常见漏洞关键字 SQL注入:select.insert.update.mysql_query.mysqli等 文件上传:$_FILES.type="file".上传.move_up ...

  8. centos下配置修改hosts文件以及生效命令详解

    linux服务器hosts文件配置 hosts文件是Linux系统中一个负责IP地址与域名快速解析的文件,以ASCII格式保存在"/etc"目录下,文件名为"hosts& ...

  9. GPT Prompt

    GPT Prompt 本文总结我关于GPT prompt的一些常用模板和资源. 我常用的模板 大致模板:你是一个怎样的人,我的场景是什么,我想要什么,你需要做什么. 比如: 你是一个经验丰富的前端开发 ...

  10. Landsat 7的热红外波段有2个该如何选择?

      本文介绍Landsat 7遥感影像数据中B61.B62两个热红外波段的区别,以及研究应用时二者选择的依据.   Landsat 7遥感影像数据具有2个热红外波段,分别是Band 61与Band 6 ...