AMBA总线协议AXI——学习笔记

这篇具有很好参考价值的文章主要介绍了AMBA总线协议AXI——学习笔记。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

2023.3.25
2023.4.23


一、AXI4(Advanced eXtensible Interface)

1、定义

AXI:高级可拓展接口

  • 高性能、高带宽、低延迟
  • 单向通道体系结构
  • 独立的地址和数据通道
  • 支持多项数据交换。通过并行执行burst操作,极大地提高了数据吞吐能力。

2、AXI4、AXI4-Lite、AXI4-Stream协议对比

AXI4:高性能内存映射需求(如读写DDR、使用BRAM控制器读写BRAM等),为了区别,有时候也叫这个为 AXI4-Full;

  • 支持最多256个burst长度
  • 支持多个区域接口
  • 支持数据位宽 8 / 16 / 32 / 64 / 128 / 256 / 512 / 1024 bits

AXI4-Lite:用于简单、低吞吐量的内存映射通信(例如,与控制寄存器和状态寄存器之间的通信);

  • burst length的长度恒定1,不支持burst传输
  • 数据的访问或读取操作需要使用数据总线的全部,数据位宽为32/64位,
  • 所有的操作都是Non-modifiable和Non-bufferable的
  • 不支持独占访问

AXI4-Stream :高速流数据(视频、图像等流式数据);

  • 在同一互连中支持多数据宽度
  • 使用相同的共享线集支持单数据流和多数据流
  • 可以实现突发无限数量的数据

相同点

  • AXI4、AXI4-Lite和AXI4-Stream均使用Ready、Valid握手机制进行通信
  • AXI4 总线和 AXI4-Lite 总线都有 5 个通道(AXI4-Stream 取消了通道)

3、信号

下面介绍的是AXI4的信号

3.1 全局信号——时钟和复位信号

ACLK:时钟
ARESETn:低电平复位信号

复位要求

  • ARVALID、AWVALID、WVALID、RVALID、BVALID都必须为低电平,其他信号可以为任意值
  • 主机接口必须开始将ARVALID、AWVLAID或WVALID置高仅仅在ARESETn 信号变高后的ACK的第一个上升沿

AMBA总线协议AXI——学习笔记

3.2 写数据通路

AMBA总线协议AXI——学习笔记

3.2 写地址通道

——主要是busrt传输

AWVALID:握手信号
AWREADY:握手信号
AWADDR[12:0]:写地址
AWPROT:传输的特权等级和安全等级
AMBA总线协议AXI——学习笔记

AWSIZE[2:0]:数据大小
AMBA总线协议AXI——学习笔记

AWLEN[7:0]:burst的长度
AMBA总线协议AXI——学习笔记

AWID[3:0]:写地址ID
AWBURST[1:0]:burst类型,FIXED——用于FIFO访问(每次burst的地址不变),INCR——1~256,WRAP——回环突发,支持2/4/8/16
AMBA总线协议AXI——学习笔记

AWLOCK[1:0]:锁定类型,用BRESP或者RRESP来指示独占存取是否成功
主机在请求独占式存取时,设备可能返回的两个响应分别是EXOKAYOKAY。EXOKAY是指设备支持独占式存取,而OKAY是指设备不支持独占式存取。
AMBA总线协议AXI——学习笔记

AWCACHE[3:0]:Cache类型,指明事务的bufferable、cacheable、write-through或者write-back等信息
AMBA总线协议AXI——学习笔记

3.3 写数据通道

——主要涉及到窄传输非对齐传输
窄传输:传输数据宽度小于数据总线宽度,使用WSTRB来进行指示

WVALID:写有效,主机发送,握手信号
WREADY:写就绪,从机响应,握手信号,为1表示设备已经准备好接收数据
WDATA[31:0]:数据
WSTRB[3:0]:字节通道有效信号,WSTRB[n] 对应 WDATA[8n+7 : 8n]
WLAST:用来指示每个事务传输过程中的最后一个数据,表示当前事务传输结束
WID[3:0]:写ID tag,要和AWID的值匹配

