AXI 系列 之 AXI概述

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

 

目录

AXI简介

AMBA总线的演进图

  AXI overriew 

 AXI读写通道

AXI读取传输 事务

AXI 写入传输事务

AXI 概念解读

burst传输

FIXED模式下传输首地址后就可以不停传输数据吗?

突发传输不能跨4KB边界?

非对齐传输

复位期间对接口有如下要求:

AXI 协议Q & A

AXI3与AXI4之间的区别是什么?

AXI VIP的使用

AXI VIP 介绍

AXI VIP 设计的思想

AXI VIP加入到TB


AXI简介

AMBA总线的演进图

        在介绍AXI协议前,先看下AMBA的演进情况。

        随着移动和智能手机时代发生了进一步的演进,SOC集成了2/4/8核处理器和共享cache,并且需要跨内存子系统的硬件管理一致性。这导致了在AMBA修订版4中引入了ACE(AXI一致性协议扩展)

        在当前HPC和数据中心市场的异构计算时代,单个芯片上集成越来越多的处理器核心以及GPU、DSP、FPGA、内存控制器和IO子系统。2013年,AMBA5引入了CHI协议,作为AXI/ACE协议的重新设计。基于信号的AXI/ACE协议被新的基于包的CHI协议所取代。

1、APB:高级外围设备总线(APB)用于连接低带宽的外围设备。它是一个简单的非流水线协议。读写操作共享同一组信号,不支持burst数据传输。最新的规范(APB2.0)可以在ARM网站上找到,是最容易学习的AMBA 协议

2、AHB:高级高性能总线(AHB)用于连接共享总线上需要更高带宽的组件。这些slave组件可以是内部内存或外部内存接口、DMA、DSP等。AHB可以通过burst数据传输来获得更高的带宽。

3、AHB-lite协议是AHB的一个简化版本。简化后只支持一个主设计,这消除了对任何仲裁、重试、分割事务等的需求。

4、高级可扩展接口(AXI)适合于高带宽和低延迟互连。这是一个点对点的互连,并克服了AHB、APB等共享总线协议在可连接的代理数量方面的限制性。该协议支持多个outstanding的数据传输、burst数据传输、单独的读写通道和支持不同的总线宽度。

5、AXI-lite协议是AXI的简化版本,简化后不支持突发数据传输。

6、AXI-stream协议是AXI协议的另一种风格,它只支持数据流从master 流到slave。与完整的AXI或AXI-lite不同,AXI-stream 协议中没有单独的读/写通道,因为其目的是只在一个方向上流。

7、ACE-AXI协议是AXI4协议的扩展,应用于在一个芯片上集成多个CPU核心与一致性cache的场景。ACE协议扩展了AXI读写数据通道,同时引入了单独的snoop 地址、snoop 数据和snoop 响应通道。这些额外的通道提供了实现基于snoop 的一致性协议的机制。

8、ACE-Lite—对于没有自己cache的agents ,但仍属于可共享一致性域的一部分,如DMA或网络接口agent,使用ACE-lite协议实现这种“单向”一致性。

9、CHI—ACE协议作为AXI的扩展而开发,以支持一致性互连。ACE协议使用了master/slave之间的信号电平通信,因此互连需要大量的线和增加的通道来进行snoops 和响应。这对于具有2/4核移动SOC 的小一致性clusters非常有效。随着SOC上集成越来越多的一致性clusters ——AMBA5修订版引入了CHI协议。CHI协议使用基于分层分组的通信协议,具有协议、链路层和物理层实现,还支持基于QoS的流控制和重试机制。

  AXI overriew 

        AXI 表示 Advanced eXtensible Interface(高级可扩展接口),它是由 Arm 定义的接口协议,包含在“高级微控制器总线架构 AMBA”标准中。

        AXI4 接口 (AMBA 4.0) 分 3 种类型:

  • AXI4 (AXI4-Full):用于满足高性能存储器映射需求
  • AXI4-Lite:用于简单的低吞吐量存储器映射通信(例如,往来于状态寄存器的通信)
  • AXI4-Stream:用于高速数据流传输
注 1 :本文不涵盖 AXI4-Stream 相关内容。此处“AXI”表示 AXI3、AXI4 和 AXI4-Lite。
注 2:AXI3 接口与 Full AXI 接口接近。

 AXI读写通道

AXI 协议定义了 5 条通道:

  • 其中 2 条用于读取传输事务
    • 读地址
    • 读数据
  • 另 3 条用于写入传输事务
    • 写地址
    • 写数据
    • 写响应

