AXI协议基础知识

AXI协议基础知识

  • 1、AXI简介
  • 2、AXI 特点
  • 3、AXI 总体结构
  • 4、AXI 协议中的信号
      • 4.1 全局信号
      • 4.2 写地址通道中的信号
      • 4.3 写数据通道中的信号
      • 4.4 写响应通道中的信号
      • 4.5 读地址通道中的信号
      • 4.6 读数据通道中的信号
  • 5、主机/从机之间的握手过程以及READY和VALID握手信号的关系
      • 5.1 VALID和READY信号的三种关系
      • 5.2 五个通道之间的关系
      • 5.3 握手信号之间的关系
  • 6、AXI突发式读写的类型、读写事务地址的计算
      • 6.1 一次突发的地址不能跨越4K边界。
      • 6.2 信号AWLEN或信号ARLEN指定每一次突发式读写所传输的数据的个数。
      • 6.3 ARSIZE信号或AWSIZE信号指定每一个时钟节拍所传输的数据的最大位数。
      • 6.4 三种突发式读写的类型
  • 7、AXI中的ID tags
      • 7.1 五个通道中的事务ID tags

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

1、AXI简介

AXI(Advanced eXtensible Interface)是一种总线协议,该协议是ARM公司提出的AMBA(Advanced Microcontroller Bus Architecture)3.0协议中最重要的部分,是一种面向高性能、高带宽、低延迟的片内总线。它的地址/控制和数据相位是分离的,支持不对齐的数据传输,同时在突发传输中,只需要首地址,同时分离的读写数据通道、并支持显著传输访问和乱序访问,并更加容易就行时序收敛。

2、AXI 特点

  • 单向通道体系结构,信息流只以单方向传输,简化时钟域间的桥接,减少门数量。
  • 通过并行执行猝发操作,极大地提高了数据吞吐能力,可在更短的时间内完成任务,在满足高性能要求的同时,又减少了功耗。
  • 独立的地址和数据通道。地址和数据通道分开,能对每一个通道进行单独优化,可以根据需要控制时序通道,将时钟频率提到最高,并将延时降到最低。

3、AXI 总体结构

  1. AXI总线共有5个通道分别是read address channel 、write address channel 、read data channel 、 write data channel、 write response channel。每一个AXI传输通道都是单方向的。
  2. 读事务的结构图如下:
    AXI协议基础知识_第1张图片
  3. 写事务的结构图如下:
    AXI协议基础知识_第2张图片
  4. 这5条独立的通道都包含一个信息信号和一个双路的VALD、READY握手机制,信息源通过VALID信号来指示通道中的数据和控制信息什么时候有效。目地源用READY信号来表示何时能够接收数据。读数据和写数据通道都包括一个LAST信号,用来指明一个事务传输的最后一个数据。
  5. 传输地址信息和数据都是在VALID和READY同时为高时有效。

4、AXI 协议中的信号

4.1 全局信号

信号 描述
ACLK Clock source 全局时钟信号
ARESETn Reset source 全局复位信号,低电平有效

4.2 写地址通道中的信号

信号 描述
AWID[3:0] 主机 写地址ID,这个信号是写地址信号组的ID tag。
AWADDR[31:0] 主机 写地址
AWLEN[3:0] 主机 突发传输长度,此长度决定突发式写所传输的数据的个数,即一次突发中传输的数据数量为AWLEN + 1。
AWSIZE[2:0] 主机 突发传输宽度,每周期传输的数据字节数量。即DATA_WIDTH/8 = 2AWSIZE 。 指在burst传输的次数中一次传输的字节数,具体的数值等于2AWSIZE 。因此一次burst传输的总共字节数等于(burst的次数) * 2AWSIZE
AWBURST[1:0] 主机 突发类型,共FIXED,INCR,WRAP三种,下面详细介绍。
AWLOCK[1:0] 主机 总线锁信号,normal, exclusive, locked。
AWCACHE[3:0] 主机 Cache类型。这信号指明事务的bufferable、cacheable、write-through、write-back、allocate attributes信息。
AWVALID 主机 写地址有效。1 = 地址和控制信息有效,0 = 地址和控制信息无效;该信号会一直保持,直到AWREADY变为高。
AWREADY 从机 该信号用来指明从机已经准备好接受地址和控制信息。1 = 从机已经准备好,0 = 从机未准备好。

4.3 写数据通道中的信号

信号 描述
WID[3:0] 主机 写ID tag,WID的值必须与AWID的值匹配。
WDATA[31:0] 主机 写数据
WSTRB[3:0] 主机 写数据有效的字节线,用来表明哪8bits数据是有效的。
WLAST 主机 突发写传输的最后一个数据
WVALID 主机 写数据有效信号,1 = 此时数据有效,0 = 此时数据无效。
WREADY 从机 写就绪信号,代表从机是否已经准备好接收数据了。1 = 从机已经准备好,0 = 从机未准备好。

4.4 写响应通道中的信号

信号 描述
BID[3:0] 从机 响应ID,这个数值必须与AWID的数值匹配。
BRESP[1:0] 从机 写响应。这个信号指明写事务的状态。可能有的响应:OKAY、EXOKAY、SLVERR、DECERR。
BVALID 从机 写响应有效。1 = 写响应有效,0 = 写响应无效。
BREADY 主机 主机接受响应就绪信号 。该信号表示主机是否能够接受响应信息。1 = 主机就绪,0 = 主机未就绪。