3.4 写响应通道

BVALID:握手信号
BREADY:握手信号
BID[3:0]:响应ID,要和AWID的值匹配
BRESP[1:0]:反馈信号,OKAY指示正常传输,EXOKAY指示独占访问成功,SLVERR指示slave发生错误,DECERR指示译码错误,没有地址对应的slave
AMBA总线协议AXI——学习笔记

AMBA总线协议AXI——学习笔记

3.5 读地址通道

ARVALID:握手信号
ARREADY:握手信号
ARADDR[12:0]:读地址信号
ARPROT[2:0]:传输的特权等级和安全等级
ARID[3:0]:读地址ID
ARCACHE[3:0]
ARLEN[7:0]:burst的长度
ARLOCK
ARBURST[3:0]
ARSIZE[3:0]

3.6 读数据通道

RVALID:握手信号
RREDAY:握手信号
RDATA[31:0]:读数据
RRESP[1:0]:反馈信号
RLAST:用来指示每个事务传输过程中的最后一个数据,表示当前事务传输结束
RID[3:0]:读ID,必须和ARID匹配

3.7 低功耗接口信号

AMBA总线协议AXI——学习笔记

3.8 数据通道信号总结

  • valid和ready在每个通道是成对出现的
  • 相比于写数据通道,读数据通道中多出了读响应信号,因而省去了单独的读响应通道。也就是说,读传输的响应信息是附加在读数据通道上的,写传输的写响应有专门的写响应通道
  • 如果是AXI4-lite版本,则信号只有最基本的valid、ready、addr、data、resp、strb
  • 突发式读写的地址不能超过4KB,防止一次burst跨越多个slave的情况

4、读写时序图

全部 5 个通道使用相同的 VALID/READY 握手机制传输数据及控制信息。

  • 传输源产生 VLAID 信号来指明何时数据或控制信息有效。
  • 目地源产生 READY信号来指明已经准备好接受数据或控制信息。
  • 传输发生在 VALID 和 READY 信号同时为高的时候。

对于master来说,写数据写地址读地址这三个是传输源,valid由master产生,并且等待slave端给出ready信号。
对于slave来说,写响应读数据这两个是传输源,他们先产生valid,等待master给出ready信号。

4.1 读burst

只发送一个地址,后面数据的地址在此基础上进行自增

AMBA总线协议AXI——学习笔记

4.2 读重叠burst

主机一开始传送了两个地址给设备。设备在完全处理完第一个地址的数据之后才开始处理第二个地址的数据。

AMBA总线协议AXI——学习笔记

4.3 写burst

主机把地址和控制信号发送到写地址通道,然后主机发送数据到写数据通道,发送完WLAST拉高一个周期。
当设备接收完所有数据之后他将一个写响应发送回主机来表明写事务完成
AMBA总线协议AXI——学习笔记

5、握手信号

  • valid和ready同时为高的时候进行数据传输

  • VALID信号一旦拉高,除非READY信号拉高接收数据完成,不会主动变低,否则的话表面此次传输失败了

5.1 VALID 先变高 READY 后变高

主机数据先有效,后从机可以接收数据时,拉高ready

AMBA总线协议AXI——学习笔记

5.2 READY 先变高 VALID 后变高

从机先准备好接收数据了,后主机数据才有效

AMBA总线协议AXI——学习笔记

5.3 VALID 和 READY 信号同时变高

表明数据有效的同时也可以进行采样

AMBA总线协议AXI——学习笔记

6、不同数据通道的约束关系

单箭头表示两者的先后顺序没有要求,双箭头表示前者必须先于后者

  • 写数据可以先于相应的写地址,也可以和写地址在同一个周期出现,但写响应必须在写事务的最后才出现
  • 读数据必须在读地址之后出现

6.1 读操作约束

AMBA总线协议AXI——学习笔记

6.2 写操作约束