通道 (channel) 是与 VALID 和 READY 信号关联的 AXI 信号的独立集合。

注:AXI4/AXI3/AXI4-Lite 接口只能用于读取(仅包含 2 条读取通道)或者只能用于写入(仅包含 3 条写入通道)。

任一通道上发射的每一条数据都称为一次传输 (transfer)。当 VALID 和 READY 信号均处于高位并且时钟存在上升沿时,就会发生传输。例如,在下图中,在 T3 处正在发生传输:

AXI读取传输 事务

AXI 读传输事务需要在 2 条读取通道上发生多次传输。

  • 首先,地址读通道 (Address Read Channel) 从主接口 (Master) 发送到从接口 (Slave),以便设置地址和部分控制信号。
  • 然后,此地址的数据通过读数据通道 (Read data channel) 从从接口发射到主接口。

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

AXI 写入传输事务

AXI 写入传输事务需要在 3 条读取通道上存在多次传输。

  • 首先,写地址通道 (Address Write Channel) 从主接口发送到从接口,以便设置地址和部分控制信号。
  • 然后,此地址的数据通过写数据通道 (Write data channel) 从主接口发射到从接口。
  • 最后,写入响应通过写响应通道 (Write Response Channel) 从从接口发送到主接口,以指示传输是否成功。

写响应通道 (Write Response Channel) 上可能的响应值包括:

  • OKAY (0b00):正常访问成功。表示已成功完成正常访问
  • EXOKAY (0b01):专属访问成功。
  • SLVERR (0b10):从接口错误。已成功访问从接口,但从接口希望向发端主接口返回错误条件(例如,数据读取无效)。
  • DECERR (0b11):解码器错误。通常由互连组件生成,用于指示传输事务地址处没有任何从接口
注:读取传输事务同样包含响应值,但此响应通过读响应通道 (Read Response Channel) 来发射

AXI 概念解读

burst传输

突发传输。连续传输

FIXED模式下传输首地址后就可以不停传输数据吗?

是的,在配合每次传输的byte数,就可以确定下一个传输的地址。

突发传输不能跨4KB边界?

因为AXI4协议规定主机上寄存器块的最小分块单元为4K Byte,每个从机的开始映射地址都是4KB的边界。这也影响了AXI4的一个读写规则,那就是一个burst传输不能跨越4KB的界限,否则就会引入将数据错误写入其他从机的风险。注意这个4KB的界限指的是MASTER的地址界限,例如一个burst中不能越过0xXXXX_X000的地址位。FFF=4095,

就是1024个寄存器,*4byte =4KB。

非对齐传输

非对其传输指当传输的目标地址(byte)与寄存器的边界(word对齐)未对齐时,可以使用非对齐传输,例如一个传输在0x3地址开始,而不是0x0或者0x4,非对其传输只会影响一个burst传输中的第一笔数据,可采用WSTRB信号来表示第一个data中的哪几个byte是有效的,其余的数据还是正常的burst传输。

复位期间对接口有如下要求:

valid(表示地址/数据/应答输出有效信号)驱动到低电平

①主机ARVALID,AWVALID,WVALID为低电平;

② 从机接口必须驱动RVALID,BVALID为低电平;

③ 所有其他信号可以被驱动到任意值。

在复位后,主机可以在时钟上升沿驱动ARVALID,AWVALID,WVALID为高电平

• 读取地址,其信号名称以AR 开头。

• 读取信号名称以 R 开头的数据。
• 写入地址,信号名称以AW 开头。
• 写入信号名称以 W 开头的数据。
• 写入响应,其信号名称以 B 开头。

AXI 协议Q & A

AXI3与AXI4之间的区别是什么?

1、AXI3只支持多达16拍的burst 。而AXI4支持高达256拍的burst 。

2、AXI3支持write interleave。AXI4不支持write interleave(去掉了wid)

3、AXI3支持locked 传输,AXI4不支持locked 传输

4、AXI4支持QoS,AXI3不支持QoS。

为什么没有单独的read 响应通道?

VALID/READY握手机制只允许一个方向的数据流,所以对于读事务,数据(data和resp)从slave流向master,而对于写事务,数据从master流向slave,所以就需要单独的响应通道

为什么在burst 写中,不是每拍都有写响应。但是在burst 读中,每拍都有一个单独的读响应?

所有的AXI信道只在1个方向传递信息 ,所以才需要一个单独的写响应通道。在大多数应用中不管slave能不能接受完整的数据这个burst传输都会执行完成,slave无需在每一拍都返回ERROR响应

如何终止burst 传输?

