一、FIFO全名
FIRST IN FIRST OUT(先入先出)。顾名思义,FIFO是一个数据具有先进先出的存储器。
二.FIFO种类
在vivado软件的IP catalog搜索FIFO时候,会出来很多FIFO类型

(1)AXI4-Stream FIFO 是提供对与其他IP连接的AXI4-Stream接口的内存映射访问。
(2)AXI4-Stream Data FIFO 支持 AXI4-Stream 协议,具备packet 包传输模式。
(3)AXI Data FIFO 就是数据FIFO 功能较为单一,接口为Stream接口
(4)FIFO Generator支持Native 模式,AXI Memory Mapped 模式 AXI Steam 模式功能比较齐全。通常在没有AXI时候就使用Native模式。

其中,最常见的就是FIFO的Native模式,可以设置为同步异步FIFO。
同步FIFO仅有一个时钟输入,所有信号都与这一个时钟信号有关。

异步FIFO有写端口和读端口分别有独立的时钟。相关的写信号都同步在读时钟下,所有相关的读信号都同步在读时钟下。

三、FIFO的IP配置
1.Basic配置
Interface type:Native 模式、AXI Memory Mapped 模式、 AXI Steam 模式。
通常在没有AXI时候就使用Native模式。
common和Independent代表同步和异步,如果需要读写同步就选择common,读写异步有顺序选择异步。
其余不用修改设置

2.Native Ports
StandardFIFO需要读使能后一 个时钟输出才有效。
一般选择First Word Fall Through 这样写入的数据,会先在读端口准备好。
写位宽由输入的数据位宽决定,写深度取决于需要缓存数据的个数,读数据位宽取决于个人需要读取多少位宽,读数据宽度由上述三者自动确定,不需要设置。
其余设置尽量保持相同即可。

3.Status Flags
almost full 和 almost empty flag表示FIFO的满信号和空信号,选上之后可以不用。

其余配置默认即可。
四、FIFO的应用
1.半空、半满控制读写FIFO
半空是针对读FIFO计数器而言,半满是针对写FIFO计数器而言。例如FIFO输入32bit深度1024;输出128bit深度256,这里的半空值就是128,半满值就是512。
例如
写状态机,每次写出512bit数据:
状态0:当写入FIFO计数器小于512则进入状态1
状态1:当连续写入FIFO512个数据后,再次进入状态0等待 读状态机的设计,每次读出128bt数据。
读状态机设计,每次读出128bit数据:
状态0:当读FIFO计数器大于128则进入状态1
状态1:连续读出FIFO128个数据后,再次进入状态0等待(如果有问题,可以私信作者,分享代码给你)
2.标志信号控制FIFO的读写
(1)当FIFO非满的时候写。
(2)当FIFO非空的时候读。
-
存储器
+关注
关注
39文章
7753浏览量
172157 -
接口
+关注
关注
33文章
9588浏览量
157592 -
fifo
+关注
关注
3文章
407浏览量
45893
原文标题:一文带你详解FIFO:种类、IP配置、应用
文章出处:【微信号:gh_9d70b445f494,微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
存储器有哪些种类
FIFO存储器的相关资料分享
通用存储器 包括各种类型存储器的VHDL描述,如FIFO,双
存储器的种类及各种性能参数
基于Verilog HDL语言与双体存储器的交替读写机制实现32X8 FIFO设计
如何创建UltraScale存储器接口设计
TMS320C67系列DSP的EMIF与异步FIFO存储器的接口设计详细资料介绍
如何配置存储器保护单元(MPU)
FIFO存储器的种类、IP配置及应用
评论