【ZYNQ】AXI4总线接口协议学习

news2024/11/23 2:48:00

建议翻看着底部的参考文档资料和本文一起辅助阅读
本文带你详细的了解AXI总线协议,并且基于官方手册,能够提高你的手册阅读能力。

什么是AXI

AXI 的英文全称是 Advanced eXtensible Interface,即高级可扩展接口,它是 ARM 公司所提出的 AMBA(Advanced Microcontroller Bus Architecture)协议的一部分

  • AMBA(Advanced Microcontroller Bus Architecture) 高级微控制器总线架构

AXI(Advanced eXtensible Interface)高级扩展接口是ARM AMBA的一部分,这是一个在1996年首次推出的微控制器巴士系列。AXI的第一个版本最早包含在2003年发布的AMBA 3.0中。2010年发布的AMBA 4.0包括了AXI的第二个主要版本,AXI4。也就是我们现在使用的AXI4接口

片上总线AMBA

随着微处理器芯片的规模越来越大,功能越来越复杂,需要一个统一的片上总线来进行管理。为此,业界出现了很多片上总线标准。其中,由ARM公司推出的AMBA片上总线受到了广大IP开发商和SoC系统集成者的青睐,已成为一种流行的工业标准片上结构。

在这里插入图片描述

  • AMBA 1只有ASB和APB协议;
  • AMBA 2引入AHB协议用于高速数据传输;
  • AMBA 3,为适应高吞吐量传输和调试引入AXI和ATB,增加高级可扩展接口,而AHB协议缩减为AHB-lite,APB协议增加了PREADY和PSLVERR,ASB由于设计复杂而不再使用;
  • AMBA 4,AXI得到了增强,引入QOS和long burst的支持,根据应用不同可选AXI4,AXI4-lite,AXI4-stream,同时为满足复杂SOC的操作一致性引入ACE和ACE-lite协议,APB和ATB也同时得到增强,比如APB加入了PPROT和PSTRB,另外为改善总线数据传输引入QVN协议;
  • 适应更加复杂的高速NOC设计,引入环形总线协议,推出的AMBA CHI协议。

AXI接口

AXI4 协议支持以下三种类型的接口:
1、AXI4:用于满足高性能存储器映射需求
2、AXI4-Lite:简化版的 AXI4 接口,用于较少数据量的存储映射通信。
3、AXI4-Stream:用于高速数据流传输,非存储器映射 它不需要地址通道。

在这里插入图片描述

AXI应用

AXI4 协议支持突发传输,主要用于处理器访问存储器等需要指定地址的高速数据传输场景。AXI-Lite为外设提供单个数据传输,主要用于访问一些低速外设中的寄存器。而 AXI-Stream 接口则像 FIFO 一样,数据传输时不需要地址,在主从设备之间直接连续读写数据,主要用于如视频、高速 AD、PCIe、DMA 接口等需要高速数据传输的场合。

  • AXI4适用于内存映射接口,并允许高吞吐量爆发,只用一个地址数据,最高可达256个数据传输周期,

ZYNQ

在ZYNQ中 AXI总线用于PS 和 PL 之间进行数据交互

zynq的ps上共留了9个AXI接口,其中两个GP AXI master、两个GP AXI slave、四个HP AXI slave、以及一个ACP AXI slave。
在这里插入图片描述

接口类型如下:
在这里插入图片描述
第一个字母“M”表示 PS 是主机,而第一个字母“S”表示 PS 是从机。

  • 通用 AXI(General Purpose AXI):一条 32 位数据总线,适合 PL 和 PS 之间的中低速通信。
  • 加速器一致性端口(Accelerator Coherency Port):在 PL 和 APU 内的 SCU 之间的单个异步连接,
    总线宽度为 64 位。这个端口用来实现 APU cache 和 PL 的单元之间的一致性,PL 是做主机的。
  • 高性能端口(High Performance Ports):四个高性能 AXI 接口,带有 FIFO 缓冲来提供“批量”读
    写操作,并支持 PL 和 PS 中的存储器单元的高速率通信。数据宽度是 32 或 64 位,在四个接口中 PL 都是
    做主机的。

