AXI总线

9 篇文章 1 订阅
3 篇文章 0 订阅

AXI总线

AXI总线简介

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

AXI的前两代分别是AHB(2.0)、ASB(1.0)。其中AMBA还包含一个APB总线,该总线是专门连接IIC、UART等低带宽接口而设计的。

AXI协议的几个关键特性

  1. 读写地址、数据分开;
  2. 通过字节选通信号(WSTRB)实现支持非对齐数据传输功能;
  3. 使用突发模式时,只需要传输首地址和设置突发长度即可;
  4. 读数据和写数据通道独立,从而支持低功耗DMA;
  5. 支持outstanding功能,可以发送多个地址进行读写;
  6. 支持out-of-order传输(即乱序传输);
  7. 可以比较容易的添加寄存器级,以此来实现时序收敛;
  8. 每个信道都有一对握手信号;
  9. 读数据和写数据通道都包含一个LAST信号,用来指明事物传输的最后一个数据;

AXI总线的基本架构

AXI总线的5个传输通道

AXI总线通过5个通道实现读写操作,这5个通道分别是:读地址通道写地址通道读数据通道写数据通道写响应通道

  • 这5条独立的通道各自包含一个双路的valid和ready握手信号。
  • 在读数据和写数据通道中还包含一个last信号,表示事务传输的最后一个数据。
  • 读数据通道中包含读数据和读响应信号,读响应信号表示读事务的完成。
  • 写数据通道中,每8位数据都会有一个byte lane,该信号表示数据总线上哪些byte数据有效(因为AXI支持不对齐的数据传输);写响应信号表示从设备响应写事务。
  • AXI支持乱序传输,会给每个事务一个IDtag,协议会要求相同IDtag的事务必须有序完成,不同IDtag之间可以乱序完成。
    请添加图片描述

AXI总线的读写流程

  • 主设备向从设备写数据:首先,主设备通过写地址通道向从设备说明要控制的寄存器地址,以及一些突发模式和控制信号;主设备通过写数据通道向从设备写入数据;最后从设备通过写响应通道进行应答;完成向从设备的写数据操作。

请添加图片描述

  • 主设备从从设备读数据:首先,主设备通过读地址通道向从设备说明要控制的寄存器地址和控制信号;当从设备接收到这些信息后偶,会根据这些信息进行读取数据的处理;完成这些处理后,从设备会通过读数据通道将数据发送给主设备。

请添加图片描述

信号描述

