一、FIFO是什么?
FIFO:First In First Out(先进先出)
本质上是一种数据缓冲器,是一个对数据的存储具有先进先出储存器。
FIFO存储器主要作为缓存应用在同步时钟系统和异步时钟系统。
二、工作原理
①写入操作:wr_clk、wr_req(写请求信号)、wr_data(写入数据)
假如要将1-10的数据写入FIFO
第一个数据最下,第二个次之
②读出操作:rd_clk、rd_req(读请求信号)、data_out
读出第一个信号的时候,上面的数据会整体往下降一位,以便后面读出
先被写入的数据同样会先被读出
三、应用
①多比特数据跨时钟域处理
模块A输出的一组数据为Data_A,这组数据的同步时钟为CLK_A,
而在实际的运用当中想把模块A的这组数据传入模块B进行数据处理,但模块B的工作时钟CLK_B与模块A的工作时钟不同。
如果直接传入不使用FIFO的话,那么数据对的传入会存在一些问题。
所以这时候就需要FIFO
即模块B向FIFO中传入读时钟CLK_B,以及读请求信号Rd_req来读取数据
Data_A的读取是在是在CLK_B的同步下进行读取的。
FIFO其实就是相当于一个中间的存储状态。
注:FIFO只是一个存储空间,本身没有搭载时钟
②前后带宽不同步
对FIFO进行设置,设置输入的位宽与输出的位宽
四、结语
FIFO根据读写时钟的不同可以分为同步FIFO和异步FIFO
同步表示这个FIFO数据写入的时钟和数据读出的时钟是同一个时钟
异步表示读写的时钟不同,即数据写入是一个时钟,数据的读出是另一个时钟