FIFO简介
FIFO 是一种
先进先出的数据缓存器
,在逻辑设计里面用的非常多。FIFO
一般用 在隔离两边读写带宽不一致
,或者位宽 不一样的地方。在逻辑设计的时候,使用 FIFO
一般有两 个方法,第一个方法是直接调用官方的 FIFO IP,另外一个方法是自己设计
FIFO 控制逻辑。直接调用 FIFO IP
的方法不需要感知 FIFO
内部的控制逻辑。
FIFO 包括同步 FIFO
和
异步
FIFO
两种,同步 FIFO 有一个时钟信号,读和写逻辑全部使用这一个时钟信号,异步 FIFO 有 两个时钟信号,读和写逻辑用的各种的读写时钟。 FIFO 与普通存储器 RAM 的区别是没有外部读写地址线,使用起来非常简单,但缺点就是只能顺序写 入数据,顺序的读出数据,其数据地址由内部读写指针自动加 1 完成
。
FIFO
本质上是由
RAM 加读写控制逻辑构成的一种先进先出的数据缓冲器
FIFO常见参数
FIFO 的宽度:
即
FIFO
一次读写操作的数据位;
FIFO 的深度:
指的是 FIFO
可以存储多少个
N
位的数据(如果宽度为
N
)。
满标志:
FIFO 已满或将要满时由
FIFO
的状态电路送出的一个信号,以阻止
FIFO
的写操作继 续向 FIFO
中写数据而造成溢出(
overflow
)。
空标志:
FIFO
已空或将要空时由
FIFO
的状态电路送出的一个信号,以阻止
FIFO
的读操作继 续从 FIFO
中读出数据而造成无效数据的读出(
underflow
)。
读时钟:
读操作所遵循的时钟,在每个时钟沿来临时读数据。
写时钟:
写操作所遵循的时钟,在每个时钟沿来临时写数据。
同步FIFO设计——代码设计
提示:提供读者参考,欢迎指正