fifo学习(1)

1.初识FIFO

(1)什么是FIFO?

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

(2)FIFO的应用场景

FIFO一般用于不同时钟域之间的数据传输,比如FIFO的一端时AD数据采集,另一端时计算机的PCI总线,假设其AD采集的速率为16位 100K SPS,那么每秒的数据量为100K×16bit=1.6Mbps,而PCI总线的速度为33MHz,总线宽度32bit,其最大传输速率为1056Mbps,在两个不同的时钟域间就可以采用FIFO来作为数据缓冲。另外对于不同宽度的数据接口也可以用FIFO,例如单片机位8位数据输出,而DSP可能是16位数据输入,在单片机与DSP连接时就可以使用FIFO来达到数据匹配的目的.

(3)FIFO与RAM的区别

FIFO  : 先入先出,先进去的数据先出来;

RAM : 读出的数据顺序跟写入数据顺序不一致,可以向RAM中的任意位置写入数据,也可以读取任意的位置的数据;

FIFO没有写地址和读地址,只能按顺序读写数据,而RAM具有读写地址,因此可以读写任意地址;FIFO常用于数据传输通道中,用于缓存数据,避免数据丢失;RAM常用于存储指令或者中间的数据,如指令cache和数据cache就是由RAM实现的;

(4)FIFO的分类

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

参考文献:https://blog.csdn.net/cheguosheng/article/details/5345832

猜你喜欢

转载自blog.csdn.net/bleauchat/article/details/84675483