浅谈AXI总线

article/2025/9/24 17:47:28

这篇博客在写之前借鉴了网上各位大佬对AXI总线的理解和总结,在此表示感谢。集合了博客,知乎以及书上对AXI总线的介绍。做以下记录用于自己日后复习和更好的理解。

1:协议简介

       Xilinx fpga 从Virtex-6系列开始,内部IP都支持AXI4总线协议,AXI高级可扩展接口(Advanced eXtensible Interface, AXI)是一种总线协议,该协议是ARM公司提出的高级微控制器总线结构 AMBA(Advanced Microcontroller Bus Archtiecture )协议中最重要的部分,AMBA总线标准一共有四套版本,各个版本的协议都沿用至今。AXI4总线协议包含在2010年发布的AMBA4.0中,包括AXI4,AXI4-Lite和AXI4-Stream。

      它们的区别是:AXI4-Lite是AXI4的精简版,不支持突发传输方式(Burst-length固定=1),且总线接口只支持32bit 和 64bit位宽。

                              AXI4-Stream总线主要用于突发传输,而且对突发长度没有限制,支持一直读或写,没有地址通道,没有读写使能,只用TLAST信号拉高表示传输结束。

     AXI4总线协议包括了主设备(Master)与互连结构之间,从设备(Slave)与互连结构之间,以及主设备与从设备之间的连接,AXI4总线是一种多通道并且以突发传输(连续传输)为机制的总线。可以连续对一片地址进行一次性读写,允许最大256轮的数据突发传输。

2:AXI有多少传输通道

     AXI4总线拥有5个独立的传输通道:

             (1)WRITE :   写地址通道,写数据通道,写响应通道。

             (2)READ:读地址通道,读数据通道(包含了读响应通道的功能)

3:AXI4接口信号列表

WRITE:

READ:

数据选通(WSTRB)信号说明:

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

读/写突发类型(Aw/rBurst)信号说明

AXI支持三种突发类型:

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

