AXI总线概述

article/2025/10/18 14:43:44

AXI(Advanced eXtensible Interface)是一种总线协议,该协议是ARM公司提出的AMBA3.0中最重要的部分,是一种面向高性能、高带宽、低延迟的片内总线。AMBA4.0将其修改升级为AXI4.0。

    AMBA4.0 包括AXI4.0、AXI4.0-lite、ACE4.0、AXI4.0-stream。

    AXI4.0-lite是AXI的简化版本,ACE4.0 是AXI缓存一致性扩展接口,AXI4.0-stream是ARM公司和Xilinx公司一起提出,主要用在FPGA进行以数据为主导的大量数据的传输应用;

1.简介

1.1 AXI协议特点
AMBA AXI协议支持支持高性能、高频率系统设计

  • 适合高带宽低延时设计
  • 无需复杂的桥就能实现高频操作
  • 能满足大部分器件的接口要求
  • 适合高初始延时的存储控制器
  • 提供互联架构的灵活性与独立性
  • 向下兼容已有的AHB和APB接口

关键特点:

  • 分离的地址/控制、数据相位
  • 使用字节选通,支持非对齐的数据传输
  • 基于burst传输,只需传输首地址
  • 读、写数据通道分离,能提供低功耗DMA
  • 支持多种寻址方式
  • 支持乱序传输
  • 易于添加寄存器级来进行时序收敛
  • 支持outstanding AXI可以连续发送多个突发传输的首地址而无需等待之前的突发传输完成,这有助于流水处理transaction

1.2 AXI读写架构 

AXI协议是基于burst的传输,并且定义了以下5个独立的传输通道:读地址通道、读数据通道、写地址通道、写数据通道、写响应通道
    地址通道携带控制消息,用于描述被传输的数据属性;数据传输使用写通道来实现master到slave的传输,slave使用写响应通道来完成一次写传输;读通道用来实现数据从slave到master的传输。

读架构

写架构

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

  • 读/写地址通道:读、写传输每个都有自己的地址通道,对应的地址通道承载着对应传输的地址控制信息;
  • 读数据通道:读数据通道承载着读数据和读响应信号包括数据总线(8/16/32/64/128/256/512/1024 bit)和指示读传输完成的读响应信号;
  • 写数据通道:写数据通道的数据信息被认为是缓冲(buffered)了的,master无需等待slave对上次写传输的确认即可发起一次新的写传输。写通道包括数据总线(8/16...1024 bit)和字节线(用于指示8 bit 数据信号的有效性);
  • 写响应通道:slave使用写响应通道对写传输进行响应。所有的写传输需要写响应通道的完成信号;
     
通道名称通道功能数据流向
read address读地址通道主机->从机
read data读数据通道(包括数据通道和读响应通道)从机->主机
write address写地址通道主机->从机
write data写数据通道(包括数据通道和每8bit一个byte的写数据有效信号)主机->从机
write response写响应通道从机->主机

 

1.3 接口和互联
    AXI协议提供单一的接口定义,能用在下述三种接口之间:master/interconnect、slave/interconnect、master/slave。
可以使用以下几种典型的系统拓扑架构:

  • 共享地址与数据总线
  • 共享地址总线,多数据总线
  • multilayer多层,多地址总线,多数据总线

    在大多数系统中,地址通道的带宽要求没有数据通道高,因此可以使用共享地址总线,多数据总线结构来对系统性能和互联复杂度进行平衡;

寄存器片(Register Slices)
每个AXI通道使用单一方向传输信息,并且各个通道直接没有任何固定关系。因此可以可以在任何通道任何点插入寄存器片,当然这会导致额外的周期延迟。
使用寄存器片可以实现周期延迟(cycles of latency)和最大操作频率的折中;使用寄存器片可以分割低速外设的长路径

2. 信号描述

表1 全局信号

信号名来源描述
ACLKsystem clock全局时钟信号
ARESTnsystem reset全局复位信号,低有效

 表2 写地址通道信号 

