AXI协议:AXI通道上的信号
Posted 呆呆象呆呆
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AXI协议:AXI通道上的信号相关的知识,希望对你有一定的参考价值。
7 通道上的信号
7.1 全局信号
AXI 总线中有两个全局信号:
- ACLK,全局的时钟信号,所有的传输操作都发生在 ACLK 的上升沿
- ARESETn,全局复位信号,低电平有效。在复位问题上,AXI 规定了一些细节,会在后续的文章中讨论。注意:ARESETn 一般是一个同步复位信号,A 代表 AXI,而不是 Async。
7.2 写地址通道
信号 | Source | 描述 |
---|---|---|
AWID[3:0] | Master | 写入地址的ID。该信号是信号写入地址组的标识标签。 |
AWADDR[31:0] | Master | 写入地址。写入地址总线给出写入burst事务中第一次事务的地址。相关控制信号用于确定突发中剩余事务的地址。 |
AWLEN[3:0] | Master | 突发长度。突发长度给出了突发中事务的确切数量。此信息同时也确定与事务相关的地址。 |
AWSIZE[2:0] | Master | 突发大小。该信号表示突发中每次事务的大小。字节通道选通准确指示要更新的字节通道。 |
AWBURST[1:0] | Master | 突发类型。突发类型以及大小信息详细说明了如何计算突发内每次传输的地址。 |
AWLOCK[1:0] | Master | 锁类型。该信号提供了有关事务的原子特性的附加信息。 |
AWCACHE[3:0] | Master | 缓存类型。该信号表示事务的可缓冲、可缓存、直写、回写和分配属性。 |
AWPROT[2:0] | Master | 保护类型。此信号表示事务的正常、特权或安全保护级别,以及事务是数据访问还是指令访问。 |
AWQOS | Master | 服务质量。为每个写事务发送的QoS标识符。仅在AXI4中实现。 |
AWREGION | Master | 区域标识符。允许从设备上的单个物理接口用于多个逻辑接口。仅在AXI4中实现。 |
AWUSER | Master | 用户信号。写入地址通道中的可选用户定义信号。仅在AXI4中受支持。 |
AWVALID | Master | 写入地址有效。该信号表示有效的写入地址和控件信息可用:高电平代表地址和控制信息可用,低电平地址和控制信息不可用。地址和控制信息保持稳定,直到地址确认信号AWREADY变高。 |
AWREADY | Slave | 写入地址就绪。该信号表示从机已准备好接受地址和相关控制信号:高电平salva就绪,低电平slave未就绪。 |
写地址通道的信号可以分为 3 部分:
- 经常用到的基础信号(AWADDR,AWVALID,AWREADY)
- 突发传输的控制信号(AWLEN:突发传输的长度,即在一次突发传输中数据传输的个数。AWSIZE:每次突发传输中的数据传输的位宽。AWBURST:突发传输的类型。),突发传输指的是传输一次起始地址后,进行多次地址上连续的读写操作。
- 内存访问相关以及其他的在基础阶段不是很常用的信号,其他信号包括和内存原子操作有关的 AWLOCK,AWCACHE,AWPROT 以及用于用户自定义的 AWUSER 信号,都将在以后的文章涉及。
7.3 写数据通道
信号 | Source | 描述 |
---|---|---|
WID[3:0] | Master | 写入ID标记。该信号是写入数据传输的ID标签。WID值必须与写入事务的AWID值匹配。 |
WDATA[31:0] | Master | 写入数据。写入数据总线可以是8、16、32、64、128、256、512或1024位宽。 |
WSTRB[3:0] | Master | 写入选通。该信号指示要在内存中更新的字节通道。写入数据总线的每八位有一个写入选通。因此,WSTRB[n]对应于WDATA[(8×n)+7:(8×n)]。 |
WLAST | Master | 最后写入。该信号表示写入突发中的最后一次事务。 |
WUSER | Master | 用户信号。写入数据通道中的可选用户定义信号。仅在AXI4中受支持。 |
WVALID | Master | 写入有效。该信号表示有效写入数据和选通可用:高电平写入数据和选通可用,低电平写入数据和选通不可用。 |
WREADY | Slave | 写就绪。该信号表示从机可以接受写入数据:高电平slave就绪,低电平slave未就绪 |
值得注意的是 AXI4 不再支持 WID 信号,这和 AXI4 的乱序机制有关,AXI4 规定所有数据通道的数据必须顺序发送。
WDATA 与常见的握手信号不再赘述,WDATA 的可使用位宽可以见上文。WSTRB 信号用于标记传输数据中有效的字节,每个 WSTRB 位对应一个字节的位宽,比如数据位宽为 64 位,那么 WSTRB 信号的位宽就是 1 个字节,共 8 位。
WLAST 标识一次突发传输中最后一次数据传输,如果没有正确的 WLAST 的信号,就会造成写入地址的混乱,导致slave无法正确接收写数据,从而造成slave不再拉高 READY 信号的现象。
7.4 写回复通道
信号 | Source | 描述 |
---|---|---|
BID[3:0] | Slave | 响应ID。写入响应的标识标签。BID值必须与slave响应的写入事务的AWID值匹配。 |
BRESP[1:0] | Slave | 写入响应。该信号指示写入事务的状态。两位编码,允许的响应为OK、EXOKAY、SLVERR和DECERR。 |
BUSER | Slave | 用户信号。写回复通道中的可选用户定义信号。仅在AXI4中受支持。 |
BVALID | Slave | 写入响应有效。该信号表示有效的写入响应可用:高电平写入响应可用,低电平写入响应不可用。 |
BREADY | Master | 响应就绪。该信号表示主机可以接受响应信息。高电平master就绪,低电平master未就绪。 |
与写数据通道不同,写回复通道支持 BID,即支持乱序的写回复,关于乱序的问题,我们稍后再谈。BRESP 回复上一次的写状态。
7.5 读地址通道
信号 | Source | 描述 |
---|---|---|
ARID[3:0] | Master | 读取地址ID。该信号是信号读取地址组的识别标签。 |
ARADDR[31:0] | Master | 读取地址。读取地址总线提供读取突发事务的初始地址。只提供突发的起始地址,与地址一起发出的控制信号详细说明了如何为突发中的其余传输计算地址。 |
ARLEN[3:0] | Master | 突发长度。突发长度给出了突发中传输的确切数量。此信息确定与地址相关的数据传输数量。 |
ARSIZE[2:0] | Master | 突发大小。该信号指示突发中每次传输的大小。 |
ARBURST[1:0] | Master | 突发类型。突发类型以及大小信息详细说明了如何计算突发内每次传输的地址。 |
ARLOCK[1:0] | Master | 锁类型。该信号提供了有关传输的原子特性的附加信息。 |
ARCACHE[3:0] | Master | 缓存类型。该信号提供了有关传输的可缓存特性的附加信息。 |
ARPROT[2:0] | Master | 保护类型。该信号为事务提供保护单元信息。 |
ARQOS | Master | 服务质量。为每个读事务发送的QoS标识符。仅在AXI4中实现。 |
ARREGION | Master | 区域标识符。允许从设备上的单个物理接口用于多个逻辑接口。仅在AXI4中实现。 |
ARUSER | Master | 用户信号。读地址通道中的可选用户定义信号。仅在AXI4中受支持。 |
ARVALID | Master | 读取地址有效。当该信号为高时,表明读取地址和控制信息有效,并将保持稳定,直到地址确认信号ARREADY为高。高电平表示地址和控制信息有效,低电平表示地址和控制信息无效。 |
ARREADY | Slave | 读取地址就绪。该信号表示slave已准备好接受地址和相关控制信号:高电平slave就绪,低电平slave未重新启动 |
读地址通道和写地址通道的信号十分类似。
7.6 读数据通道
信号 | Source | 描述 |
---|---|---|
RID[3:0] | Slave | 读取ID标签。该信号是信号读取数据组的ID标签。RID值由从属服务器生成,并且必须与它所响应的读取事务的ARID值匹配。 |
RDATA[31:0] | Slave | 读取数据。读取数据总线可以是8、16、32、64、128、256、512或1024位宽。 |
RRESP[1:0] | Slave | 读取响应。该信号指示读取事务的状态。允许的响应为OK、EXOKAY、SLVERR和DECERR。 |
RLAST | Slave | 最后阅读。该信号表示读取突发中的最后一次事务。 |
RUSER | Slave | 用户信号。读取数据通道中的可选用户定义信号。仅在AXI4中受支持。 |
RVALID | Slave | 读取有效。该信号表示所需的读取数据可用,并且读取传输可以完成:高电平表示读取数据可用,低电平表示读取数据不可用。 |
RREADY | Master | 读取准备就绪。该信号表示master可以接受读取的数据和响应信息:高电平表示master就绪,低电平表示master未就绪 |
读数据通道与写数据通道类似,区别有两点:
- 支持 RID 信号
- 因为读回复信息在读数据通道上传递,所以集成了 RRESP 信号,用于返回读状态,值得注意的是读回复信号和读数据一样,发送方(source)为从机(slave)。
7.7 通道间的关系
首先,再次声明一般情况下 AXI 的五个通道之间是独立的。但是 AXI 的通道间需要保证以下三种联系(relationship):
- 写回复必须在其所属事务的最后一个写数据完成后(write response must follow the last write transfer in the transaction)
- 读数据必须在接收到读地址信号后产生
- 通道间的握手需要满足通道间的握手依赖性(handshake dependencies)
除了这三种联系外,通道之间保持独立关系。
以上是关于AXI协议:AXI通道上的信号的主要内容,如果未能解决你的问题,请参考以下文章