不能。AXI不能够提前终止burst传输。对于写事务,master可以完成burst 传输,通过WSTRB信号丢弃掉无效数据即可,对于读事务同样也可以将读回的数据丢弃。

master 可以在burst 传输中间给WLAST吗?

不行。只有在burst 传输的最后一拍才能拉高WLAST,在burst传输的中间拉高WLAST是违反协议的行为。此外,许多slave设计不会使用WLAST信号,而是自己计数,所以master拉高WLAST也不会提前终止burst传输。

Slave能在burst传输完成之前置起rlast么?

和上题一样,slave在burst传输的未完成就拉起RLAST是违反协议的行为。master同样也有可能不依赖RLAST

既然WLAST和RLAST可能不被使用,那为什么需要支持这两个信号?

为了支持所有的master和slave,无论其是否依赖这两个信号传输数据。

Exclusive 读写事务是什么?在哪里使用?

如果一个内存区域被多个master共享,某个master需要希望确保在没有其他master更改共享内存的情况下完成读然后写的序列,就可以使用Exclusive 传输

读取事务是否有可能在一个周期内完成?

需要至少1个时钟周期传递地址(从master到slave),然后至少1个时钟周期传递数据(从slave到master)。

axi slave是如何支持Exclusive 访问的?

假设 AXI Master1(M1)已经启动了对地址位置12h100到12h10F的exclusive 读写。那么相应的salve将开始监视由M1给出的这些地址。如果此时该地址被其他master执行写操作,此时会返回Exclusive error

发送给slave的读写地址和读写数据是如何关联的?

AR总线和AW总线是独立的,不管读写请求的地址是否顺序发出的,响应的数据都可能是无序的,他们之间是通过awid和arid对应配对的(axi3)axi4去掉了wid,所以写通道的写顺序必须与写地址通道保持一致
 

AXI VIP的使用

AXI VIP 介绍

         AXI Verification IP (AXI VIP) 对 AXI4 接口进行仿真。

AXI Verification IP (AXI VIP) 是支持用户对 AXI4 和 AXI4-Lite 进行仿真的 IP。它还可作为 AXI Protocol Checker 来使用。

此 IP 只是仿真 IP,将不进行综合,它将在直通 (Pass-through) 配置中被连线所替代。

AXI VIP IP 核用途如下:

  • 生成 AXI 主 (Master) 接口命令和写入有效载荷
  • 生成 AXI 从 (Slave) 接口读取有效载荷和写入响应
  • 检查 AXI 传输事务是否符合协议标准

它支持 5 种不同配置:

  • AXI Master VIP
  • AXI Pass-through VIP(无存储器模型)   ---  了解下这里的无存储器模型?!
  • AXI Pass-through VIP(有存储器模型)
  • AXI Slave VIP(无存储器模型)
  • AXI Slave VIP(有存储器模型)

AXI VIP 设计的思想

AXI VIP 的设计示例包含 3 个 AXI VIP:其中一个配置为 Master、一个配置为 Pass-through,另一个配置为 Slave。

工程中包含了多个测试激励文件 (Test Bench) 源文件,以匹配不同 AXI VIP 组合。

:所有测试激励文件都是以 SystemVerilog 语言编写的。要使用 AXI VIP 的全部功能,应将此 IP 例化包含在 SystemVerilog 测试激励文件中。

AXI VIP加入到TB

Snop AXI VIP overriew (TBC)

AXI VIP 的设计示例包含 3 个 AXI VIP:其中一个配置为 Master、一个配置为 Pass-through,另一个配置为 Slave。

:所有测试激励文件都是以 SystemVerilog 语言编写的。要使用 AXI VIP 的全部功能,应将此 IP 例化包含在 SystemVerilog 测试激励文件中。


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

相关文章

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;如果考虑到它…

foc学习笔记2——svpwm

foc学习笔记2——svpwm 写在前面&#xff1a;如今网上关于foc的文章和教程很多&#xff0c;但初学者往往会被那些专业且复杂的公式搞晕&#xff0c;不知道自己到底在学什么。本文尽量少列公式&#xff0c;多解释用途&#xff0c;所以不会有公式的推导过程&#xff0c;会更加注重…

二、SVPWM

二、SVPWM 1. 介绍 SVPMW是将逆变器和电机看作一个整体&#xff0c;用八个基本的电压矢量合成期望的电压矢量&#xff0c;建立逆变器功率器件的开关状态&#xff0c;并依据电机磁链和电压关系&#xff0c;实现对电机恒磁通变压变频调速。 三相无刷电机的三项排除三项全部为1和…