信号名来源描述
AWIDmaster写地址ID(用于区分该地址属于哪个写地址组)
AWADDRmaster写地址
AWLENmaster突发长度
AWSIZEmaster突发尺寸(每次突发传输的最长byte数)
AWBURSTmaster突发方式(FIXED,INCR,WRAP)
AWCACHEmaster存储类型(标记系统需要的传输类型)
AWPROTmaster保护模式
AWQOSmasterQoS标识符
AWREGIONmasterregion标识符(当slave有多种逻辑接口时标识使用的逻辑接口)
AWUSERmaster用户自定义信号
AWVALIDmaster写地址有效信号(有效时表示AWADDR上地址有效)
AWREADYmaster写从机就绪信号(有效时表示从机准备好接收地址)

 表3 写数据通道信号

信号名来源描述
WDATAmaster写数据
WSTRBmaster数据段有效(标记写数据中哪几个8位字段有效)
WLASTmasterlast信号(有效时表示当前为突发传输最后一个数据)
WUSERmaster用户自定义信号
WVALIDmaster写有效信号(有效时表示WDATA上数据有效)
WREADYslave写ready信号(有效时表示从机准备好接收数据)

表4 写响应通道信号

信号名来源描述
BIDslave响应ID
BRESPslave写响应
BUSERslave用户自定义信号
BVALIDslave写响应信号有效
BREADYmaster写响应ready(主机准备好接受写响应信号)

表5 读地址通道信号

信号名来源描述
ARIDmaster读地址ID
ARADDRmaster读地址
ARLENmaster突发长度
ARSIZEmaster突发尺寸(每次突发传输的byte数)
ARBURSTmaster突发类型(FIXED,INCR,WRAP)
ARCACHEmaster存储类型
ARPROTmaster保护类型
ARQOSmasterQoS标识符
ARREGIONmaster区域标识符
ARUSERmaster用户自定义
ARVALIDmaster读地址有效(有效时表示ARADDR上地址有效)
ARREADYslave写有效信号(有效时表示从机准备好接收读地址)

表6 读数据通道信号

信号名来源描述
RIDslave读ID标签
RDATAslave读数据
RRESPslave读响应
RLASTslave有效时表示为突发传输的最后一个
RUSERslave用户自定义
RVALIDslave读数据有效信号
RREADYmaster主机就绪信号(有效时表示)

表7 低功耗接口信号

信号名来源描述
CSYSREQClock controller该信号有效时,系统退出低功耗模式
CSYSACKPeripheral device退出低功耗模式应答信号
CACTIVEPeripheral device外设申请时钟信号

3. 读写传输

3.1 握手过程

    5个传输通道均使用VALID/READY信号对传输过程的地址、数据、控制信号进行握手。使用双向握手机制,传输仅仅发生在VALID、READY同时有效的时候

  • VALID信号表示地址/数据/应答信号总线上的信号是有效的,由传输发起方控制
  • READY信号表示传输接收方已经准备好接收,由传输接收方控制

下图是几种握手机制:

VALID和READY的先后关系具有三种情况:

  • VALID先有效,等待READY有效后完成传输(VALID一旦有效后在传输完成前不可取消)
  • READY先有效,等待VALID有效后完成传输(READY可以在VALID有效前撤销)
  • VALID和READY同时有效,立刻完成传输

此外,需要注意的是允许READY信号等待VALID信号再有效,即即使从机准备好,也可以不提供READY信号,等到主机发送VALID信号再提供READY信号。对应的VALID信号不允许等待READY信号,即不允许VALID等待READY信号拉高后再拉高,否则容易产生死锁现象

命令通道握手(读地址,写地址,写响应)

  • 仅当地址等信息有效时,才拉高VALID,该VALID必须保持直到传输完成(READY置位)
  • READY默认状态不关心,仅当准备好接收时拉高READY

数据通道握手(写数据和读数据)

  • 突发读写模式下,仅数据信息有效时才拉高VALID,该VALID必须保持直到传输完成。当突发传输最后一个数据发送时拉高LAST信号
  • READY默认状态不关心,仅当准备好接收时拉高READY

