AMBA总线理解-AXI总线

article/2025/9/24 17:16:59

AXI的设计目标是可以在高始终频率下运行,并且在迟滞时间长的情况下也可以达到高数据吞吐率。他可以将读/写请求和读/写结果相互分离,将数据写入和数据读出的信号分类,并且可以同时进行写入和读出的动作,因此可以大幅度提升数据吞吐量。

AXI有以下关键特性:

1.分离的地址/控制通道和数据通道

2.支持非对齐传输,使用byte strobs指示

3.支持burst传输,只需要发送其实地址就行

4.具有分离的读写数据通道

5.支持多种outstanding传输(即地址和数据传输没有严格的先后要求,即我们在处理两个不同的transaction时不需要等待一个transaction处理完成才进行下一个)

6.支持乱序传输

下面是一个读传输时如何应用读地址和读数据通道的 流程:

1.主机通过读地址通道发出读取请求。

2.从机通过读数据通道将读取的数据传送给主机
 

下面是一个写传输时如何应用写地址和写数据通道的 流程:

1.主机通过写地址通道发出写入请求。

2.主机通过写数据通道发送写入的数据。

3.从机在完成写入动作后,通过写响应通道发回确认信息。

我们需要注意的是,AXI有5个独立的传输通道,分别是AR,R,AW,W,B通道:

AR:读地址通道,传输读操作时的地址和对应控制信息。

R;读数据通道,传输AR通道对应的读回数据(位宽可以是8.16.32.64.128.256.512.1024)和传输从机的响应信息。

AW:写数据通道,传输写操作的地址和对应的控制信息。

W:写数据通道,传输写数据相关的信息(位宽可以是8.16.32.64.128.256.512.1024).以及为每一个8bit的数据准备了一额字节选通信号,用于指示数据的哪几个字节是有效的。

我们需要注意,写数据通道总是被buffe的,因此主机可以在未接受到前一次写事务的从机响应信号时就可以进行下一次写操作。

B:写响应通道,传输从机返回的写响应信息。注意此信号只在一次写事务彻底完成之后才产生。

 

我们要注意,这五个通道都是双向流量控制通道,即发送端用valid表示数据时有效的,接收端用ready表示数据时可以接受的,只有两者同时为1的时候,数据才可以成功传送。

接下来我们看一下个通道的依赖关系:单箭头表示两个信号之间没有依赖关系,,但是推荐使用这种前后关系,双箭头表示两个信号之间具有依赖关系,必须要等到前面的信号有效之后才可以使能后面的信号。

对于读传输,ARVALID和ARREADY之间没有先后关系,但是RVALID信号必须等到前面两个信号有效之后才能生效,这在逻辑上也符合,因为只有读地址等请求信息有效之后,从机才能返回相应数据,通过RVALID表示传输有效。READY不依赖于其他信号。

对于写传输,写地址中的AWVALID,AWREADY和写数据通道的WVALID,WREADY没有相互依赖的关系,完全独立的,BVALID信号需要依赖WVALID,WREADY信号,因为BVALID信号表示写操作的完成。BREADY不依赖于其他信号。注意在AXI3中没有定义BVALID和AWVALID,AWREADY之间的关系,但是在实际设计中,我们会指定BVALID应该在他们之后有效,因为如果地址时无效的,对应后面的写数据和写响应都是无效的。

 

 而在AXI4中定义了BVALID应该在AWVALID,AWREADY,WVALID,WREADY之后有效。并且从机必须等到主机的WLAST信号置位ie,才能将BVALID信号置位。

我们知道,AXI协议时基于突发的。他的流程如下:

1.主机子在读/写地址通道写入地址以及突发传输的长度,宽度,类型等信息

2.从机将在起始地址开始,一次接受主机传送的写数据,或者读取连续地址上的数据,作为读数据传输给主机。

AWLEN和ARLEN信号控制着突发传输长度,即一次突发传输中包含的数据传输数量。AXI3的突发传输长度是1-16transfer。AXI4的突发传输在INCR模式支持1-256transfer。其他模式支持1-16transfer。

突发传输的一些限制:

1.对于回环传输,突发传输长度仅为2.4.8.16.

2.在一次突发传输中,地址不能跨越4KB地址边界。

3.一次突发传输不能在所有数据结束前久结束。

接下来看一看突发传输宽度,即传输中的位宽(每周期传输数据的字节数量),这是由AWSIZE和ARSIZE决定的。

AXI协议规定了三种突发类型:

固定(FIXED):在突发事务中,每次传输的地址一致,有效的字节线也一致。

递增(INCR):在一个递增突发传输中,每次传输,地址都会在原有的基础上递增,第增量为传输大小。

回环(WRAP):地址到达边界后,地址会回绕到下界。

 下面将一些特殊的传输方式:

狭窄传输:当主设备产生了一个数据宽度小于数据总线的传输时,地址和控制信号可以按照不同的方式决定使用哪些字节线:

在递增或者回绕的突发模式中,每拍使用不同的字节线。

在固定突发模式中,没拍使用相同的字节线。

非对齐传输:

对于任何数据宽度大于一个字节的传输来说,第一个字节的访问都可能使非对齐的

一个主设备可以:

使用低位地址线发送一个非对齐开始的地址。

提供对齐的地址并且使用字节选通信号线发送非对齐的开始地址。

最后,AXI协议中提供了读/写事务的i相应信号:对于读操作,响应信号在读地址通过的RRESP[1:0];对于写操作,响应信号在写响应通道BRESP[1:0]

OKEY:常规访问成功

EXOKEY独占访问成功

SLVERR从机错误

DECERR解码错误

 

 


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

相关文章

Zynq AXI总线

S02_CH12_ AXI_Lite 总线详解 - 米联客 - 博客园 12.1前言 ZYNQ拥有ARMFPGA这个神奇的架构,那么ARM和FPGA究竟是如何进行通信的呢?本章通过剖析AXI总线源码,来一探其中的秘密。 12.2 AXI总线与ZYNQ的关系 AXI(Advanced eXtens…

AXI总线协议介绍

AXI总线协议介绍 AXI(Advanced eXtensible Interface)协议是一种面向高性能、高带宽系统设计的总线协议,能够满足各种高速系统的总线协议,能够满足各种高速系统的总线互连。 AXI协议的主要特点有: 独立的地址,控制和数据接口支持使用字节选通的不对齐数据的传输基于特定地…

AXI总线入门

介绍【只要涉及到芯片内部交换都是涉及到AXI协议】 ZYNQFPGAARM 两者间的数据传输 AXI(Advanced extensible Interface)高级外设总线协议,协议是一种通用总线协议,AXI协议是ARM AMBA(Advanced Microcontroller Bus Arc…

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

引言 前面两篇博文从简单介绍的角度说明了 AXI协议规范。 AXI 总线协议学习笔记(2) AXI 总线协议学习笔记(3) 从本篇开始,详细翻译并学习AXI协议的官方发布规范。 AXI总线协议,是一个处于不断发展和完…

浅谈AXI总线

这篇博客在写之前借鉴了网上各位大佬对AXI总线的理解和总结,在此表示感谢。集合了博客,知乎以及书上对AXI总线的介绍。做以下记录用于自己日后复习和更好的理解。 1:协议简介 Xilinx fpga 从Virtex-6系列开始,内部IP都支持AXI4总…

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;爱国、敬业…