4.5 读地址通道中的信号

信号 描述
ARID[3:0] 主机 响应ID,这个数值必须与AWID的数值匹配。
ARADDR[31:0] 主机 读地址。
ARLEN[3:0] 主机 突发传输长度,此长度决定突发式写所传输的数据的个数,即一次突发中传输的数据数量为AWLEN + 1。
ARSIZE[2:0] 主机 突发传输宽度,每周期传输的数据字节数量。即DATA_WIDTH/8 = 2AWSIZE
ARBURST[1:0] 主机 突发式读类型。共FIXED,INCR,WRAP三种,下面详细介绍。
ARLOCK[1:0] 主机 总线锁信号,normal, exclusive, locked。
ARCACHE[3:0] 主机 Cache类型。这信号指明事务的bufferable、cacheable、write-through、write-back、allocate attributes信息。
ARPROT[2:0] 主机 保护类型。
ARVALID 主机 读地址有效。信号一直保持不变,直到ARREADY为高。1 = 地址和控制信息有效,0 = 地址和控制信息无效。
ARREADY 从机 从机接收读地址就绪。指明从机已经准备好接收读地址了。1 = 从机就绪,0 = 从机未就绪。

4.6 读数据通道中的信号

信号 描述
RID[3:0] 从机 读ID tag。RID的数值必须与ARID的数值匹配。
RDATA[31:0] 从机 读数据。
RRESP[1:0] 从机 读响应信号。这个信号指明读传输的状态:OKAY、EXOKAY、SLVERR、DECERR。
RLAST 从机 读事务传送的最后一个数据。
RVALID 从机 读数据有效。1 = 读数据有效。0 = 读数据无效。
RREADY 主机 主机接收读数据信号是否就绪。1 = 主机就绪,0 = 主机未就绪。

5、主机/从机之间的握手过程以及READY和VALID握手信号的关系

5.1 VALID和READY信号的三种关系

全部5个通道使用相同的VALID/READY握手机制传输数据及控制信息。传输源产生VLAID信号来指明何时数据或控制信息有效。而目地源产生READY信号来指明已经准备好接受数据或控制信息。传输发生在VALID和READY信号同时为高的时候。

  • VALID先变高READY后变高。时序图如下,数据传输在箭头处发生。
    AXI协议基础知识_第3张图片

  • READY先变高VALID后变高。时序图如下,数据传输在箭头处发生。
    AXI协议基础知识_第4张图片

  • VALID和READY信号同时变高。时序图如下,数据传输在箭头处发生。
    AXI协议基础知识_第5张图片

5.2 五个通道之间的关系

两种关系必须保持:

  • 读数据必须总是跟在与其数据相关联的地址之后。
  • 写响应必须总是跟在与其相关联的写事务的最后出现。

5.3 握手信号之间的关系

5.3.1 写事务握手信号之间的关系:
AXI协议基础知识_第6张图片

  • 主机不可以等待从机先给出AWREADY或WREADY信号信号后再给出信号AWVALID或WVLAID。
  • 从机可以等待信号AWVALID或WVALID信号有效或者两个都有效之后再给出AWREADY信号。
  • 从机可以等待AWVALID或WVALID信号有效或者两个信号都有效之后再给出WREADY信号

5.3.2 读事务握手信号之间的关系:
AXI协议基础知识_第7张图片

  • 从机可以在ARVALID出现的时候在给出ARREADY信号,也可以先给出ARREADY信号,再等待ARVALID信号。
  • 从机必须等待ARVALID和ARREADY信号都有效才能给出RVALID信号,开始数据传输。

6、AXI突发式读写的类型、读写事务地址的计算

6.1 一次突发的地址不能跨越4K边界。

4k边界对齐的最大原因是系统中定义一个page大小为4kBytes,为了更好设定每个slave的访问attribute,就给一个slave划分4k空间。AXI协议中一次突发不能越过4K边界是为了避免一笔burst交易访问两个slave(每个slave都是4k对齐),如果一次burst传输访问大于4k,则可能会造成地址从slave1增加了slave2上,slave2又不响应,导致传输无法完成。

6.2 信号AWLEN或信号ARLEN指定每一次突发式读写所传输的数据的个数。

AXI协议基础知识_第8张图片

6.3 ARSIZE信号或AWSIZE信号指定每一个时钟节拍所传输的数据的最大位数。

AXI协议基础知识_第9张图片

6.4 三种突发式读写的类型

AXI协议定义了三种突发式读写的类型:固定式的突发读写、增值式突发读写、包装式突发读写。用信号ARBURST或AWBURST来选择突发式读写的类型。具体如下:
AXI协议基础知识_第10张图片

  • 固定式突发读写是指地址是固定的,每一次传输的地址都不变。这样的突发式读写是重复的对一个相同的位置进行存取。例如FIFO。
  • 增值式突发读写是指每一次读写的地址都比上一次的地址增加一个固定的值(2AWSIZE)。
  • 包装式突发读写跟增值式突发读写类似。包装式突发读写的地址是包数据的低地址当到达一个包边界。

7、AXI中的ID tags

7.1 五个通道中的事务ID tags

名称 描述
AWID 写地址群组信号
WID 主机传送一个WID去匹配与地址相一致的AWID
BID 从机会传送BID去匹配与AWID和WID相一致的事务
ARID 读地址群组信号
RID 从机传送RID去匹配与ARID相一致的事务

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

你可能感兴趣的:(Verilog,fpga开发,硬件工程)