一、前言
在之前的文章中,我们主要介绍了什么是AXI协议,AXI协议的特点与优点,然后对于AXI协议非常重要的五通道结构进行了介绍,了解了5个通道各自的作用。本文我们继续AXI协议的学习,我们将讨论5个通道的具体内容和相对应的信号。这一部分的内容现在对于大家来说可能很难理解,但是没有关系,随着学习的深入,我们会逐步讲解这里面的所有现在,现在只需要把它们当作一个可以查阅的手册,快速阅读有一个基本的印象即可。
二、AXI4全局信号
AXI具有5个通道,但是有些信号并不属于其中的单一通道,而是属于整个AXI协议,这些信号就是我们讨论的AXI4全局信号。
信号 | 源 | 描述 |
ACLK | 时钟源 | 全局时钟信号。在全局时钟的上升沿采样所有的信号 |
ARESETn | 复位源 | 全局复位信号,低电平有效 |
三、写地址通道及其信号
我们知道写地址通道的缩写是AW,所以该通道内的所有信号都是以AW开头的。
信号 | 源 | 描述 |
AWID[3:0] | 主机 | 写地址ID,这个信号是写地址信号组的ID tag。 |
AWADDR[31:0] | 主机 | 写地址。写地址信号给出猝发交易的第一个传输地址。相关的控制信号用于确定猝发中剩余传输的地址。 |
AWLEN[7:0] | 主机 | 猝发长度。给出猝发中准确的传输个数。该信号给出了和地址相关的数据传输个数。 |
AWSIZE[2:0] | 主机 | 猝发大小。这个信号确定猝发中每个传输的宽度。字节选通来说明需要更新的字节通道。 |
AWBURST[1:0] | 主机 | 猝发类型。该信息与传输宽度信息一起,表示在猝发过程中,将地址用于每个传输的方法。 |
AWLOCK[1:0] | 主机 | 锁类型。该信号提供了关于传输原子特性的额外信息(普通和互斥访问)。 |
AWCACHE[3:0] | 主机 | Cache类型。这信号指明事务的bufferable、cacheable、write-through、write-back、allocate attributes信息。 |
AWPROT[2:0] | 主机 | 保护类型。该信号表示交易的普通,特权或安全保护级,以及交易是数据访问还是指令访问。 |
AWVALID | 主机 | 写地址有效。 1 = 地址和控制信息有效 0 = 地址和控制信息无效 这个信号会一直保持,直到AWREADY变为高。 |
AWREADY | 从机 | 写地址准备。这个信号用来指明设备已经准备好接受地址和控制信息了。 1 = 设备准备好 0 = 设备没准备好 |
AWQOS[3:0] | 主机 | 用于每个写交易地址通道上的4位Qos标志符(可作为优先级标志) |
AWREGION[3:0] | 主机 | 用于每个写交易通道上的域标识符 |
四、写数据通道信号及其信号
我们知道写数据通道的缩写是W,所以该通道内的所有信号都是以W开头的。
信号 | 源 | 描述 |
WDATA[31:0] | 主机 | 写数据。写数据总线的位宽可以是8,16,32,64,128,256,512和1024位。 |
WSTRB[3:0] | 主机 | 写选通。WSTRB[n]标示的区间为WDATA[(8*n)+7:(8*n)]
|
WLAST | 主机 | 写的最后一个数据。表示猝发的最后一个传输 |
WVALID | 主机 | 写有效 1 = 写数据和选通有效 0 = 写数据和选通无效 |
WREADY | 从机 | 写准备。指明从机已经准备好接受数据了 1 = 设备就绪 0 = 设备未就绪 |
在AXI3,还有WID信号,表示写ID tag,WID的值必须与AWID的值匹配。
五、写响应通道信号及其信号
我们知道写响应通道的缩写是B,所以该通道内的所有信号都是以B开头的。
信号 | 源 | 描述 |
BID[3:0] | 从机 | 响应ID , 这个数值必须与AWID的数值匹配。 |
BRESP[1:0] | 从机 | 写响应。这个信号指明写事务的状态。可能有的响应:OKAY、EXOKAY、SLVERR、DECERR。 |
BVALID | 从机 | 写响应有效。 1 = 写响应有效 0 = 写响应无效 |
BREADY | 主机 | 响应准备。该信号表示主机已经能够接受响应信息。 1 = 主机就绪 0 = 主机未就绪 |
六、读地址通道信号及其信号
我们知道读地址通道的缩写是AR,所以该通道内的所有信号都是以AR开头的。
信号 | 源 | 描述 |
ARID[3:0] | 主机 | 读地址ID。该信号用于读地址信号组的标记 |
ARADDR[31:0] | 主机 | 读地址。该信号给出读猝发交易的第一个传输地址,只提供猝发的开始地址和控制信号,详细讲述了在猝发的剩余传输中计算地址的方法。 |
ARLEN[7:0] | 主机 | 猝发长度。该信号给出了猝发中准确的传输个数。该信息给出了与地址相关的数据传输数量。 |
ARSIZE[2:0] | 主机 | 猝发大小。该信号确定猝发中每个传输的宽度。字节通道选通用来指示需要更新的字节通道。 |
ARBURST[1:0] | 主机 | 猝发类型。该信号与宽度信息一起,用于在猝发过程中,确定将地址用于每个传输的方法。 |
ARLOCK[1:0] | 主机 | 锁类型。该信号提供了关于传输原子特性的额外信息(普通和互斥访问)。 |
ARCACHE[3:0] | 主机 | Cache类型。该信号提供可缓存传输属性 |
ARPROT[2:0] | 主机 | 保护类型。该信号提供用于传输的保护单元信息。 |
ARVALID | 主机 | 读地址有效。信号一直保持,直到ARREADY为高。 1 = 地址和控制信息有效 0 = 地址和控制信息无效 |
ARREADY | 从机 | 读地址准备。指明从机已经准备好接受数据了。 1 = 设备就绪 0 = 设备未就绪 |
ARQOS[3:0] | 主机 | 用于每个读交易地址通道上的4位QoS标志位(可作为优先级标志) |
ARREGION[3:0] | 主机 | 用于每个读交易地址上的域标志符 |
七、读数据通道信号
我们知道读数据通道的缩写是R,所以该通道内的所有信号都是以R开头的。
信号 | 源 | 描述 |
RID[3:0] | 从机 | 读ID tag。RID的数值必须与ARID的数值匹配。 |
RDATA[31:0] | 从机 | 读数据。读数据总线可以是8,16,32,64,128,256,512和1024位 |
RRESP[1:0] | 从机 | 读响应。这个信号指明读传输的状态:OKAY、EXOKAY、SLVERR、DECERR。 |
RLAST | 从机 | 读事务传送的最后一个数据。 |
RVALID | 从机 | 读数据有效。 1 = 读数据有效。 0 = 读数据无效。 |
RREADY | 从机 | 读数据准备。 1 = 主机就绪 0 = 主机未就绪 |
八、低功耗接口信号
信号 | 源 | 描述 |
CSYSREQ | CLOCK controller | 系统低功耗请求。此信号来自系统时钟控制器,使外围设备进入低功耗状态。 |
CSYSACK | 外围设备 | 低功耗请求应答。 |
CACTIVE | 外围设备 | Clock active 1 = 外围设备时钟请求 0 = 外围设备时钟无请求 |