STM32

在STM32H7中 ①是 64 位的 AXI 总线矩阵,在 D1 域,②和③都是 32 位的 AHB 总线矩阵,不同的是②在 D2 域,而③是在 D3 域
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/624dd8c51784415a8423f0c2e489a9c8.png
AXI总线矩阵D1域中的各个外设是挂在 64 位 AXI 总线组成 6*7 的矩阵上。6 个从接口端外接的主控分别是 LTDC、DMA2D、MDMA、SDMMC1、AXIM 和 D2-to-D1 AHB 总线。7 个主接口端外接的从设备分别是 D1-to-D2 AHB 总线、 AHB3 总线、Flash A、Flash B、AXI SRAM 、QSPI 和FMC。另外 AHB3 再分支出 APB3 总线。
在这里插入图片描述

AXI接口

AXI4 和 AXI4-Lite接口包含5个不同的通道:两个读通道和三个写通道。

两个读通道:读地址通道(read address channel)、读数据通道(read data channel);

三个写通道:写地址通道(write address channel)、写数据通道(write data channel)、写响应通道(write response channel);

通道数据功能
读地址通道(read address channel)主机->从机主机要读取从机数据的地址
写地址通道(write address channel)主机->从机主机要写入从机数据的地址
写数据通道(write data channel)主机->从机主机要写入从机的数据
读数据通道(read data channel)从机->主机从机返回被读取的数据到主机
写响应通道(write response channel)从机->主机从机返回响应信号到主机

在这里插入图片描述

基于VALID/READY的握手机制数据传输协议,传输源端使用VALID表明地址/控制信号、数据是有效的,目的端使用READY表明自己能够接受信息。数据总线可为(8/16/32/64/128/256/512/1024bit),最大为单次传输一个字节的数据。

时钟和复位

时钟

ACLK,全局时钟信号,所有输入信号都在时钟上升沿采样,所有输出信号都必须发生在时钟上升沿之后。

复位

协议规定复位为低电平有效

。需要注意的是ARVALID,AWVALID,WVALID,RVALID,BVALID(这几个信号的含义会在后面说明)在复位时必须保证是处于低电平的。

在这里插入图片描述

AXI信号命名规则 A 表示ADDR地址 W表示write写入 R表示read读取 再加上后面的具体类型 就是一个完整的信号名

比方说AWSIZE就是主机向从机发送每次突发传输的字节数

AMBA AXI and ACE Protocol Specification AXI3, AXI4, and AXI4-Lite ACE and ACE-Lite文档的A2.1-2.7页

写地址通道信号

信号名描述
AWID主机写地址ID ,用来标志一组写信号
AWADDR主机写地址 ,给出一次写突发传输的写地址
AWLEN主机突发长度,给出突发传输的次数
AWSIZE主机突发大小,给出每次突发传输的字节数
AWBURST主机突发类型
AWLOCK主机总线锁信号,可提供操作的原子性
AWCACHE主机内存类型,表明一次传输是怎样通过系统的
AWPROT主机保护类型,表明一次传输的特权级及安全等级
AWQOS主机质量服务QoS
AWREGION主机区域标志,能实现单一物理接口对应的多个逻辑接口
AWUSER主机用户自定义信号
AWVALID主机有效信号,表明此通道的地址控制信号有效
AWREADY从机表明“从”可以接收地址和对应的控制信号

写数据通道信号

信号名描述
WID主机一次写传输的ID tag
WDATA主机写数据
WSTRB主机写数据有效的字节线,用来表明哪8bits数据是有效的
WLAST主机表明此次传输是最后一个突发传输
WUSER主机用户自定义信号
WVALID主机写有效,表明此次写有效
WREADY从机表明从机可以接收写数据

读地址通道信号

