引用知乎深入理解AXI总线深入 AXI4 总线(二)架构 - 知乎
握手依赖关系
协议规定握手依赖的目的是为了防止死锁(deadlock),手册定义于章节 A3.3 ,主要的原则还是第一章中说过的两条:
- 发送方 VALID 一定不能依赖接收方 READY 信号
- 接收方 READY 信号可以检测到 VALID 置起后再置起有效,换句话说,可以依赖 VALID 信号
读传输
单箭头:指向的信号可以在箭头起始信号置起之前或之后置起(无依赖)
双头箭头表示:其指向的信号必须在箭头起始信号置起之后置起(指向信号依赖起始信号)
先看这些信号的含义:
ARVALID:主设备给出的地址和相关控制信号有效
ARREADY:从设备已准备好接收地址和相关的控制信号
RVALID:从设备给出的数据和响应信息有效
RREADY:主设备已准备好接收读取的数据和响应信息
依赖关系:主机ARVALID无依赖,与从机ARREADY是否置起无关
从机ARREADY可以等主机的ARVALID置起,也可以自行先置起
从机的 RVALID 信号必须等待 ARVALID 和 ARREADY 信号均置起后置起(如两个双头箭头所示)从机的RVALID不能等待主机的RREADY信号置起才可以置起
主机RREADY信号可以在从机RVALID信号置起前置起
写传输
AWVALID:主设备给出的地址和相关控制信号有效
AWREADY:从设备已准备好接收地址和相关的控制信号
WVALID:主设备给出的数据和字节选通信号有效
WREADY:从设备已准备好接收数据选通信号
BVALID:从设备给出的写响应信号有效
BREADY:主设备已准备好接收写响应信号
BVALID只有在WVALID与WREADY置起后才可以置高
此外另外三组单头箭头表示 AWREADY 、WREADY 信号可以根据 AWVALID、WVALID 信号生成,但不存在依赖。同样的关系还存在于 BREADY 与 BVALID 信号之间。本文此处不再展开具体依赖,