3.2 通道顺序

 传输中,通道传输的先后有以下规定

  • 写响应通道传输必须在写操作完成以后进行
  • 读数据通道传输必须在读地址通道传输后进行
  • 必须遵循一系列的状态依赖关系

读操作顺序 

上图为读操作的依赖关系,ARREADY可以等待ARVALID信号,RVALID必须等待ARVALID和ARREADY同时有效后(一次地址传输发生)才能能有效;

写操作顺序

AXI3中写操作中唯一的强依赖关系是写响应通道BVALID,仅当WVALID和WREADY信号同时有效(数据传输完成)且WLAST信号有效(突发传输的最后一个数据传输完成)后才会被置位;

在AXI4中,定义了额外的依赖关系,即BVALID必须依赖AWVALID、AWREADY、WVALID和WREADY信号

3.数据结构

3.1.地址通道数据结构

AXI总线是基于突发传输的总线,若主机要开始一次突发传输,需要传输一次地址和相关控制信号,之后从机自动计算地址,但一次突发传输的地址范围不能跨越4KB

3.1.1.突发传输信息

3.1.1.1.突发长度(AxLEN)

突发长度为每次突发传输的传输次数,范围限制1~16(AXI4增量模式1~256)且不能跨越4kb的地址空间,每次突发传输不允许提前终止(可以通过关闭所有数据字段的方式使一段传输数据无效,但传输行为必须完成)。每次传输的突发长度为AxLEN[3:0] + 1(AXI增量模式AxLEN[7:0] + 1)

  • ARLEN[7:0]:读地址通道的突发长度接口
  • AWLEN[7:0]:写地址通道的突发长度接口

对于回卷模式突发传输,突发长度仅能是2,4,8或16。

3.1.1.2.突发尺寸(AxSIZE)

突发尺寸为每次传输的byte数量,与突发传输的地址预测相关性很强。每次的突发尺寸不能超过数据通道的宽度;若突发尺寸小于数据通道宽度,需要指定哪些位数是有效的。突发尺寸为2^AxSIZE[2:0]^。

  • ARSIZE[2:0]:读地址通道突发尺寸
  • AWSIZE[2:0]:写地址通道突发尺寸

3.1.1.3.突发类型(AxBURST)

AXI支持三种突发类型:

  • FIXED(AxBURST[1:0]=0b00):固定突发模式,每次突发传输的地址相同
  • INCR(AxBURST[1:0]=0b01):增量突发模式,突发传输地址递增,递增量与突发尺寸相关
  • WRAP(AxBURST[1:0]=0b10):回卷突发模式,突发传输地址可溢出性递增,突发长度仅支持2,4,8,16。地址空间被划分为长度【突发尺寸*突发长度】的块,传输地址不会超出起始地址所在的块,一旦递增超出,则回到该块的起始地址

3.1.2.存储类型(AxCACHE)

AXI4可支持不同的存储类型,AxCACHE[3:0]用于描述不同的存储类型,如下图所示

ARCACHE[3:0]AWCACHE[3:0]Memory type
00000000Device Non-bufferable
00010001Device Bufferable
00100010Normal Non-cacheable Non-bufferable
00110011Normal Non-cacheable Bufferable
10100110Write-through No-allocate
1110 (0110)0110Write-through Read-allocate
10101110 (1010)Write-through Write-allocate
11101110Write-through Read and Write-allocate
10110111Write-back No-allocate
1111(0111) 0111Write-back Read-allocate
10111111 (1011)Write-back Write-allocate
11111111Write-back Read and Write-allocate

3.2.数据通道数据结构

3.2.1.数据选通(WSTRB)

WSTRB的每一位对应数据中的8位(1字节),用于标志数据中的对应字节是否有效。即当WSTRB[n] = 1时,标志数据中WDATA[(8n)+7: (8n)]部分有效。