信号名描述
ARID主机读地址ID,用来标志一组写信号
ARADDR主机读地址,给出一次写突发传输的读地址
ARLEN主机突发长度,给出突发传输的次数
ARSIZE主机突发大小,给出每次突发传输的字节数
ARBURST主机突发类型
ARLOCK主机总线锁信号,可提供操作的原子性
ARCACHE主机内存类型,表明一次传输是怎样通过系统的
ARPROT主机保护类型,表明一次传输的特权级及安全等级
ARQOS主机质量服务QoS
ARREGION主机区域标志,能实现单一物理接口对应的多个逻辑接口
ARUSER主机用户自定义信号
ARVALID主机有效信号,表明此通道的地址控制信号有效
ARREADY从机表明“从”可以接收地址和对应的控制信号

读数据通道信号

信号名描述
RID从机读ID tag
RDATA从机读数据
RRESP从机读响应,表明读传输的状态
RLAST从机表明读突发的最后一次传输
RUSER从机用户自定义
RVALID从机表明此通道信号有效
RREADY主机表明主机能够接收读数据和响应信息

写响应通道信号

信号名描述
BID从机写响应ID tag
BRESP从机写响应,表明写传输的状态
BUSER从机用户自定义
BVALID从机写响应有效
BREADY主机表明主机能够接收写响应

brust突发

Burst:是一种根据单个地址完成多个数据项传输的过程,每一个传输的数据项都被称为 Beat(Transfer)。由于只有一个地址传输,突发中每个 Beat (Transfer)的地址都是基于传输类型 (INCR、FIXED或WRAP) 计算得到的。
Beat(Transfer):是AXI突发中的单个数据传输。

AXI协议是基于burst的,主机只给出突发传输的第一个字节的地址,从机必须计算突发传输后续的地址。突发传输不能跨4KB边界(防止突发跨越两个从机的边界,也限制了从机所需支持的地址自增数)。

突发长度

  • 突发长度 ARLEN[7:0]决定读传输的突发长度,AWLEN[7:0]决定写传输的突发长度。
  • AXI4扩展突发长度支持INCR突发类型为1~256次传输,对于其他的传输类型依然保持1~16次突发传输(Burst_Length=AxLEN[7:0]+1)

传输规则 wraping burst ,burst长度必须是2,4,8,16, burst不能跨4KB边界,不支持提前终止burst传输

  • AMBA AXI and ACE Protocol Specification AXI3, AXI4, and AXI4-Lite ACE and ACE-Lite文档的A3-44页

在这里插入图片描述

突发字节

  • 突发字节
    AWSIZE[2:0]:表示一个 transfer 中的 Bytes 个数。 3’b000=>1 ,3’b001=>2 ,3’b010=>4 ,3’b011=>8 ,3’b100=>16,3’b101=>32 ,3’b110=>64 ,3’b111=>128
    在这里插入图片描述

突发类型

  • 突发类型

1.FIXED:突发传输过程中地址固定,用于FIFO访问

2.INCR:增量突发,传输过程中,地址递增。增加量取决AxSIZE的值。 使用最多的为INCR类型

3.WRAP:回环突发,和增量突发类似,但会在特定高地址的边界处回到低地址处。回环突发的长度只能是2,4,8,16次传输,传输首地址和每次传输的大小对齐。最低的地址整个传输的数据大小对齐。回环边界等于(AxSIZE*AxLEN)

在这里插入图片描述
在这里插入图片描述

AXI握手

基于VALID/READY的握手机制数据传输协议,传输源端(source)使用VALID表明地址/控制信号、数据是有效的,目的端(destination)使用READY表明自己能够接受信息。

只有当 VALID 和 READY 信号都为高电平并且时钟存在上升沿时,才会视为有效传输。

所有的五个通道都是通过相同的VALID/REDAY握手处理来传输地址,数据和控制信息。

双向握手机制意味着主机和从机之间传输数据时,都可以控制传输速率。

握手过程,所谓握手过程就是 source 知道 destination 准备好了,destination 也知道 source 准备好了,具体来说就是通过 VALID 以及 READY 来互相确定。