写回复通路的信号传递一定晚于写数据通路

AMBA总线协议AXI——学习笔记

7、AXI outstanding

AXI outstanding:具有outstanding的能力,也就是发送出去的地址,不等数据响应,就可以发送下一次的地址。 可以把地址都发出去,再等待所有数据的响应,这是AHB和APB协议所不具有的。

8、乱序传输 Out of order

相同ID tag的事务必须有序完成,而不同ID tag可以乱序完成。

AMBA总线协议AXI——学习笔记

在AXI4协议中发现写乱序提升性能效果不大,因此去除了WID,即去除了写乱序的操作,但保留了读乱序操作。 (做过选择题,AXI4是没有WID的)

  • 不同主机的传输事务没有顺序要求
  • 同一个主机的不同ID事务,没有顺序要求
  • 相同的AWID和ARID的读写事务之间没有顺序要求,除非主机有顺序要求
  • 相同AWID的写事务必须按照顺序依次写入主机发送的地址内
  • 相同ARID分情况讨论:当从相同设备读相同的ARID时,设备必须确保读数据按照相同的地址顺序接受;当从不同的设备读相同的ARID时,接口处必须确保读数据按照主机发送的相同的地址顺序。

9、原子操作

如果有多个master对同一个地址进行读写操作时,可能会造成数据的错误读写

ID扩展操作:master给出数据到总线时,总线会对ID进行扩展,扩展内容目的是为了标记是由哪个master发出来的;因而slave返回数据或响应时总线可以根据扩展内容知道是哪个master发出来的并返还给他
AMBA总线协议AXI——学习笔记

9.1 锁存传输 Locked access

在某个master和slave传输期间,总线不会去响应其他master的读写请求。
等所有的lock操作结束之后,发送一个unlock的传输就行解锁。

  • 优点:可以解决访存冲突问题
  • 缺点:传输效率较低,阻碍其他master对其他slave的访问

9.2 独占传输 Exclusive access

目的:解决lock锁死效率较低的问题,由slave来反馈传输是否成功,master的访问是自由的

主机在请求独占式存取时,设备会返回两个响应分别是EXOKAY和OKAY。

  • EXOKAY是指设备支持独占式存取,而OKAY是指设备不支持独占式存取。
  • 如果一个设备不支持独占式存取,可以忽略信号ARLOCK[1:0]和AWLOCK[1:0]。他必须提供OKAY响应对正常式存取和独占式存取。
  • exclusive传输要求burst传输的起始地址要对齐

10、非对齐传输

AHB:对齐传输,例如32bit,按照0-4-8-c传输
AXI:对齐和不对齐传输都存在

AMBA总线协议AXI——学习笔记
非对齐传输:32bit的起始地址可以是7,但是后面的地址必须对齐,也就是AXI只允许一个burst的第一笔数据地址不对齐
要和WSRTB信号搭配使用。

AMBA总线协议AXI——学习笔记
AMBA总线协议AXI——学习笔记文章来源地址https://www.toymoban.com/news/detail-422721.html

