RISC-V MCU中文社区

【分享】 AXI4_stream 协议详解——团队:芯光 队伍编号:CICC1787

发表于 全国大学生集成电路创新创业大赛 2021-06-15 20:59:29
0
3046
0
  •                                                 AXI 是ARM公司提出的高级可扩展接口协议
    • AXI_stream用于高速流数据。
      • 由于没有地址总线,所以用于数据流传送,允许无限制的数据突发传输规模。
    • AXI4.0-full用于高性能内存映射需求。

      包含突发控制信号,所以可以进行突发传输,在只指定一次地址后,可以一次传输多达256个数据(数据的宽度取决于带宽)。

      • AXI4.0-lite是AXI4.0-full的简化版。用于简单、低吞吐量的内存映射通信。
        • 由于没有突发传输相关的信号线,所以不能进行突发传输,因此每次传输只能传输一个数据(数据的宽度取决于带宽)。比如对于32位宽度的总线,那么一次就能传输4个字节。
        •    AXI_streamz主要用于适用大规模的数据流传输,下面介绍一下它的数据传输模式和遵守的握手协议。
        • axi协议遵循的突发传输的流程:

            • 当地址出现在地址总线后,传输的数据将出现在读数据通道上。设备保持VALID为低直到读数据有效。为了表明一次突发式读写的完成,设备用RLAST信号来表示最后一个被传输的数据。

          这一过程的开始时,主机发送地址和控制信息到写地址通道中,然后主机发送每一个写数据到写数据通道中。当主机发送最后一个数据时,WLAST信号就变为高。当设备接收完所有数据之后他将一个写响应发送回主机来表明写事务完成。

          1. 突发传输长度,突发传输长度(burst length),指一次突发传输中包含的数据传输(transfer)数量

          2. 突发传输宽度(burst size),指传输中的数据位宽,具体地,是每周期传输数据的字节数量.

          3. 突发传输类型,突发传输类型(burst type),类型共有 3 种,分别为 FIXED,INCR 以及 WRAP。

          •   AXI_streamAXI4.0-full和AXI4.0-lite不同之处在于 AXI_stream 去除了地址线,这样就不涉及读写数据的概念了,只有简单的发送与接收说法,减少了延时。因此允许大规模的数据传输。
          • ready valid握手协议:

            数据产生端:生产者数据准备好后将标志信号valid置位。数据接受端:消费者准备好接收数据则将标志信号ready置位。在时钟沿同时出现valid和ready置位,则完成数据传输。

          •   




        • 一次valid ready协议的数据传输过程:如图所示tready信号一直处于高电平,表示从设备做好了接收数据准备。tvalid变为高电平的同时,tdata、tkeep、tuser也同时进行发送。在tdata最后一个字节数据时,tlast发送一个高电平脉冲。数据发送完成后,tvalid变为低电平。这样一次传输就完成了。

          下面为使用ready valid 协议进行数据传输的代码:





喜欢0
用户评论

未通过实名认证

懒的都不写签名

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