下图在T1-T3时刻进行了数据传输,但是数据只在T2-T3时刻数据有效,目的端(destination)在T3时刻才能接受数据
在这里插入图片描述
下图在T2-T3时刻进行了数据传输,数据在T2-T3时刻数据有效,目的端(destination)在T1-T3时刻能接受数据,传输源端(source)在T2-T3时刻才发送数据
在这里插入图片描述
下图在T2-T3时刻进行了数据传输,数据在T1-T2时刻数据有效
在这里插入图片描述

AMBA AXI and ACE Protocol Specification AXI3, AXI4, and AXI4-Lite ACE and ACE-Lite文档的A3-37页和文档的A3-38页
在这里插入图片描述

AXI写响应

  • RRESP[1:0],读传输

  • BRESP[1:0],写传输

读传输的响应信息是附加在读数据通道上的,写传输的响应在写响应通道。

定义了突发的类型 2’b00=>OKAY ,2’b01=>EXOKAY , 2’b10=>SLVERR,2’b11=>DECERR。

OKAY:正常访问成功,还可以指示独占访问失败。
EXOKAY:指示独占访问的部分已成功。
SLVERR:从机错误。表明访问已经成功到了从机,但从机返回一个错误的情况给主机。
DECERR:主机没找到从机,表明没有对应的从机地址。

  • AMBA AXI and ACE Protocol Specification AXI3, AXI4, and AXI4-Lite ACE and ACE-Lite文档的A3-54页

在这里插入图片描述

TLAST信号

在具有帧或者包概念的流式传输中,TLAST信号,用来表示一个包的结尾。例如发送大小为32字节的包,在发送第32个字节的时候,可以把TLAST信号拉高,来表示这个包发送完了。时序如下:
在这里插入图片描述
AXI读数据通道和写数据通道还包括LAST信号,用来表示最后一个数据的传输

AXI信号时序

AXI有规定信号的时序,就像上面复位的时候部分信号必须为低电平一样

从设备必须等待发出 ARVALID 和 ARREADY 断言后,才能发出 RVALID 断言以指示该有效数据可用

单箭头的指向信号和起始信号没有必须的先后顺序,双箭头的指向信号必须在双箭头的起始信号拉高之后进行拉高

在这里插入图片描述

在这里插入图片描述

-详细的在 AMBA AXI and ACE Protocol Specification AXI3, AXI4, and AXI4-Lite ACE and ACE-Lite文档的A3.3.1

写数据和读数据

AXI 读数据需要在 2 条读取信道上发生多次传输。

  • 首先,主机 (Master)通过 读地址通道 (Address Read Channel) 发送读地址和控制信号到从机 (Slave),
  • 然后,此地址的数据通过读数据通道 (Read data channel) 从从机发送到主机。
  • 当 RLAST 拉高时,表示此时从机返回的 RDATA 是最后一个数据

根据下图所示,每个地址中可发生多次数据传输。此类型的传输事务称为突发 (burst)。

在这里插入图片描述
读数据波形图:
在这里插入图片描述

AXI 写数据需要在 3 条读取信道上多次传输。

  • 首先,主机 (Master)通过 写地址通道 (Address Write Channel) 发送读地址和控制信号到从机 (Slave),
  • 然后,此地址的数据通过写数据通道 (Write data channel) 从主机发射到从机。
  • 最后,写入响应通过写响应通道 (Write Response Channel) 从从机发送到主机,以指示传输是否成功。
    在这里插入图片描述
    写数据波形图:
    在这里插入图片描述

参考资料:

UG1037 Vivado AXI Reference Guide:赛灵思官方文档AXI参考手册UG1037(2017V4),这个是Xilinx官方的文档手册,参考必备。

AMBA AXI and ACE Protocol Specification AXI3, AXI4, and AXI4-Lite ACE and ACE-Lite:这个是ARM的官方手册IHI0022D,对AXI协议有一个更详细的讲解,本文主要也是参考这个文档

AMBA 4 AXI4-Stream Protocol Specification:这个是 ARM 讲解 AXI-Stream 的官方手册,需要注意的是 Xilinx 的 IP 核在 Stream 部分与 AMBA 的协议有一点区别。

