AXI总线简介

简介: <p style="margin-top: 14px; margin-bottom: 14px; padding-top: 0px; padding-bottom: 0px; color: rgb(46, 46, 46); font-family: 微软雅黑, 'Microsoft Yahei'; font-size: 14px; line-height: 28px; border: 0px;

AXI全称Advanced eXtensible Interface,是Xilinx从6系列的FPGA开始引入的一个接口协议,主要描述了主设备和从设备之间的数据传输方式。在ZYNQ中继续使用,版本是AXI4,所以我们经常会看到AXI4.0,ZYNQ内部设备都有AXI接口。其实AXI就是ARM公司提出的AMBA(Advanced Microcontroller Bus Architecture)的一个部分,是一种高性能、高带宽、低延迟的片内总线,也用来替代以前的AHB和APB总线。第一个版本的AXI(AXI3)包含在2003年发布的AMBA3.0中,AXI的第二个版本AXI(AXI4)包含在2010年发布的AMBA 4.0之中。

AXI协议具有如下特点:
. 总线的地址/控制和数据通道是分离的;
. 支持不对齐的数据传输;
. 在突发数据传输中只需要首地址;
. 同时具有分离读/写数据通道;
. 支持显著传输访问和乱序访问;
. 更加容易进行时序收敛

AXI4包含三种接口:
. 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.

从上面的描述可以看出,AXI4协议相当于原来的AHB协议,提供高速的系统内部互连通道,可以支持burst模式,主要用于处理器访问存储等需要高速数据的场合;AXI4-Lite为外设童工单个数据传输,相当于原来的APB协议,用于访问一些低速外设;AXI4-Stream接口就像FIFO一样,数据传输的时候不需要地址,而是主从设备直接连续读写数据,主要用于如视频、高速AD、PCIe、DMA接口等需要高速数据传输的场合,跟Xilinx原来的Local Link协议类似。

AXI Interconnect
AXI协议严格的讲是一个点对点的主从接口协议,当多个外设需要互相交互数据时,我们需要加入一个AXI Interconnect模块,也就是AXI互联矩阵,作用是提供将一个或多个AXI主设备连接到一个或多个AXI从设备的一种交换机制(有点类似于交换机里面的交换矩阵)。Xilinx为我们提供了实现这种互联矩阵的IP核axi_interconnect_1,在前面的例子中,我们在XPS中可以看到。这个IP核最多可以支持16个主设备、16个从设备,如果需要更多的接口,可以多加入几个IP核。关于AXI Interconnect更多的知识,可参考Xilinx官方文档DS768。

AXI4和AXI4-Lite接口包含5个不同的通道:
. Read Address Channel
. Write Address Channel
. Read Data Channel
. Write Data Channel
. Write Response Channel

其中每个通道都是一个独立的AXI握手协议。下面两个图分别显示了读和写的模型:


ZYNQ中的AXI接口共有9个,主要用于PS与PL的互联,包含以下三个类型:
. AXI_ACP接口,是ARM多核架构下定义的一种接口,中文翻译为加速器一致性端口,用来管理DMA之类的不带缓存的AXI外设,PS端是Slave接口。
. AXI_HP接口,是高性能/带宽的AXI3.0标准的接口,总共有四个,PL模块作为主设备连接。主要用于PL访问PS上的存储器(DDR和On-Chip RAM)
. AXI_GP接口,是通用的AXI接口,总共有四个,包括两个32位主设备接口和两个32位从设备接口。

其实,在具体设计中我们往往不需要在连接这个地方做太多工作,就像上一个例子中,我们加入IP核以后,系统会自动使用AXI接口将我们的IP核与处理器连接起来,我们只需要再做一点补充就可以了。不过,这部分概念还是了解比较好。

相关实践学习
自建数据库迁移到云数据库
本场景将引导您将网站的自建数据库平滑迁移至云数据库RDS。通过使用RDS,您可以获得稳定、可靠和安全的企业级数据库服务,可以更加专注于发展核心业务,无需过多担心数据库的管理和维护。
Sqoop 企业级大数据迁移方案实战
Sqoop是一个用于在Hadoop和关系数据库服务器之间传输数据的工具。它用于从关系数据库(如MySQL,Oracle)导入数据到Hadoop HDFS,并从Hadoop文件系统导出到关系数据库。 本课程主要讲解了Sqoop的设计思想及原理、部署安装及配置、详细具体的使用方法技巧与实操案例、企业级任务管理等。结合日常工作实践,培养解决实际问题的能力。本课程由黑马程序员提供。
相关文章
|
存储 机器学习/深度学习 编译器
ARM汇编快速入门
ARM汇编快速入门
1020 0
vue2实现markdown编辑器,实现同步滚动,实时预览等功能
vue2实现markdown编辑器,实现同步滚动,实时预览等功能
|
8月前
|
缓存 前端开发 芯片
南京观海微电子---AXI总线技术简介——ZYNQ PS和PL的互联技术
AXI是Xilinx ZYNQ系列中实现ARM与FPGA高速通信的核心协议,支持Lite、4和Stream三种总线,分别适用于控制、批量传输和数据流场景。通过AXI Interconnect实现多设备互联,结合DMA等IP核,可高效完成数据交互,广泛应用于嵌入式系统开发。
南京观海微电子---AXI总线技术简介——ZYNQ PS和PL的互联技术
|
人工智能 JSON 数据管理
ShowUI:新加坡国立联合微软推出用于 GUI 自动化的视觉-语言-操作模型
ShowUI是由新加坡国立大学Show Lab和微软联合推出的视觉-语言-行动模型,旨在提升图形用户界面(GUI)助手的效率。该模型通过UI引导的视觉令牌选择和交错视觉-语言-行动流,有效减少计算成本并提高训练效率。ShowUI在小规模高质量数据集上表现出色,展现出在GUI自动化领域的潜力。
674 4
ShowUI:新加坡国立联合微软推出用于 GUI 自动化的视觉-语言-操作模型
|
数据可视化 JavaScript 前端开发
利用Postman和Apipost进行API测试的实践与优化-动态参数
在API测试中,Postman和Apipost是常用的工具。Postman内置变量功能有限,面对复杂场景时需编写JavaScript脚本,增加了维护成本。而Apipost提供丰富的内置变量、可视化动态值配置和低代码操作,支持生成真实随机数据,如邮箱、手机号等,显著提升测试效率和灵活性。对于复杂测试场景,Apipost是更好的选择,能有效降低开发与维护成本,提高测试工作的便捷性和可维护性。
|
存储 Linux Docker
跨cpu架构部署容器技术点:怎样修改Linux 的内核版本
在使用Docker 进行跨平台部署之后,我们还可以尝试进行跨架构部署。 从X86 架构上移植到 aarch64 上。
693 0
RabbitMQ实现延迟消息居然如此简单,整个插件就完事了
RabbitMQ实现延迟消息的方式有两种,一种是使用死信队列实现,另一种是使用延迟插件实现。死信队列实现我们以前曾经讲过这次我们讲个更简单的,使用延迟插件实现。
|
前端开发
Vue3基础(十si)___引入Element-plus___Vant___全局引入___按需引入___测试打包大小
本文介绍了如何在Vue3项目中引入Element-plus和Vant UI库,包括全局引入和按需引入的方法,并通过配置vite.config.js实现按需引入,最后对比了不同引入方式对项目打包大小的影响。
521 0
Vue3基础(十si)___引入Element-plus___Vant___全局引入___按需引入___测试打包大小
|
XML 开发框架 前端开发
循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(2)
循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(2)
|
计算机视觉
ONNX转换NCNN
ONNX转换NCNN
1635 0