AXI-Stream Data FIFO接口学习

AXI-StreamDataFIFO接口是一种基于AXI-stream协议的FIFO,其写端为从接口,读端为主接口。与普通FIFO相比,它通过TLAST、TKEEP信号指示数据段和字节有效性。写入数据时,TVALID上升沿触发,TKEEP全1表示数据有效。读取时,TVALID高电平表示数据可用,TKEEP由0变为1表示字节有效。读写操作完成后,TVALID和TREADY信号变化指示FIFO状态。增加的信号让AXI-StreamDataFIFO能更灵活地处理数据流。

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

1.接口描述

AXI-Stream Data FIFO接口与普通的FIFO方案基本差不多,只是写数据端为AXI-stream从接口,读书节端为AXI-stream主接口。

2.与普通FIFO的差异

相同点:二者都是先入先出,写入多少,读出多少。
不同点:AXI-Stream Data FIFO可以通过TLAST 信号指示数据节点,同时还可以通过TKEEP和TSTRB信号指示读写数据各个字节的性质和有效性。
AXI-Stream Data FIFO的读写端口最少需要TDATA ,TVALID,TREADY 这三个信号,可选择的添加TKEEP,TLAST,TSTRB信号,本文选择了TKEEP,TLAST信号。单次传输字节数为4byte。

3.写接口信号分析

  1. 接口初始化状态
portValue
TVALID1’b0
TKEEP4’b0000
TLAST1’b0
TDATA无关
TREADY1’b0
  1. 开始写入数据
    在这里插入图片描述
    如上图,外部的TVALID信号拉高,FIFO接收到该信号之后将 TREADY 信号拉高,同时TKEEP 信号各bit全部为1,表示各字节有效,完成握手,开始将数据写入FIFO中。其中还有TLAST 信号,该信号是用来区分数据段的,每段数据流的最后一个数据需要拉高,不限制数据流的长度,可以是一个数据,也可以是多个数据。
  2. 停止写入数据
    外部的TVALID信号拉低即可实现。
  3. 写满判定
    TREADY 信号拉低。

4.读端口信号分析

  1. FIFO为空时

读端口信号如下

portValue
TVALID1’b0
TKEEP4’b0000
TLAST1’b0
TDATA无关
TREADY1’b0

其中TKEEP的所有位为0表示通过AXI-stream接口读出的所有字节数据无效。
在这里插入图片描述

FIFO不为空时

portValue
TVALID1’b1 -> 1’b1
TKEEP4’b0000 -> 4’b1111
TLAST1’b0
TDATA读指针指向的FIFO数据
TREADY1’b0

其中TKEEP的所有位由0变为1表示通过AXI-stream接口读出的所有字节数据有效。
TVALID信号拉高,表示外部电路可以通过AXI-stream接口从FIFO中读出数据了。
在这里插入图片描述

读FIFO数据

portValue
TVALID1’b1 -> 1’b0
TKEEP4’b1111
TLAST1’b0
TDATA读指针指向的FIFO数据
TREADY1’b0 -> 1’b1

5.一次完整的读写操作

在这里插入图片描述

  1. 写操作描述:
    首先将TVALID信号拉高,然后握手成功,写入5个数据,写入两次。第一次写入时,TKEEP=1,也就是只有第一个字节数据有效,第二次是所有字节有效。
  2. 读操作描述:
    可以发现,在写入第个数据之后,读端口的TKEEP信号就变成了第一个数据对应的TKEEP信号,同时TVALID信号拉高。
    在要读数据时,首先将TREADY信号拉高,然后握手成功,连续读出数据,在读出第5个数据的时候,TLAST信号拉高,也就是将第一次写入的数据全部读出来了,然后继续读出数据,到第10个数据时,TLAST信号再次拉高,同时读端口的TVALID信号变低了,也就是FIFO为空了。

总结:如果仅仅只有TDATA ,TVALID,TREADY 这三个信号,那么AXI-Stream Data FIFO与普通的FIFO完全一样。如果增加了TKEEP,TLAST,TSTRB这三个信号,这些信号可以理解成单独写入了一个并行的FIFO中,写入的是什么样,读出的也是什么样。

AXI-stream FIFOAXI4-Stream Data FIFOAXI 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 FIFOAXI4-Stream接口规范下扩展了功能,支持数据帧划分和标记;AXI Data FIFO 是最高级别的FIFO结构,支持完整的AXI接口特性和功能。选择使用哪种FIFO结构,需要根据具体应用需求和所使用的接口规范来决定。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值