RISC-V MCU中文社区

【分享】 AXI总线知识介绍

发表于 全国大学生集成电路创新创业大赛 2022-05-17 23:15:36
1
258
1

一、队伍介绍

大家好,我们是摸鱼怪小队,队伍编号为CICC2355。

二、AXI总线介绍

AXI总线是ARM公司提出的一种总线协议,是一种面向高性能、高带宽、低延迟的片内总线。Xilinx Vivado提供的IP核一般都是AXI总线接口。如果在项目中需要用到这些IP核,那么了解一些AXI总线相关的基础知识还是比较重要的。在这里,我将基于AXI和ICB总线转换的角度,对AXI4总线进行简单介绍。

不同于ICB总线,AXI总线一共有五个通道,每个通道都只支持单向传输。从主机的角度看,这五个通道分别是:写地址通道、写数据通道、写回复通道、读地址通道、读数据通道。

写地址通道

  • AWADDR:主设备发出。标志着一次写操作的第一次传输地址(一次写操作可能包含多次写传输。读操作同理)。
  • AWLEN:主设备发出。标志着一次写操作包含的写传输个数(传输数据的个数)。
  • AWSIZE:主设备发出。标志着每次传输的数据位宽。
  • AWBURST:主设备发出。标志着突发传输的类型。一共有三种类型。FIXED类型表示一次写操作的每次传输地址不变。INCR类型表示每次传输地址根据数据位宽递增。WRAP类型类似INCR,但会在到达某个地址后重新回到第一次的地址开始递增。
  • AWLOCK:和原子操作有关。在ICB中无对应。
  • AWCACHE:在ICB中无对应。
  • AWPROT:保护优先级。在ICB中无对应。
  • AWQOS:在ICB中无对应。
  • AWREGION:在ICB中无对应。
  • AWVALID:写地址通道有效信号。主设备发出,标志着写地址通道的信号有效。
  • AWREADY:写地址通道准备信号。从设备发出,标志着从设备可以接受写地址通道的信号。

写数据通道

  • WDATA:主设备发出。是将要写入从设备的数据。
  • WSTRB:主设备发出,类似于ICB中的WMASK信号,标志着WDATA中哪些Byte是有效的。
  • WLAST:主设备发出。标志着某次写传输是某次写操作的最后一次传输。
  • WVALID:写数据通道有效信号。主设备发出,标志着写数据通道的信号有效。
  • WREADY:写数据通道准备信号。从设备发出,标志着从设备可以接受写数据通道的信号。

写回复通道

  • BRESP:从设备发出。标志着一次写操作的最终状况。有四种情况,主要表示整个写操作是否成功。
  • BVALID:从设备发出。标志着写回复通道的信号有效。
  • BREADY:主设备发出。标志着主设备可以接受写回复通道的信号。

读地址通道

读地址通道的信号类型与功能和写地址通道基本相同,信号发送方和接收方对调。这里不再赘述。

读数据通道

读数据通道的信号类型与功能和写数据通道基本相同,信号发送方和接收方对调。但是,读数据通道没有RSTRB信号,取而代之的是RRESP信号。它标志着一次读传输的状况。和BRESP信号类似,也有四种情况,主要表示每次读传输是否成功。

三、需要注意的地方

每个通道主要依赖于VALID信号和READY信号握手(也就是同时为高电平)来完成数据的发送和接受。发送方置高 VALID 信号表示发送方已经将数据,地址或者控制信息已经就绪,并保持于消息总线上。接收方置高 READY 信号表示接收方已经做好接收的准备。当双方的 VALID/READY 信号同时为高,在时钟 ACLK 上升沿,完成一次数据传输。所有数据传输完毕后,双方同时置低自己的信号。发送方拥有传输的主动权,但接收方在不具备接收能力时,也能够置低信号停止传输,反压发送方。

在这种握手机制下,对于VALID信号有一个特别的规定:发送方不能通过等待接收方 READY 信号来确定置起 VALID 信号的时机。也就是说,在VALID信号拉高的条件判断里不能出现READY信号。这是为了避免某些死锁的情况发生(例如READY在等待VALID信号来才拉高,而VALID也在等待READY,这样就会互相等待下去)。对于READY信号则没有这样的限制。它可以在接收方空闲时直接拉高,也可以在收到VALID信号后再选择拉高。这个规定在编写AXI master接口时一定需要注意。

喜欢1
用户评论 (1)
霜木

霜木 实名认证

懒的都不写签名

积分
问答
粉丝
关注
  • RV-STAR 开发板
  • RISC-V处理器设计系列课程
  • 培养RISC-V大学土壤 共建RISC-V教育生态
RV-STAR 开发板