高级可拓展接口 4.0 - 流(Advanced eXtensible Interface 4 - Stream, AXI4-Stream)

《AMBA 4 AXI4-Stream Protocol Specification》
AXI4_stream协议详解
AXI协议(五)-AXI-STREAM及接入思路解析
【OpenHW参赛手记】AXI-Stream接口介绍


1. Overview

AXI4-Stream(AXIS)协议主要用于组件之间数据流传输,既可用于单主单从,也可用于多主多从流传输。AXIS该协议支持多种数据流使用相同共享总线集合,允许构建类似于路由、宽窄总线、窄宽总线等更为普遍的互联。

2. Interface Description

AXIS接口描述如下,不再如AXI一样划分多个独立通道

Signal Source Width(bits) Description
ACLKClock Source1AXIS时钟
ARESETnReset Source1AXIS全局复位
TIDMasterTID_WIDTH用于多机通信时指示数据流ID号
TDATAMasterTDATA_WIDTH传递的数据
TSTRBMasterTDATA_WIDTH/8指示TDATA中对应的byte是data byte还是position byte
TKEEPMasterTDATA_WIDTH/8指示TDATA中对应的byte是data byte还是null byte
TVALIDMaster1数据信息有效
TREADYSlave1数据信息准备接收
TLASTMaster1指示一包数中最后一个TDATA
TDESTMasterTDEST_WIDTH用于多机通信时指示路由信息
Parameter Units Description
TID_WIDTHbit数据流ID号位宽
TDATA_WIDTHbitAXI AW通道的AWADDR位宽

3. Transfer Signaling

3.1. Handshake process

与AXI单个通道的握手时序一致

在这里插入图片描述

3.2. Byte signaling

TSTRB和TKEEP两个信号用于指示TDATA中每个byte的类型,用于帮助写入内存时位宽对齐,总共有以下三种类型

Data Byte: 数据字节,TDATA中从source到destination必须要传递的有效数据byte

Position Byte: 占位字节,TDATA中从source到destination必须要传递的无效数据byte,但必须占据内存

Null Byte: 空字节,实际传递中被无视的byte

指示方式为

TSTRB[i] TKEEP[i] TDATA[8(i+1)-1:8i]
highhighdata byte
highlowposition byte
lowhighreserved
lowlownull byte

为什么要搞这么多种byte呢?其实为了让一包数与内存中的数据位宽对齐

例如内存数据位宽是4byte,一包数共16byte的话,恰好占据4个内存单元,可见Continuous Aligned Stream。但是在传输中可以加入null byte传输多次,即Byte Stream。

Continuous Aligned Stream

如下图,TDATA_WIDTH为32,每一列是每一次transfer transaction

在这里插入图片描述

Byte Stream

如下图,每次transaction加入了null byte,就可以使同样的16byte握手不同次,但最终写入内存的还是这D-00~D-0F,null byte被丢弃!

在这里插入图片描述

Continuous Unaligned Stream

下图中要传递18byte,写入内存时会占据4.5个内存单元,即第5个内存单元只用了2byte,另外2byte难道要存下一包数嘛?

不能,所以加入position byte使这一包数大小恰为内存单元的整数倍。注意TSTRB和TKEEP指示position byte就用于占位并不是有效数据

在这里插入图片描述

Sparse Stream

还可以穿插着插入position byte

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
AXI-stream FIFO、AXI4-Stream Data FIFO 和 AXI Data FIFO 是三种常见的FIFO(First-In-First-Out)内存结构,用于在AXI(Advanced eXtensible Interface)总线上进行数据缓存和传输。它们的主要区别在于它们所支持的AXI接口版本和功能。 1. AXI-stream FIFO: AXI-stream FIFO 是最简单的FIFO结构,用于在AXI-stream接口中进行数据缓存和传输。它主要用于式数据传输,如音频、视频等连续数据。AXI-stream FIFO只有一个输入和一个输出接口,数据按照输入的顺序存储,并按照相同的顺序输出。它不支持数据帧的划分和标记。 2. AXI4-Stream Data FIFO: AXI4-Stream Data FIFO 是在AXI4-Stream接口规范下定义的FIFO结构。与AXI-stream FIFO相比,它具有更多的功能和扩展性。它支持数据帧的划分和标记,可以将连续的数据划分为多个数据帧,并通过标记信号进行标识。AXI4-Stream Data FIFO还支持控制信号,如有效性信号(TVALID)、空闲信号(TREADY)和结束信号(TLAST),用于控制数据的传输速率和状态。 3. AXI Data FIFO: AXI Data FIFO 是在AXI接口规范下定义的FIFO结构。它是更高级别的FIFO,支持AXI接口的全部特性和功能。除了数据缓存和传输外,它还支持读写地址突发传输、带宽控制、容错和错误检测等功能。AXI Data FIFO可以用于连接多个AXI总线设备,实现高速数据传输和存储。 总结起来,AXI-stream FIFO 是最简单的FIFO结构,适用于式数据传输;AXI4-Stream Data FIFO 在AXI4-Stream接口规范下扩展了功能,支持数据帧划分和标记;AXI Data FIFO 是最高级别的FIFO结构,支持完整的AXI接口特性和功能。选择使用哪种FIFO结构,需要根据具体应用需求和所使用的接口规范来决定。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Starry丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值