3.2.2.数据(xDATA)

3.2.2.1.窄带传输(Narrow transfers)

当传输的数据位宽小于xDATA总线带宽时,为窄带传输,每次使用的数据位数不同:

  • 固定地址的突发下,使用同一段数据信号线
  • 在递增地址和包装地址的突发下,使用不同段信号线

上图为地址递增突发下,在32位数据信号下使用8bit传输的窄带传输使用的位数图。第一次传输使用0~7位,第二次使用8~15位,依次递增;在第五次传输时回到开头使用0~7位

3.2.2.2.不对齐传输(Unaligned transfers)

当传输位宽超过1byte,起始地址不为数据总线硬件带宽(byte单位)整数倍时,为不对齐传输。不对齐传输的时候需要配合数据选通在第一次传输时将某几个byte置为无效,使第二次突发传输的起始地址(从机自动计算)为突发尺寸的整数倍。


http://chatgpt.dhexx.cn/article/O3boUQJO.shtml

相关文章

AXI协议学习笔记~~

AXI总线简介 ​  AXI属于AMBA(The ARM Advanced Microcontroller Bus Architecture)家族的一员,AXI协议在AMBA3.0版本中开始出现,并在后续的AMBA4.0,AMBA5.0中持续更新,对应为 AXI3,AXI4,AXI5。 ​   …

AXI 系列 之 AXI概述

目录 AXI简介 AMBA总线的演进图 AXI overriew AXI读写通道 AXI读取传输 事务 AXI 写入传输事务 AXI 概念解读 burst传输 FIXED模式下传输首地址后就可以不停传输数据吗? 突发传输不能跨4KB边界? 非对齐传输 复位期间对接口有如下要求&#xf…

AXI接口协议学习总结

AXI接口协议学习总结 下面将AXI接口协议学到的相关内容整理如下 一、AXI接口协议定义 AXI是Advanced eXtensible Interface的缩写,译为高级可扩展接口协议,是ARM公司提出的AMBA(Advanced Microcontroller Bus Architecture)高级…

【AXI】解读AXI协议双向握手机制的原理