AMBA AXI4 接口协议 赛灵思官方对AXI总线的简介,整体的概况了AXI总线的优势和三种类型,可以阅读一下

请添加图片描述
请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1307146.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据探索和模型建构

数据探索:观察数据之间的关系 分别判断 性别(sex)、船舱等级(Pclass)、年龄(Age)、有无父母子女(Parch)、有无兄弟姐妹(SibSp)、票价(Fare) 和 港口(Embarked)等因素和 存活(Survived)之间的关系 In [27]: sex_survived_cor train_data[[Sex,Survived]] sex_sur…

安科瑞出席宁波市建筑电气2023年年会-安科瑞 蒋静

12月1日,宁波市建筑电气2023年年会在宁波市海曙天港禧悦酒店成功举办。作为推动宁波市建筑电气行业技术发展的专业交流会,吸引了建筑电气行业领导、专家、设计师、厂家等300多名代表参会。期间,安科瑞电气股份有限公司携智能楼宇、智慧校园、…

HTML中表格的语法及使用(详解)

Hi i,m JinXiang ⭐ 前言 ⭐ 本篇文章主要介绍HTML中表格的语法及详细使用以及部分理论知识 🍉欢迎点赞 👍 收藏 ⭐留言评论 📝私信必回哟😁 🍉博主收将持续更新学习记录获,友友们有任何问题可以在评论区留…

骨传导耳机十大品牌排行榜,骨传导耳机品牌排名哪个好

骨传导蓝牙耳机的使用越来越广泛,无论是在户外运动还是在办公室工作,它都能为你带来自由的音乐体验。在本文中,我们将为你介绍十款TOP级骨传导蓝牙耳机,这些品牌在市场上拥有良好的口碑和广泛的使用者。通过本下面的选购指南&…

Buck电路 (PWM实现与闭环反馈) 电力系统仿真

Buck电路 (PWM实现与闭环反馈) Buck电路是降压型的DC-DC变换器。 三角波: 闭环控制怎么实现呢? 比例积分微分控制(proportional-integral-derivative control),简称PID控制,是最早…

祝贺!2023美丽汉字小达人市级比赛和区级自由报名获奖名单发布

昨天,汉字小达人的主办方《中文自修》杂志社在官网发布了两个公示:《“中文自修杯”第十届上海市小学生“美丽汉字小达人”市级活动获奖名单公示》、《“中文自修杯”第十届上海市小学生“美丽汉字小达人”区级活动“自由报名”获奖名单公示》。 这两份名…

mybatis查询结果resultMap映射vo源码分析

概述 mybatis是一个常用的持久层框架;通常搭配mysql使用; 在将查询结果映射成一个复杂vo的时候,通常会用到resultMap,在其中嵌套association和collection等操作;将一个复杂查询拆分成简单查询; 在vo中的变…

「玩转 TableAgent 数据智能分析」实战数据分析演练

文章目录 前言TableAgent 功能亮点人人都是数据分析师融合创新应用的新成果 TableAgent 使用介绍登陆功能介绍申请认证 实战数据集分析一导入 CSV 文件数据发起提问TableAgent 应答结果贴切的服务推荐问题提问 实战数据集分析二分析结果分析哪个城市的未来人口最多 总结 TableA…

proteus元件合集(一)

LCD LM018L​​ 绿色的LCD寻找方法: 直流电压源 直流电压源寻找方法: 滑动变阻器 滑动变阻器寻找方法: 注意:它出来之后会自动出现那两个红色的。那是电源。

C#基础面试题集

C#基础 1. 简述值类型和引用类型有什么区别2. C# String类型比 stringBuilder 类型的优势是什么?3.面向对象的三大特点4.请简述private,public,protected,internal的区别5.结构体和类6.请描述Interface与抽象类之间的不同7.在类的构造函数前…

虚幻学习笔记9—C++代码变量与蓝图的通信

