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

article/2025/10/18 9:23:25

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

    • 一、写在前面
    • 二、AXI 双向握手机制简介
      • 2.1 信号列表
      • 2.2 双向握手目的
      • 2.3 握手过程
        • 2.3.1 CASE1(READY信号先于VALID信号改变)
        • 2.3.2 CASE2(READY信号与VALID信号同时改变)
        • 2.3.3 CASE3(READY信号晚于VALID信号改变)
        • 2.3.4 总结
      • 2.4 数据通路的握手要求
        • 2.4.1 读数据通路
        • 2.4.2 读地址通路
        • 2.4.3 写数据通路
        • 2.4.4 写地址通路
        • 2.4.5 写回复通路
        • 2.4.6 总结
      • 2.5 不同数据通路间的约束关系
        • 2.5.1 读操作约束关系
        • 2.5.2 写操作约束关系(AXI3.0版)
        • 2.5.3 写操作约束关系(AXI4.0版)
    • 三、其他数字IC基础协议解读
      • 3.1 UART协议
      • 3.2 SPI协议
      • 3.3 I2C协议
      • 3.4 AXI协议

一、写在前面

AXI协议相较于UART,SPI,I2C来说,无论是内容还是难度都上了一个层级,放在一篇文章中进行解读未免篇幅过长,因此,有关AXI一些共性的、通用的问题,作者单独以前缀为【AXI】的标题进行小范围的串联,最终再汇总为深入浅出解读AXI协议,与从零开始的Verilog AXI协议设计,此为作者所思所考的推进顺序,单看【AXI】的每一篇,可能很多读者未免感到有些管中窥豹的疑惑,但若等作者更完此专栏再行观看,从头到尾进行阅读,应该就会有有茅塞顿开的收获与领悟。

二、AXI 双向握手机制简介

AXI标准协议有五路独立的数据通道(分别为读数据通道,写数据通道,读地址通道,写地址通道,写回复通道),每一路数据通道都遵循双向握手机制,即使用VALID和READY信号作为控制信号来传输数据,只有VALID与READY同时为高的时候,才可以正常的发送数据,而通常情况下,VALID信号用来表示什么时候“地址、数据、和控制信号”是有效的,而READY信号则用来表示什么时候从设备准备好采集数据了

2.1 信号列表

AXI标准协议中,双向握手信号合计十个,无论是主设备还是从设备,这十个信号都对应于五个输入信号,五个输出信号

数据通路握手信号对
写地址通路AWVALID,AWREADY
写数据通路WVALID,WREADY
写回复通路BVALID,BREADY
读地址通路ARVALID,ARREADY
读数据通路RVALID,RREADY

2.2 双向握手目的

握手:目的是控制数据在总线上的流动和采样
双向:目的是主设备和从设备都可以控制总线数据流动

AXI协议妙就妙在这里,我们在讨论SPI协议的时候,也有控制信号NSS,但是NSS这个信号只针对于主设备对于从设备的控制,从设备是没有办法控制数据通路的,但是对于AXI而言,无论是主设备还是从设备,都可以控制数据的传输。

2.3 握手过程

顺着双向握手的目的,我们可以引申出三种情况,READY信号先于VALID信号改变,READY信号与VALID信号同时改变,READY信号晚于VALID信号改变。分别进行讨论

2.3.1 CASE1(READY信号先于VALID信号改变)

在这里插入图片描述

READY信号的拉高,代表从设备准备好采样了,但T2时刻,VALID未拉高,因此未进行采样,而T3时刻,VALID拉高了,完成握手,数据传输。

这种情况下,如果我们将目光对向主设备,会发现,从设备在主设备发送数据前就做好了接受的准备,当主设备VALID后,时钟上升沿就完成了接受。(即数据传输发生在一个时钟周期内)

2.3.2 CASE2(READY信号与VALID信号同时改变)

在这里插入图片描述
VALID信号与READY信号同时拉高,表明数据有效的同时也可以进行采样,在T2时刻的上升沿,采样到正确数据,握手正确,再往后二者都拉低,数据进行了正确传输。

2.3.3 CASE3(READY信号晚于VALID信号改变)

在这里插入图片描述VALID信号先拉高,表明数据正确,再往后READY拉高,表明可以进行采样,T3时刻进行了采样,采样后,完成握手,再往后二者信号都拉低,这种条件下,数据也进行了正确的传输。

2.3.4 总结

对于2.3的讨论,我们可以发现这三种情况,都可以顺利完成握手,同时,协议同样规定,“VALID信号一旦拉高,除非READY信号拉高接收数据完成,不会主动变低”,而双向握手信号的约束关系,远不仅限于此。

2.4 数据通路的握手要求

以下的叙述包含两个前提:

  • 1.默认READY和VALID信号为低,有效时为高。
  • 2.同时,叙述中VALID等待READY的表达,实际的意思为在VALID拉高后的时钟上升沿检测READY是否为高,若为高,完成握手,并不代表VALID与READY的拉高顺序

2.4.1 读数据通路

在一个burst读传输操作时,从设备在数据有效时置高RVALID,一旦置高,RVALID需要等待RREADY信号拉高,完成握手,进行数据传输

2.4.2 读地址通路

