ARM之AXI总线协议初试
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总线协议初试的更多相关文章
- AXI总线协议
AXI总线协议 (一).概述 AXI (高性能扩展总线接口,Advanced eXtensible Interface)是ARM AMBA 单片机总线系列中的一个协议,是计划用于高性能.高主频的系统设 ...
- zynq里面的AXI总线(2017-1-11)
在ZYNQ中有支持三种AXI总线,拥有三种AXI接口,当然用的都是AXI协议.其中三种AXI总线分别为: AXI4:(For high-performance memory-mapped requir ...
- 自我生啃 AMBA AXI 总线笔记
视频1:https://www.youtube.com/watch?v=1zw1HBsjDH8&list=PLkqJVNOiuuHtNrVaNK4O1BSgczja4obeW (What is ...
- AMBA总线协议AHB、APB、AXI对比分析【转】
转自:https://blog.csdn.net/ivy_reny/article/details/56274412 一.AMBA概述 AMBA (Advanced Microcontrolle ...
- zedboard如何从PL端控制DDR读写(二)——AXI总线
虽然Xilinx已经将和AXI时序有关的细节都封装起来,给出了官方IP和向导生成自定义IP,用户只需要关注自己的逻辑实现,但是还是有必要简单了解一下AXI的时序,毕竟咱是做硬件设计的. AXI(Ad ...
- AXI总线
AXI(Advanced eXtensible Interface)是一种总协议,该协议是ARM公司提出的AMBA(Advanced Microcontroller Bus Architecture) ...
- AXI总线简介
AXI全称Advanced eXtensible Interface,是Xilinx从6系列的FPGA开始引入的一个接口协议,主要描述了主设备和从设备之间的数据传输方式.在ZYNQ中继续使用,版本是A ...
- AXI总线介绍
原帖地址:https://wenku.baidu.com/view/7c424c17e3bd960590c69ec3d5bbfd0a7956d5b9.html 1.AXI简介 AXI(Advanc ...
- AXI总线(转)
AXI(Advanced eXtensible Interface)是一种总协议,该协议是ARM公司提出的AMBA(Advanced Microcontroller Bus Architecture) ...
- AHB总线协议
https://blog.csdn.net/linton1/article/details/79649249 1. 简介 AHB(Advanced High Performance Bus)总线规范是 ...
随机推荐
- 【Unity3D】立方体纹理(Cubemap)和天空盒子(Skybox)
1 立方体纹理(Cubemap) 本文完整资源见 → 立方体纹理(Cubemap)和天空盒子(Skybox) . 1)立方体纹理简介 立方体纹理是指由上.下.左.右.前.后 6 张纹理组成 ...
- vue+antv g6+element-ui完整流程图
最近一直在研究流程图相关的技术,一次在逛GitHub时发现了一个技术栈为vue+g6+element-ui的项目,基础功能完好,如node与edge的托拉拽,主界面如下:
- Detours 的使用
Detours 是一个用于在 ARM, ARM64, X86, X64 和 IA64 机器上拦截二进制函数的库. Detours 最常用来拦截应用程序中的 win32 api 调用,比如添加调试工具. ...
- 使用TLP对Linux系统进行充电保护
https://zhuanlan.zhihu.com/p/65546444 TLP:一个可以延长 Linux 笔记本电池寿命的高级电源管理工具 https://blog.csdn.net/zxw781 ...
- 文心一言 VS 讯飞星火 VS chatgpt (204)-- 算法导论15.3 3题
三.考虑矩阵链乘法问题的一个变形:目标改为最大化矩阵序列括号化方案的标量乘法运算次数,而非最小化.此问题具有最优子结构性质吗?需要写代码的时候,请用go语言. 文心一言,代码正常运行: 首先,我们要明 ...
- 【Azure 存储服务】Azure Storage Account 下的 Table 查询的性能调优
问题描述 Azure Storage Account 下的 Table 查询的性能调优? 问题解答 因为Azure Storage Table服务(表服务) 与常规的关系型数据库不一样(例如:MySQ ...
- C++ Qt开发:QHostInfo主机地址查询组件
Qt 是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍如何运用QHo ...
- springl课程整理,图片文档
学习spring第一步,导入坐标 注入案例 还能给bean取一个或多个别名.格式如下name = "xxx,ooo" 工厂方法也能不用new 造方法 工厂类方法用下面方法 如果不用 ...
- 简单实用算法——二分查找法(BinarySearch)
目录 算法概述 适用情况 算法原理 算法实现(C#) 实际应用:用二分查找法找寻边界值 参考文章 算法概述 二分查找(英语:binary search),也叫折半查找(英语:half-interval ...
- K8s中Labels(标签)和Annotations(注解)对比
在Kubernetes中,Labels(标签)和Annotations(注解)都是用于为资源对象添加元数据的机制,但它们在用途.选择能力以及数据形式上存在一些关键的区别. 首先,Labels主要用于标 ...