一、前言 C代码中通过关键字“UPROPERTY”来讲所需要的变量、方法或枚举反射暴露给蓝图,实现C和蓝图之间的通信。所有实现的变量都在一个名为“MyPawn1”类中,同时提到的蓝图是根据这个类创建的。同时这个Pawn类为场景中的默认Pawa类。 图1.1.1 文中提到…

L1-039:古风排版

题目描述 中国的古人写文字&#xff0c;是从右向左竖向排版的。本题就请你编写程序&#xff0c;把一段文字按古风排版。 输入格式&#xff1a; 输入在第一行给出一个正整数N&#xff08;<100&#xff09;&#xff0c;是每一列的字符数。第二行给出一个长度不超过1000的非空字…

量化交易与人工智能:技术的交叉引发金融市场的变革

量化交易&#xff08;Quantitative Trading&#xff09;是利用数学模型和统计分析来进行投资决策的一种交易策略。而人工智能技术的快速发展为量化交易带来了全新的机遇和挑战。本文将探讨人工智能在量化交易领域的应用及其对金融市场的变革。 在传统的投资交易中&#xff0c;决…

Java连接数据库的各种细节错误(细节篇)

目录 前后端联调&#xff08;传输文件&#xff09; ClassNotFoundException: SQLException: SQL语法错误: 数据库连接问题: 驱动问题: 资源泄露: 并发问题: 超时问题: 其他库冲突: 配置问题: 网络问题: SSL/TLS问题: 数据库权限问题: 驱动不兼容: 其他未知错误…

C语言学习day02:数据结构、变量和常量、标识符

数据类型&#xff1a; 常量和变量以及宏文件注意、占位符拓展&#xff1a; #include<stdio.h> 宏定义常量 没有和; #define PI 3.14159圆的面积 spi * r * r 圆的周长 lpi * 2 * r int main() {常量piconst数据类型 常量名值const float pi 3.14159;在定义局部变量可以…

Kyligence 荣登甲子光年 2023 AIGC 技术应用领域最具商业潜力榜

近日&#xff0c;「2023甲子引力年终盛典致追风赶月的你」在北京成功举办。作为中国科技产业智库&#xff0c;「甲子光年」在年终盛典现场颁布多项榜单&#xff0c;旨在表彰2023年度在科技产业各细分赛道上拥有核心技术实力&#xff0c;并在商业化上取得卓越成绩的优秀科技企业…

亚马逊云科技:大语言模型的前沿探索与应用革新

导言&#xff1a; 近年来&#xff0c;随着科技的飞速发展&#xff0c;大语言模型成为人工智能领域的一颗璀璨明珠。在这个信息爆炸的时代&#xff0c;大语言模型以其强大的自学习能力和广泛的应用领域引起了广泛关注。作为亚马逊云科技的前沿技术之一&#xff0c;本文将深入探…

Python房价分析(三)支持向量机SVM分类模型

目录 1 数据预处理 1.1 房价数据介绍 1.2 数据预处理 2 SVM模型 2.1 模型概述 2.2 核函数选择 2.3 建模步骤 2.4 参数搜索过程 3模型评估 3.1 模型评估结果 3.2 混淆矩阵 3.3 绘制房价类别三分类的ROC曲线和AUC数值 3.4 模型比较 总结 往期精彩内容&#xff1a; …

进程线程。

1> 使用有名管道&#xff0c;完成两个进程的相互通信 #include <myhead.h> int main(int argc, const char *argv[]) {if(argc!5){puts("输入错误请重新输入");return -1;}pid_t pid-1;pidfork();if(pid>0){int wfd-1;if((wfdopen(argv[1],O_WRONLY))-1…

PPT插件-好用的插件-插入媒体-大珩助手

批量媒体 包含批量视频、批量音频、批量图片&#xff0c;可实现从光标所在的位置开始&#xff0c;每页插入一个视频、一个音频、一张图片&#xff0c;且图片和视频的尺寸与当前幻灯片尺寸一致 插入文本 包含黑字无底、白字红底、白字黛底、白字绿底、白字蓝底预设一键文本&am…