主设备,在地址信号和控制信号有效时置高ARVALID,一旦置高,需要等待从设备的ARREADY信号置高,完成握手,进行数据传输。

2.4.3 写数据通路

在burst写传输时,主设备在写数据有效时置高WVALID信号,拉高后WREADY等待WREADY信号拉高,完成握手。

2.4.4 写地址通路

主设备在地址信息与控制信息有效时,拉高AWVALID,拉高后AWVALID等待从设备拉高AWREADY,完成握手,进行数据传输

2.4.5 写回复通路

从设备在数据有效时,拉高BVALID,一旦拉高,BVALID需要等待BREADY信号拉高后完成握手,进行数据传输。

2.4.6 总结

针对于数据通路的握手要求,首先需要强调的是:我们在这里默认READY信号和VALID信号为低电平,仅是为了方便表述。在实际工程项目中,也可以默认他们为高电平,拉低有效,完成握手,即READY与VALID信号的有效电平为高或低均能满足要求。
其次,对于不同的数据通路,有的时候是主设备操控READY信号,有的时候是从设备操控READY信号,需要根据数据通路进行区分。

2.5 不同数据通路间的约束关系

在前文中,我们延伸出通道内的约束关系如下
VALID信号一旦拉高,除非READY信号拉高接收数据完成,不会主动变低

不同数据通路之间,同样的存在约束关系,这很好理解:写回复通路的信号传递一定晚于写数据通路,这就天然的构建起不同通路的先后顺序关系,假如不满足这种约束关系,AXI协议就可能会发生死锁,即deadlock没有办法正确工作。

同时一个AXI slave按功能进行区分的行为建模,无非是读与写两种操作,读操作与写操作的约束关系同样不同

单向箭头指向的对象可以在起点对象之前/之后置高
(以2.5.1为例ARREADY可以在ARVALID之前或者之后置高)
双向箭头指向的对象只能在起点对象之后置高
(以2.5.1为例,RVALID无法在地址通路握手完成(已发送数据)的情况下改变)

2.5.1 读操作约束关系

在这里插入图片描述
首先我们讨论的是读操作约束关系:
RVALID和RREADY对应读数据通路的信号
ARVALID和ARREADY对应读地址通路的信号
读操作固定的约束关系为数据通道必须要等待地址通道的数据传输完成才可以尝试握手操作

2.5.2 写操作约束关系(AXI3.0版)

在这里插入图片描述
其次我们讨论的是写操作的约束关系
这里涉及到了三个数据通路,来考虑约束关系,唯一的一个硬约束关系为,BVALID需要等到写数据通路完成握手后才能置高。

初学者在这里往往会感到迷惑
比如说BREADY跟WVALD与WREADY间有无关系?BVALID和AWVALID与AWREADY有无关系?实际上是,只要图中的线没有进行相连,就是没有关系,针对于AXI而言,甚至可以BREADY信号第一个拉高,再去考虑其他信号的关系,唯一需要满足的即为写回复通路与写数据通路之间的约束,剩下的信号都是自由的。

2.5.3 写操作约束关系(AXI4.0版)

在这里插入图片描述
2.5.2讨论的是AXI3.0写操作的约束关系,这里直接放出AMBA4.0版的约束关系,很好理解,不再多做解释,不过需要强调的是,AMBA4在兼容AMBA3的基础上更为严格,目的是希望从设备不会在接收到数据信号后还需要等待地址信号

三、其他数字IC基础协议解读

3.1 UART协议

  • 【数字IC】深入浅出理解UART
  • 【数字IC】从零开始的Verilog UART设计

3.2 SPI协议

  • 【数字IC】深入浅出理解SPI协议
  • 【数字IC】从零开始的Verilog SPI设计

3.3 I2C协议

  • 【数字IC】深入浅出理解I2C协议

3.4 AXI协议

  • 【AXI】解读AXI协议双向握手机制的原理
  • 【AXI】解读AXI协议中的burst突发传输机制
  • 【AXI】解读AXI协议事务属性(Transaction Attributes)
  • 【AXI】解读AXI协议乱序机制
  • 【AXI】解读AXI协议原子化访问
  • 【AXI】解读AXI协议的额外信号
  • 【AXI】解读AXI协议的低功耗设计
  • 【数字IC】深入浅出理解AXI协议

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

相关文章

带你快速入门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和…

SVPWM调制中非零基础矢量的幅值是2/3Udc还是Udc?

1:、三相电压空间矢量的合成 设直流母线侧电压为Udc&#xff0c;逆变器输出的三相相电压为UA、UB、UC、其分别加在空间上互差120的三相静止平面坐标系上&#xff0c;可以定义三个相电压UA(t)、UB(t)、UC(t)、他们的方向始终在各自的轴线上&#xff0c;而大小随着时间按正弦规律…

Matlab SVPWM仿真模型

文中涉及的仿真模型可在公众号 iFTrue未来已来 中获取&#xff1a; 请扫描下方二维码关注微信公众号&#xff1a;iFTrue 未来已来 在公众号后台回复以下关键字获取SVPWM仿真模型&#xff1a;SVPWM模型 「 iFTrue 未来已来 」 目录&#xff1a; 1.1 基于C语言的SIMULINK仿真模…