FIFO存储器的种类、IP配置及应用

描述

一、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非空的时候读。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分