AXI中READY与VALID之间握手关系

本文详细解读了AR/WR通道在AXI总线中的行为规则,包括ARVALID/ARREADY、WVALID/WREADY的交互,并特别讨论了AXI3和AXI4版本的区别,以及WLAST对写操作的影响。理解这些规则至关重要,避免系统死锁。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

读通道

单箭头为可以,双箭头为必须满足。

1.主机在发起ARVALID之前必须不等待从机发起ARREADY,即主机发起ARVALID不依赖ARREADY;

2.从机可以等待(也可以不等待)主机发起ARVALID后再发起ARREADY,即从机发起ARREADY不依赖主机ARVALID;

3.从机在发起RVALID之前必须等待ARVALID和ARREADY发起,因为要在正确接收到读地址后才能返回数据;

4.从机在发起RVALID之前不用等待主机发起RREADY,即从机发起RVALID不依赖RREADY;

5.主机可以等待(也可以不等待)从机发起RVALID后再发起RREADY,即主机发起RREADY不依赖从机RVALID。

写通道

这一版本其实应该说是AXI3的版本,因为AXI4的版本多了些条件,算是这一种版本的特殊情况。

图中WVALID上面的†代表WVALID的发起还依赖WLAST。

1.主机在发起AWVALID或者WVALID之前必须不等待从机发起AWREADY和WREADY,即相互之间不依赖;

2.从机在发起AWREADY/WREADY之前可以等待(也可以不等待)主机发起AWVALID/WVALID,即从机发起READY不依赖主机VALID;

3.从机在发起BVALID之前必须等待WVALID/WREADY/WLAST都发起了,因为BRESP要在最后一个写数据收到后才能发起;

4.从机在发起BVALID之前必须不等待BREADY发起,即从机发起BVALID不依赖BREADY;

5.主机在发起BREADY之前可以等待(也可以不等待)从机BVALID发起,即相互之间不依赖。

PS.为什么第一条规则很重要?举个例子,如果主机在发起VALID之前等待从机发起READY,而从机定义的是在发起READY之前等待主机发起READY,这样系统就会陷入死锁。

写通道(AXI4附加版)

由图可见,比上个版本多了两个双箭头,限制了条件。 这一版反映的其实是AXI3的预期版本,因为在AXI4中,必须在写地址和写数据同时被接受到后从机才会返回RESP,也就是上一个版本的第3条规则发生了改变,即从机在发起BVALID之前必须等待AWVALID/AWREADY/WVALID/WREADY/WLAST都发起。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值