什么是FIFO?_fifo

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

同步FIFO和异步FIFO

1、FIFO定义

FIFO是英文First In First Out的缩写是一种先进先出的数据缓存器他与普通存储器的区别是没有外部读写地址线这样使用起来非常简单但缺点就是只能顺序写入数据顺序的读出数据其数据地址由内部读写指针自动加1完成不能像普通存储器那样可以由地址线决定读取或写入某个指定的地址。

2、FIFO功能

FIFO存储器是系统的缓冲环节如果没有FIFO存储器整个系统就不可能正常工作它主要有几方面的功能

1对连续的数据流]进行缓存防止在进机和存储操作时丢失数据

2数据集中起来进行进栈和存储可避免频繁的总线操作减轻CPU的负担

3允许系统进行DMA操作提高数据的传输速度。这是至关重要的一点如果不采用DMA操作数据传输将达不到传输要求而且大大增加CPU的负担无法同时完成数据的存储工作。

3、FIFO分类

FIFO的分类根据FIFO工作的时钟域可以将FIFO分为同步FIFO和异步FIFO。同步FIFO是指读时钟和写时钟为同一个时钟。在时钟沿来临时同时发生读写操作。异步FIFO是指读写时钟不一致读写时钟是互相独立的。同步FIFO和异步FIFO如图所示从图中可以看到同步FIFO 具有一个独立的时钟端口 clock因此所有的输入输出信号都同步于 clock 信号。而在异步FIFO 结构中写端口和读端口分别有独立的时钟所有与写相关的信号都是同步于写时钟 wrclk所有与读相关的信号都是同步于读时钟 rdclk。
在这里插入图片描述
同步 FIFO 常用于同步时钟的数据缓存异步 FIFO 常用于跨时钟域的数据信号的传递例如时钟域 A 下的数据 data1 传递给异步时钟域 B当 data1 为连续变化信号时如果直接传递给时钟域 B 则可能会导致收非所送的情况即在采集过程中会出现包括亚稳态问题在内的一系列问题使用异步 FIFO 能够将不同时钟域中的数据同步到所需的时钟域中。

4、FIFO的几个重要参数

FIFO 的宽度FIFO 一次读写操作的数据位 N

FIFO 的深度FIFO 可以存储多少个宽度为 N 位的数据。

空标志对于双时钟 FIFO 又分为读空标志 rdempty 和写空标志 wrempty。FIFO 已空或将要空时由 FIFO

的状态电路送出的一个信号以阻止 FIFO 的读操作继续从 FIFO 中读出数据而造成无效数据的读出。

满标志对于双时钟 FIFO 又分为读满标志 rdfull 和写满标志 wrfull。FIFO 已满或将要写满时由 FIFO

的状态电路送出的一个信号以阻止 FIFO 的写操作继续向 FIFO 中写数据而造成溢出。

读时钟读 FIFO 时所遵循的时钟在每个时钟的上升沿触发。

写时钟写 FIFO 时所遵循的时钟在每个时钟的上升沿触发。

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6