AXI 握手规则

本文主要探讨AXI接口中的握手规则,适用于AXI Stream、AXI和AXI-Lite。内容涉及基本的握手规则,包括xVALID和xREADY的使用,强调xVALID必须在复位后清除,xREADY应为寄存器信号。文章通过slave和master的示例说明逻辑形式,并提出在设计中应避免的错误。此外,还介绍了如何通过形式属性捕获这些规则。
摘要由CSDN通过智能技术生成

我尽量保持这篇文章简短,同时仍然回答以下问题:使用 AXI 握手时需要知道的最低限度是什么?

我们将从基础开始,有masters 和 slaves。“从-slaves”端口是接收数据的端口,而“主-masters”端口向从端口传输或发送数据。

4e9c461e002120983603391464c5de40.png图 1. AXI 流数据流向:主机馈送从机

我倾向于遵循 Xilinx 示例中的约定,即在主端口信号上加M_*_和从端口信号前加上S_*_. 然后我会经常在*中间的部分填写一些名字,提醒我正在描述哪个接口。例如,S_VID_TVALID将是 TVALID在"从"视频接口上找到的信号。下表是 AXI 流的信号列表-图 2。

152afcf84d24f2f910b67aece700aac2.png图 2. AXI 流信号

在大多数情况下,接口只需要时钟、复位、有效、就绪和数据信号(clock, reset, valid, ready, and data)。在数据包接口中,如使用 Xilinx’s stream DMAs, 信号TLAST是必须的。视频接口也使用 TUSER 信号来指示帧的开始。

其余的信号是可选的,很少使用他们。

然而,今天,我想专注于握手信号。因此,我们将这些信号分为三类:TVALID、TREADY,并且我们将把其他所有内容都归为TDATA信号。这仅仅是因为握手信号平等地为所有有效载荷信号创建规则。

此外,虽然今天将讨论 AXI stream 握手规则,但我们今天讲的所有规则也将适用于 AXI 和 AXI-lite 握手规则。

规则

所以让我们开始基本的握手规则。事实上,我喜欢将这些视为构建 AXI 握手所需的最低限度的信号。

  • xVALID必须在复位后清除。

  • 除非xVALID && xREADY.

  • 就像这里的一个符号点一样,我遵循 AXI4 规范约定使用xVALID来指代某种类型的 AXI stream通道。在这种情况下,我可能会说M_AXIS_TVALID && M_AXIS_TREADY or S_AXIS_TVALID && S_AXIS_TREADY,但我只是用上面的缩写缩短了一些东西以试图简化事情。

  • 总会有事情发生xVALID && xREADY——注意不要在此检查中添加任何其他条件,以免错过握手!

  • 除非!xVALID || xREADY.

这更像是一个master规则,而不是一个slave规则,但仍然非常重要。我们稍后再讨论这个问题。

  • xREADY必须是寄存器信号。如有必要,请使用 skid buffer以避免吞吐量受影响。

这不是规范所要求的。相反,这是规范确实要求的结果。该规范只要求“在主从接口上,输入和输出信号之间不得有组合路径。”

dbc716c9b895d71b73ecdc5ab2b339ab.png图 3. AXI 输入和输出之间不允许组合路径

(仅推荐:)READY在设计闲置时应保持高电平,仅在以下情况下拉低(如果需要)VALID && READY。

这对 AXI 流非常有用。它甚至适用于 AXI

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值