1. 全局变量
信号描述
ACLK时钟源全局复位时钟
ARESETn主复位信号全局复位信号,低电平有效
2. 写地址通道(AW)
信号描述个人理解
AWID [3 :0]主机写地址ID ,表示写地址信号组的IDtag。可以联想到刚才的AXI支持乱序传输的功能
AWADDR[31:0]主机写地址。这个就是我们的主要数据
AWLEN [3 :0]主机突发式写的长度 。AXI支持突发模式,表示突发模式的数据个数,最大支持16,但是每次突发的长度需要该信号发送给从设备
AWSIZE[2:0]主机突发式写的大小每次传输的数据大小,2^(AWSIZE),既可以是1-128宽度
AWBURST[1:0]主机突发式写的类型固定式的突发读写(00)、增值式突发读写(01)、包装式突发读写(10)
AWLOCK[1:0]主机锁类型ARLOCK[1:0]或 AWLOCK[1:0]来选择独占式存取,用信号RRESP[1:0]或 BRESP[1:0]来指明独占式存取的成功与否
AWCACHE[3:0]主机Cache类型。这信号指明事务的bufferable、cacheable、write-through、write-back、allocate attributes信息
AWPROT[2:0]主机保护类型1.正常存取或者特权存取,AWPROT[0]2.安全性存取或者没有安全性存取,AWPROT[1] 3.指令存取或者数据存取,AWPROT[2]
AWVALID主机写地址有效。1表示有效,该信号会一直保持,知道AWREADY变为高个人认为这个信号也和AWADDR同步,因为该信号表示的是AWDDR数据的有效性
AWREADY设备从设备应答。1表示设备准备好,0则没准备号表示从设备能够接收地址信号了,拉高应该也就代表着地址接收成功了(或者说只要准备好标志拉高,经过一个时钟周期就默认从设备接收成功了)
3. 写数据通道
信号描述个人理解
WID[3:0]主机写IDtag,WID的值必须与AWID的值匹配联想到AXI支持乱序传输的功能;需与WID匹配,匹配才能表示地址和数据是写到相同的从设备上
WDATA[31:0]主机写数据该通道的主要信息
WSTRB[3:0]主机写阀门。标志的区间为WDATA[(8n)+7:(8n)]表示WDATA中的某个字节
WLAST主机写的最后一个数据应该是突发模式的时候表示该次突发的最后一个数据
WVALID主机写有效,1表示有效表示写数据有效,写数据已经放到总线上了
WREADY设备写就绪,1表示就绪和AWREADY同样的道理
4. 写通道响应
信号描述个人理解
BID[3:0]设备响应ID,必须与AWID匹配也是为了支持乱序传输服务(也不止于此,因为一般都是多个从设备)
BRESP[1:0]设备写响应这个信号指明事务的状态。可能有的响应:OKAY、EXOKAY、SLVERR、DECERR
BVALID设备写响应有效这个就解释了我在理解AWREADY信号时的纠结,该信号应该是辅助判断写操作是否成功
BREADY主机接收响应就绪,1表示主机继续该信号用来表示主机准备好接收响应通道的信号了,感觉就是多级反馈信号,以避免数据出错
5. 读地址通道
信号描述个人理解
ARID [3:0]主机读地址ID ,表示读地址信号组的IDtag。可以联想到刚才的AXI支持乱序传输的功能
ARADDR[31:0]主机读地址。这个就是我们的主要数据
ARLEN [3:0]主机突发式读的长度 。AXI支持突发模式,但是每次突发的长度需要该信号发送给从设备
ARSIZE[2:0]主机突发式读的大小突发式写的大小
ARBURST[1:0]主机突发式读的类型突发式写的类型
ARLOCK[1:0]主机锁类型ARLOCK[1:0]或 AWLOCK[1:0]来选择独占式存取,用信号RRESP[1:0]或 BRESP[1:0]来指明独占式存取的成功与否
ARCACHE[3:0]主机Cache类型。这信号指明事务的bufferable、cacheable、write-through、write-back、allocate attributes信息
ARPROT[2:0]主机保护类型1.正常存取或者特权存取, ARPROT[0] 2.安全性存取或者没有安全性存取, ARPROT[1] 3.指令存取或者数据存取 ARPROT[2]
ARVALID主机读地址有效。1表示有效,该信号会一直保持,知道AWREADY变为高个人认为这个信号也和ARADDR同步,因为该信号表示的是ARADDR数据的有效性
ARREADY设备从设备应答。1表示设备准备好,0则没准备号表示从设备能够接收地址信号了,拉高应该也就代表着地址接收成功了(或者说只要准备好标志拉高,经过一个时钟周期就默认从设备接收成功了)
6. 读数据通道
信号描述个人理解
RID[3:0]设备读IDtag,WID的值必须与AWID的值匹配联想到AXI支持乱序传输的功能;需与WID匹配,匹配才能表示地址和数据是读到相同的从设备上
RDATA[31:0]设备读数据该通道的主要信息
RRESP[1:0]设备读响应。指明传输的状态:OKAY(00)、EXOKAY(01)、SLVERR(10)、DECERR(11)写响应有专门的通道,但是读响应包含在读数据通道内
RLAST设备读的最后一个数据应该是突发模式的时候表示该次突发的最后一个数据
RVALID设备读有效,1表示有效表示读数据有效,读数据已经放到总线上了
RREADY主机读就绪,1表示就绪和ARREADY同样的道理
7. 低功耗接口
信号描述个人理解
CSYSREQ时钟源系统低功耗请求。此信号来自系统时钟控制器,使外围设备进入低功耗状态低功耗信号
CSYSACK外围设备低功耗请求应答
CACTIVE外围设备clock active。1表示外围设备时钟请求
CSYSREQ时钟源系统低功耗请求。此信号来自系统时钟控制器,使外围设备进入低功耗状态低功耗信号
CSYSACK外围设备低功耗请求应答
CACTIVE外围设备clock active。1表示外围设备时钟请求
  • 3
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值