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解码错误

AMBA总线理解-AXI总线相关推荐

  1. AMBA 系列之 AXI 总线协议

    目录 0.绪论 1.简介 1.1 AXI协议特点 1.2 AXI 读写架构 1.3 接口和互联 1.4 复位 2. 信号描述 2.1 全局信号 2.2 写地址通道信号 2.3 写数据通道信号 2.4 ...

  2. AMBA 系列之 AXI 总线协议初探

    目录 0.绪论 1.简介 1.1 AXI协议特点 1.2 AXI 读写架构 1.3 接口和互联 1.4 复位 2. 信号描述 2.1 全局信号 2.2 写地址通道信号 2.3 写数据通道信号 2.4 ...

  3. 深度解读AMBA、AHB、APB、AXI总线

    什么是AMBA? 现如今,集成电路芯片的规模越来越大.数字IC从基于时序驱动的设计方法,发展到基于IP复用的设计方法,并在SoC设计中得到了广泛应用.在基于IP复用的SoC设计中,片上总线设计是最关键 ...

  4. AMBA总线协议的学习-AHB,ASB,APB三种总线以及AXI接口

    一.AMBA概述 AMBA (Advanced Microcontroller Bus Architecture) 高级处理器总线架构 AHB (Advanced High-performance B ...

  5. 36_2 On Chip Bus —— AXI总线介绍

    目录 1.AXI总线介绍(读2写3) 1.1流量控制 1.2 AXI signals 信号线 1.3重点信号线的介绍 1.4原子操作--让读改写一套操作 永远是一个master对一个slave 1.5 ...

  6. AMBA、AHB、APB、AXI总线

    AMBA.AHB.APB总线 * AMBA (Advanced Microcontroller Bus Architecture) 高级微处理器总线架构 * AHB (Advanced High-pe ...

  7. AXI 总线协议学习笔记(2)

    引言 从本文开始,正式系统性学学习AXI总线. 如何获取官方协议标准? 第一步:登陆官网:armDeveloper 第二步:登录,无账号需要注册 第三步:点击文档 第四步: 第五步:浏览页面建议下载下 ...

  8. AXI接口协议详解-AXI总线、接口、协议

    转自:https://cloud.tencent.com/developer/article/1695010 AXI接口协议详解-AXI总线.接口.协议 AXI 总线 上面介绍了AMBA总线中的两种, ...

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

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

最新文章

  1. 【Kotlin】抽象类 ( 声明 | 抽象类成员 | 抽象类继承 | 抽象方法覆盖 | 抽象方法实现 )
  2. 美好生活从撸好代码开始
  3. ThinkPHP之add、save无法添加、修改的解决方案
  4. Python入门--元组的遍历,获取元组元素
  5. [转载] python divmod()函数
  6. web和python哪个好_用python开发app和web哪个比较容易?
  7. 新建的mvn项目目录结构问题
  8. 2022年认证杯SPSSPRO杯数学建模D题(第二阶段)食品风味与风味物质求解全过程文档及程序
  9. pta 计算圆周率(C语言实现)
  10. 华为交换机配置时区_华为交换机设置时间问题
  11. 华为交换机关闭网口_华为交换机如何关闭端口号
  12. Spring Boot Admin
  13. 一个简单的音乐播放器(实现上一曲下一曲,和自动播放)
  14. Excel的25个知识~边看边操作
  15. 记录下这一年发生的事
  16. 诱惑视频木马样本态势
  17. SAP中报表清单导出的常用方法
  18. 小鹤同文的几个修改项
  19. win10java闪退怎么办_Win10应用打不开或闪退怎么办?解决方案在此
  20. 怎么把mp3转发微信语音发出去,从技术角度分析可行性

热门文章

  1. C++文件操作 文本文件 写入
  2. 百度网盘如何关闭限速?
  3. Oracle远程登录命令
  4. Linux知识点回顾之shell编程
  5. Centos 查看服务器CPU核心数
  6. 时间几乎会愈合所有伤。请给时间一点时间
  7. 攻防世界 REVERSE 新手区/maze
  8. Java服务器性能监控(一) Metrics
  9. 基于MATLAB的风力光伏发电模型模拟以及遗传算法求解混合发电系统最优配置
  10. word中让首页和目录不显示页码的方法