解读AXI协议双向握手机制的原理 一、写在前面二、AXI 双向握手机制简介2.1 信号列表2.2 双向握手目的2.3 握手过程2.3.1 CASE1(READY信号先于VALID信号改变)2.3.2 CASE2(READY信号与VALID信号同时改变)2.3.3 CASE3(REA…

带你快速入门AXI4总线--AXI4-Full篇(1)----AXI4-Full总线

写在前面 AXI4系列链接:带你快速入门AXI4总线--汇总篇(直达链接) 1、什么是AXI4-Full? AXI 表示 Advanced eXtensible Interface(高级可扩展接口),它是由 Arm 定义的接口协议,包含在…

通信协议(AXI)

一、AXI简介 SoC片上总线尚处于发展阶段,不像微机总线那样成熟,目前还没有统一的标准,因此各大厂商和组织纷纷推出自己的标准,以便在未来的SoC片上总线标准中占有一席之地。ARM公司就在1995年推出了自己的总线——AMBA&#xff0…

AXI协议详解

AXI协议详解 Created: July 11 Tags: ARM amba_axi_protocol_spec.pdf AMBA_axi.pdf AXI基础简介 AXI总共分为5个通道,写地址,写数据,写应答,读地址,读数据(读应答在读数据中体现) 特点&a…

AXI协议规范超详细中文总结版

AXI协议规范中文翻译版 来源:https://github.com/lizhirui/AXI_spec_chinese 综述 本文参考分析整理总结了AMBA AXI and ACE Protocol Specification文档的AXI总线协议规范部分,错误之处欢迎指出。 AMBA AXI协议支持高性能高频的系统设计,该协…

虞美人·寄公度

我在阳台上抽烟,我抽了一半,风抽了一半,我没有和风计较,可能风也有烦恼凭栏倚,吞云烟。半入清风、半入喉,清风也染人间愁生活除了眼前的苟且,还要有诗和远…

柳永8首绝美词句

他是白衣卿相,是才子词人。 他有傲人的才华,却仕途失意。 他眠花宿柳,写下流传千古的词章。 他是才子柳永。 今天,给大家介绍他的8首词,体会柳永的人生起伏。 1、《雨霖铃 寒蝉凄切》 寒蝉凄切,对长亭晚…

千灯照碧云,越夜越星沙

(题图摄影:邓建辉) 文 | 弘乐、陈曦 来源 | 螳螂财经(ID:TanglangFin) “晚上去红记吃小龙虾啊!”准备下班的李强拿着电话呼朋唤友。和他一起下楼的同事伍娟听到了,忍不住摇头说:…

《红楼梦》诗词鉴赏(精选)

石上偈 无材可去补苍天,枉入红尘若许年。 此系身前身后事,倩谁记去作奇传? 【诗词简注】 偈(ji记),佛经中的唱词,也泛指佛家的诗歌。 倩(qing庆),央求 【诗词鉴赏】 《红楼梦》的作者…

HDFS核心理论学习记录

标题HDFS理论学习第一天 一、HDFS优缺点 1、优点 高容错性:数据会保存多个副本适合处理大数据:能够处理GB,TB甚至PB级别的数据能够处理百万规模的数据数据廉价不吃配置 2、缺点 不适合低延时数据访问,文件存储是放在磁盘中读…

HDFS——命令、工作机制

1. HDFS前言 设计思想 分而治之:将大文件、大批量文件,分布式存放在大量服务器上,以便于采取分而治之的方式对海量数据进行运算分析; 在大数据系统中作用: 为各类分布式运算框架(如:mapreduce&…

单元测试(学习笔记--ITCAST黎活明)

第一步在项目中的AndroidManifest.xml中加入以下代码&#xff1a; <?xml version"1.0" encoding"utf-8"?><manifest xmlns:android"http://schemas.android.com/apk/res/android"package"com.jluzhsoft.test"android:vers…

spring aop获取目标对象的方法对象及方法上的注解

spring aop获取目标对象的方法对象&#xff08;包括方法上的注解&#xff09; 这两天在学习权限控制模块。以前看过传智播客黎活明老师的巴巴运动网视频教程&#xff0c;里面就讲到权限控制的解决方案&#xff0c;当时也只是看看视频&#xff0c;没有动手实践&#xff0c;虽说看…

spring aop获取目标对象的方法对象

这两天在学习权限控制模块。以前看过传智播客黎活明老师的巴巴运动网视频教程&#xff0c;里面就讲到权限控制的解决方案&#xff0c;当时也只是看看视频&#xff0c;没有动手实践&#xff0c;虽说看过几遍&#xff0c;可是对于系统中的权限控制还是很迷茫&#xff0c;所以借着…

赢在下班后,告别一无所有

工作几年后&#xff0c;为什么有些人财务自由&#xff0c;而有些人&#xff0c;仍一无所有&#xff1f; 其间差别&#xff0c;就在于&#xff1a;八小时之外的思维模式不同。 大部分的人&#xff0c;觉得八小时之内是工作&#xff0c;八小时之外是生活&#xff0c;工作和生活之…

关于海明码,我悟了

目录&#xff1a; 话在前面差错控制编码差错控制编码的分类 检错码纠错码 奇偶校验码海明码 校验位的位置码字格式校验位的确定校验位的校验规则(重点)海明编码示例 检错和纠错 什么是码距海明码的码距海明码的检错与纠错能力海明码的检错与纠错能力理解 总结考题最后参考链接…

SVPWM原理

SVPWM原理 空间矢量的定义PWM逆变器基本输出电压矢量SVPWM的实现 SVPWM已经是非常成熟且应用范围最为广泛的PWM调制方式之一了&#xff0c;所以本文也只是常规的原理介绍。 空间矢量的定义 交流电动机绕组的电压、电流、磁链等物理量都是随时间变化的&#xff0c;如果考虑到它…