对FIFO的理解

FIFO(first in first out)即先入先出原则,是一种传统的按序执行方法;也可以将FIFO理解为一种先入先出的数据缓存器,其与普通的数据缓存器相比,没有外部读写地址的功能,因此使用更加简单,但是缺点也比较突出:只能顺序写入数据和顺序读取数据,不支持通过地址来自由读写数据。

FIFO的基本参数

1.FIFO的宽度:指FIFO一次读写操作的数据位,如果用FPGA自己实现一个FIFO,其数据位,也就是宽度是可以自己定义的。

2.FIFO的深度:指FIFO可以存储多少个N位的数据(如果宽度为N),例如如一个8位的FIFO,若深度为12 ,就可以存储12个8位的数据,FIFO的深度可大可小,个人认为FIFO深度的计算并无一个固定的公式。

3.满标志:FIFO已满或将要满时由FIFO的状态电路送出的一个信号,以阻止FIFO的写操作继续向FIFO中写数据而造成溢出(overflow)。

4.空标志:FIFO已空或将要空时由FIFO的状态电路送出的一个信号,以阻止FIFO的读操作继续从FIFO中读出数据而造成无效数据的读出(underflow)。

5.读时钟:读操作所遵循的时钟,在每个时钟沿来临时读数据。

6.写时钟:写操作所遵循的时钟,在每个时钟沿来临时写数据。

7.读指针:指向下一个读出地址。读完后自动加1。

8.写指针:指向下一个要写入的地址的,写完自动加1。

读写指针其实就是读写的地址,只不过这个地址不能任意选择,而是连续的

FIFO的分类

根均FIFO工作的时钟域,可以将FIFO分为同步FIFO和异步FIFO。同步FIFO是指读时钟和写时钟为同一个时钟。在时钟沿来临时同时发生读写操作。异步FIFO是指读写时钟不一致,读写时钟是互相独立的。

你可能感兴趣的:(对FIFO的理解)