(借鉴了博客:https://blog.csdn.net/bleauchat/article/details/96891619)

这里顺便说明一下突发(Burst)的意思:

Burst length: ARLEN[7:0]和AWLEN[7:0]表示的就是这个。表示的是连续传输的周期数。一个burst内部是不可以被打断的。。所以data valid一旦高起来就要把一个burst传完再拉低,slave的ready信号可以中断,但是最终还是要高起来传完一个burst. 对于master来说,一旦开始传数,一个burst之间的valid应该是不会低的。

Burst size: 指的是一个burst里面有多少Byte. ARSIZE[2:0]和AWSIZE[2:0] 里就是这个。为什么只有3bit呢?因为只有8种情况。1,2,4,8,16,32,64,128。这个里面其实有个非常小的问题。。一般来说。总线位宽和burst size一致的。

但是也会出现不一致的情况:比如总线64bit, burst size是8Byte. 但是你要说我头铁非要给个不一样的值。。那也没问题。你总线是8BTYE, 你给了个2BYTE的Burst size, 那你就要指定,,每次传输这个2BYTE要放到8BYTE的哪几个BTYE上去。

(借鉴了知乎:https://zhuanlan.zhihu.com/p/96804919)

于是出现了两种不同的传输方式:

1:窄带传输

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

  • FIXED模式突发下,使用同一段数据信号线
  • INCREMENTING和WRAP地址的突发下,使用不同段信号线

比如上面这个例子。32bit的地址总线。burst size给了个8bit. 那就靠WSTRB这个信号确定往哪儿写。比如上面。传输了5次。在第五次传输时回到开头使用0~7位

2:不对齐传输(暂时还不理解)

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

4:AXI总线如何传输数据(写/读握手关系)

     WRITE:

   以AXI4-Lite标准协议为例,写过程分为三个阶段,地址发送,数据写入,响应接受三个阶段,时序如下图中所示。

一:地址发送阶段

       在写数据过程中,主机的地址连接在s_axi_awaddr总线上,同时将s_axi_awvalid信号拉高,表示主机的有效地址信息已经在信道上等待从机完成接收。同时等待从机发出的接受响应,当从机发送的s_axi_awready有效(拉高)时表示从机允许接收地址信息。从接口只在s_axi_awvaild和s_axi_awready同时有效时才能完成地址信息的接收,即完成主接口的写地址发送。

二:数据写入阶段

      主接口发送完地址信息后,准备写入数据,将待写入的数据置于s_axi_wdata总线上(s_axi_wstrb表示写入选通吸信号,默认为11,表示写入数据均可用),并将s_axi_wvalid置为有效(拉高),表示数据已经在信道上等待从机发出的写入响应信号,进而写入从接口。从接口将s_axi_wready信号拉高,表示从接口可以呗写入数据了。当s_axi_wavaild和s_axi_wready信号同时为1后,表示完成了数据写入

三:响应接收阶段

     主接口完成数据写入后,主机把 s_axi_bready信号拉高(给从机一个我可以接收响应了 的信号),等待从机接口的响应信号。从接口的响应信号s_axi_bresp[1:0]用2‘b00表示数据信道的数据写入成功,即OKEY,从机接口发出的s_axi_bresp响应信号 的有效信号s_axi_bvaild为1时才表示响应有效。

主机的s_axi_bready=1,从机的s_axi_bresp[1:0]=2‘b00,s_axi_bvaild=1,同时满足表示主机接口确认从接口完成了数据的写入。

以上过程的结束表示一次完整的基于AXI4_Lite接口的写寄存器过程。

READ:

一:地址发送:

       主机将要读入的地址输入到s_axi_araddr总线上,同时将s_axi_arvalid信号拉高。表示主机的地址已经在信道上等待从接口完成接收,同时等待从接口发出s_axi_arready信号,当从接口发出的s_axi_arready信号有效时,表示从接口允许接收地址信息。从接口只在s_axi_arvaild信号和s_axi_arready同时有效时才能完成信息接收,即完成主接口的读地址发送。

二:数据接收:

        主机发送完地址请求后,发送接收数据请求信号,将s_axi_rready信号拉高,表示主机可以接收数据了。从接口接收到主接口的准备ready信号后给出响应,在s_axi_rdata总线上发送主机请求的数据,同时把s_axi_rvaild信号拉高,表示s_axi_rdata数据有效,主机根据s_axi_rvaild信号 有效 接收数据,完成数据的读过程。

以上即为AXI4-Lite的读写时序。

AXI-4的读写时序如下图中所示,基本时序与AXI4-Lite一样。区别在于AXI4-Lite只支持突发=1的操作。而AXI-4支持多burst的操作。最后一个数据写入或读出时拉高 W/RLAST信号。

完,如有错误请指正。

 

 

 

 

 

               


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

相关文章

AXI总线整理总结

AXI总线 一、Definition 嵌入式系统是当今计算机工业发展的一个热点,随着超大规模集成电路的迅速发展,半导体工业进入深亚微米时代,器件特征尺寸越来越小,芯片规模越来越大,可以在单芯片上集成上百万到数亿只晶体管。…

AXI 总线协议学习笔记(3)

引言 上篇文章主要介绍了 AMBA以及AXI协议的基本内容,本文接续前文,继续介绍AXI协议的 原子访问、传输行为和事务顺序等。 AXI 总线协议学习笔记(2)https://blog.csdn.net/qq_43045275/article/details/128824643 原子访问 原子…

AXI总线总结

目录 1 综述 2 AXI通道概述 2.1 综述 2.2 读地址与写地址通道 2.3 读数据通道 2.4 写数据通道 2.5 写响应通道 3 AXI互联结构 4 AXI中使用寄存器切片 5 AXI术语 5.1 AXI组件与拓扑 5.2 AXI传输与存储器类型 6 AXI信号描述 6.1 公共信号 6.2 写地址通道信号 6.3…

AXI总线

AXI总线 AXI总线简介 AXI总线是一种总线协议,是ARM公司提出的AMBA3.0协议(目前已AXI4已发布) 中的最重要的部分,是一种高性能、高带宽、低延时的片内总线。支持不对齐的数据传输和突发传输。在突发传输中只需要首地址,并且支持同时分离的读…

SoC设计与验证——总线篇——AXI总线

1. AXI总线特征 axi总线可以连接CPU的cache和其他外设,比如内存等。内存是从属设备,它接受信号,并驱动ready信号;主从设备都会驱动data信号,总线仲裁器只看request和grant信号,而忽略所有的其他信号。 详…

AXI总线简介

0.绪论 AXI是高级扩展接口,在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进行以数据为主…

calender控件应用

历控件是.net自带的控件之一,功能强大,在很多项目开发中都有用到,对于blog系统来说更是必不可少。纵是好玉也仍需雕琢,为了使它更美观实用,我们还需要对它进行二次开发。   新建一个用户控件,把cale…

CalendarPicker

CalendarPicker 项目地址:maxyou/CalendarPicker 简介:A calendar picker to select a day. Can preset a selected day. 更多:作者 提 Bug 标签: Calendar Picker Can preset a selected day. Can customize almost al…

vue-calender

​​ 实现功能 生成当月的日历&#xff0c;并且标记当天的日期在输入框中输入日期会跳转到对应的月份&#xff0c;并标记输入的日期中间两个按钮( < >)控制月份的更改&#xff0c;可以切换月份旁边两个按钮( << >>)控制月份的更改&#xff0c;可以切换年份…

Java Calender类的一些常用方法

Calendar 日期类介绍 Calendar c Calendar.getInstance();//创建实例 默认是当前时刻   c.get(Calendar.YEAR);   c.get(Calendar.MONTH);   c.get(Calendar.DATE);//获取年,月,日 当然时分秒也可以 注意这里的月份比较特殊 从0开始   c.get(Calendar.DAY_OF_WEE…

Java日期Canlender

java.util.Carlendar介绍: Calendar 类是一个抽象类&#xff0c;它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等日历字段之间的转换提供了一些方法&#xff0c;并为操作日历字段&#xff08;例如获得下星期的日期&#xff09;提供了一些方法。 Calendar 提供了一个…

再次和谐

好吧&#xff01;等我有心情自己做网站的&#xff0c;一定在国外架。 你看到下面的截图就知道和谐了。 我在搜OpenGL的函数说明时看到的。 这不是明显把人们往国外赶嘛&#xff01; "清空FTP"&#xff0c;还"永不再绑定原有域名"。 这个“非法信息”是什…

鹤城杯2021 Crypto Writes up

鹤城杯2021 Crypto Writes up 这比赛原题横行有点水&#xff0c;跟着大佬们拿了个34名。 #1 easy_crypto 附件&#xff1a; 公正公正公正诚信文明公正民主公正法治法治诚信民主自由敬业公正友善公正平等平等法治民主平等平等和谐敬业自由诚信平等和谐平等公正法治法治平等平…

社会主义核心价值观

又是一道图片题&#xff0c;那么我们按照流程先查看属性&#xff0c;在属性页面发现疑似URL密码的字符串&#xff0c;于是我们直接使用工具进行解密 解密得到社会主义核心价值观 &#xff1a;富强、民主、文明、和谐&#xff1b;自由、平等、公正、法治&#xff1b;爱国、敬业…

NSSCTF刷题wp——Crypto入门

NSSCCTF Crypto 探索 Crypto入门 [鹤城杯 2021]easy_crypto ID:453 公正公正公正诚信文明公正民主公正法治法治诚信民主自由敬业公正友善公正平等平等法治民主平等平等和谐敬业自由诚信平等和谐平等公正法治法治平等平等爱国和谐公正平等敬业公正敬业自由敬业平等自由法治和…

和谐

什么也不说了&#xff0c;看图。 现在是2009-02-11 14&#xff1a;26。 很好&#xff0c;很和谐。

使用 java-onnx 部署 PaddleOCR-v3 文本检测

文本检测&#xff1a; 文本检测(Text Detection)是计算机视觉领域的经典问题&#xff0c;该技术旨在寻求一种可靠方法作为文本识别技术的前端&#xff0c;是目标检测(Object Detection)领域的一个子问题。模型推理输出文本区域需要经过二值化之后使用 opencv 查找轮廓&#xf…

Domino M-Series 设置说明

1.标签机 M – Setup 设置方法 1.1设置IP网络访问 注: 要通过见多络的方式连接标签机时,需要设置连接的IP配置。 1.2导出标签机的硬件配置参数注: 向上的箭头,表示从硬件设备中导出硬件配置,并选择通过什么通讯方式从硬件中读取配置 1.3保存并加载硬件配置参数 注: …

红黑树做中文字符输入法

前言 输入一个字符&#xff0c;匹配中文字符的输入法&#xff0c; 例如输入a&#xff0c;输出&#xff1a;啊阿&#xff0c;然后再输入n&#xff0c;即变成an&#xff0c;输出&#xff1a;鞍氨安俺按暗岸胺案&#xff0c; 要求要有搜索的接口&#xff0c;应该如何设计呢&#…