(1) 数据的缓冲。如模型图所示,如果数据的写入速率高,但间隔大,且会有突发;读出速率小,但相对均匀。则通过设置相应深度的FIFO,可以起到数据暂存的功能,且能够使后续处理流程平滑,避免前级突发时,后级来不及处理而丢弃数据。
(2) 时钟域的隔离。对于不同时钟域的数据传递,则数据可以通过FIFO进行隔离,避免跨时钟域的数据传输带来的设计与约束上的复杂度。比如FIFO的一端是AD采集的数据,另一端是计算机的PCI总线,假设AD采集的速率是16位 100K SPS,那么每秒的数据量为100K*16bit=1.6Mbps。而PCI总线的速度为33MHz,总线宽度为32位,则其最大传输速率为33M*32=1.056Gbps,在两个不同的时钟域间就可以采用FIFO来作为数据缓冲。
(3)用于不同宽度的数据接口。例如单片机8位数据输出,而DSP是16位数据输入,在单片机和DSP连接时就可以使用FIFO来达到数据匹配的目的。