AXI 协议握手机制详解

读写通道结构

数据在主设备和从设备之间传输,主设备通过写数据通道写数据到从设备, 通过读数据通道从从设备读取数据。 写交易中,所有数据流从主设备流向从设备, AXI 协议提供一个额外的写响应通道,用于从设备通知主设备写交易完成。五个独立的通道都包含一组标记信息的信号,并且使用双向的 VALID 和 READY信号实现握手机制。valid是信息源发出的,ready是目标发出,信息源和目标不区分slave和master。源设备使用 VALID 信号标志通道上的数据合法和控制信息可用,目的设备使用READY 信号标志可以接收数据。

写地址通道:

主设备只有当它发送合法的地址和控制信息的情况下将 AWVALID 信号置为有效,并且必须保持有效直到从设备接收了地址和控制信息并且返回 AWREADY 信号。AWREADY 的默认值可以为高,也可以为低,设置为高时能在任何合法地址发来的时候予以接收;设置为低时输至少花费两个周期,一个置高 AWVALID,一个置高 AWREADY。

写数据通道

在一个写 burst 交易中,主设备只有当发送合法地址的时候将 WVALID 信号置为有效,并且必须保持有效知道从设备接收了写数据并且返回 WREADY 信号。只有从设备总能在一个周期内接收写数据, WREADY 的默认值可以设置为高。主设备必须发送 WLAST 信号标志一次写 burst 交易中最后一拍数据传输。当 WVALID 为低时, WSTRB[3:0]信号可以为任何值,但推荐这个信号置为低或保持原值

写响应通道

当写响应有效时,从设备将 BVALID 信号置为有效,并且保持有效直到主设备接收响应并且返回 BREADY 信号。只有主设备总能在一个周期内接收写响应, BREADY 的默认值可以设置为高

读地址通道

主设备只有当它发送合法的地址和控制信息的情况下将 ARVALID 信号置为有效,并且必须保持有效直到从设备接收了地址和控制信息并且返回 ARREADY 信号。ARREADY 的默认值可以为高,也可以为低。推荐设置为高,尽管这样从设备必须能在任何合法地址发来的时候予以接收。ARREADY 的默认值可以为低,但不推荐,因为这样传输至少花费两个周期,一个置高 ARVALID,一个置高 ARREADY

读数据通道

在一次读交易中,只有当从设备数据有效时,从设备将 RVALID 信号置为有效,并且一直保持有效直到主设备接收数据并且返回 RREADY 信号。即使一个从设备只有一个读数据,它也必须响应对此数据的访问,将 RVALID 信号置为有效。主设备使用 RREADY 信号标志可以接收数据。 RREADY 的默认值可以设置为高,但是只有在主设备无论何时进行读交易时都可以立即接收数据的情况下。从设备必须发送 RLAST 信号标志一次读 burst 交易中最后一拍数据的传输。

地址通道、读数据通道、写数据通道和写响应通道的关系是灵活的。例如,写数据可以在相关的写地址之前出现在总线接口上,写数据也可以与相关的写地址同时有效。但是在一次写操作中,主设备在发送 WVALID 之前不要等 AWREADY 有效,这一点是很重要的。如果主设备等 AWREADY 信号有效之后在发送 WVALID 信号,并且从设备恰好是接收到 WVALID 信号之后才发送 AWREADY,则这样就会造成死锁状况。具体读写应该满足:

读地址握手完成(valid-ready握手),读数据才能开始进行。

写数最后一拍据握手完成(valid-ready握手),写响应才能开始进行

一个 AXI 模块的 VALID 信号不能依赖于另一个模块的 READY 信号,READY 信号可以等 VALID 信号可以在发送 VALID 信号之后发送 READY,也可以在发送 VALID 信号之前将READY 信号置为默认值,这样做可以得到更高效的设计

一次读操作中

  • 从设备可以在 ARVALID 之后发送 ARREADY
  • 从设备在置 RVALID 信号有效返回读数据之前必须等待 ARVALID 和ARREADY 信号有效之后

一次写操作中

  • 主设备发送 AWVALID 和 WVALID 信号前不等从设备发送 AWREADY 和WREADY
  • 从设备可以在发送 AWREADY 信号之前等 AWVALID 或者 WVALID,或两者一起
  • 从设备可以在发送 WREADY 信号之前等 AWVALID 或者 WVALID,或两者一起
  • 从设备发送 BVALID 之前必须等待 WVALID 和 WREADY 信号之后

注意在一次写交易中,主设备在发送 WVALID 之前不要等 AWREADY 有效,这一点是很重要的。如果主设备等 AWREADY 信号有效之后在发送 WVALID 信号,并且从设备恰好是接收到 WVALID 信号之后才发送 AWREADY,则这样就会造成死锁状况。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值