到了这里,关于AMBA总线协议AXI——学习笔记的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【ARM AMBA AXI 入门 10 - AXI 总线 DATA信号与 STRB 信号之间的关系 】

    请阅读 【ARM AMBA AXI 总线 文章专栏导读】 AXI总线是ARM公司设计的高性能处理器接口,其中 STRB 和 DATA 信号在AXI协议中有特殊的含义和关系。 DATA信号 :在AXI中,DATA信号用于在读写操作中传输实际的数据。数据的大小可以根据AXI接口的位宽来变化,例如 32 位、 64 位或 128 位等

    2024年02月11日
    浏览(45)
  • AMBA协议- AXI协议指南(1)

    目录 1.概述 2.什么是amba协议, 为什么使用它?  AMBA 如何发展 3.axi 协议概述  AXI in a multi-manager system 4.Channel transfers and transactions  5. 通道信号 本文介绍了一个名为Advanced Microcontroller Bus Architecture (AMBA) AXI的协议,它是现代SoC(System-on-Chip)设计中非常流行的一个协议。这个指

    2024年01月23日
    浏览(35)
  • AMBA协议AXI-Stream(协议信号、设计实践)

      AXI-Stream(以下简称AXIS)是AMBA协议的AXI协议三个版本中(AXI4-FULL、AXI4-Lite、AXI4-Stream)最简单的一个协议;是AXI4中定义的面向数据流的协议,常用于对数据流的处理,如: 摄像头 高速AD Xilinx的AXI-DMA模块   在进行SOC设计中需要高速数据传输处理的场合,常常使用AXIS协

    2024年02月06日
    浏览(74)
  • AMBA协议AXI-Lite(AXI-Lite介绍)

    AXI_Lite顾名思义即简化版的AXI协议,是对完整的AXI协议裁剪后的AXI协议; 特点: 突发长度永远是1,即只能单次读写,无法连续读写,常用于配置寄存器; 由于删减了逻辑,其资源也消耗较少; 地址映射,相较于AXI-Stream,AXI-Lite的每个数据读写都需要对应的地址; AXI_Lite的系

    2024年02月13日
    浏览(55)
  • 【ARM AMBA AXI 入门 3 - AXI 协议中的 Outstanding transfer 】

    请阅读 【ARM AMBA AXI 总线 文章专栏导读】 上篇文章:ARM AMBA AXI 入门 2 - AXI协议中的BURST 下篇文章:ARM AMBA AXI 入门 4 - AXI 协议中的 Out-of-Order transfer and interleave 介绍

    2024年02月16日
    浏览(45)
  • 【ARM AMBA AXI 入门 13 -- AXI 协议中 RRESP 信号详细介绍】

    请阅读 【ARM AMBA AXI 总线 文章专栏导读】 在 AXI (Advanced eXtensible Interface) 协议中, RRESP 信号用来表示读取事务的响应状态,它由从设备(Slave)发往主设备(Master)来通知读取操作的完成情况。 RRESP 信号是一个 2 位的编码字段,用于指示读取操作是否成功完成,或者在操作过

    2024年02月04日
    浏览(168)
  • 【ARM AMBA AXI 入门 5 - AXI 协议中的 QoS信号及User信号介绍 】

    请阅读 【ARM AMBA AXI 总线 文章专栏导读】 上一篇:ARM AMBA AXI 入门 4 - AXI 协议中的 Out-of-Order transfer and interleave 介绍 下一篇:ARM AMBA AXI 入门 6 - AXI3 协议中的锁定访问之AxLOCK信号

    2024年02月16日
    浏览(40)
  • 【ARM AMBA AXI 入门 8 - AXI 协议中 RID/ARID/AWID/WID 信号】

    请阅读 【ARM AMBA AXI 总线 文章专栏导读】 上篇文章:ARM AMBA AXI 入门 7 - AXI 协议中的独占访问 使用背景介绍 下篇文章:ARM AMBA AXI 入门 9 - AXI 总线 AxPROT 与安全之间的关系

    2024年02月15日
    浏览(61)
  • AMBA总线协议(3)——AHB(一)

    系列文章合集:AMBA总线协议(0)——目录与传送门 目录 一、前言 二、什么是AHB总线 1、概述 2、一个典型的基于AHB总线的微处理器架构 3、基本的 AHB 传送特性        三、AMBA AHB总线互联         四、小结         在之前的文章中我们初步的了解了一下AMBA总线中AHB,

    2024年02月12日
    浏览(34)
  • AMBA总线协议(4)——AHB(二)

    系列文章合集:AMBA总线协议(0)——目录与传送门 目录 一、前言 二、AHB操作概述 三、AHB 基本传输 1、简单传输         2、带有等待的传输 3、多重传输 四、AHB传输类型 五、小结          在之前的文章中对于AMBA AHB做了一个简单的介绍,AHB 主要用于高性能模块(如

    2024年02月12日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包