FIFO:first in first out,先进先出存储器。在实际应用中会有软件FIFO和硬件FIFO区分。硬件FIFO:是硬件做好的固有区域,可以理解为只是用来做FIFO功能的芯片。软件FIFO:是在内存中开辟的区域,可以像操作寄存器一样操作它,规则为先进先出。
FIFO与BUFFER区别:BUFFER往往就是一段缓冲数据的区域。FIFO的取数规则为先进先出,而BUFFER没有这个限制,可以全局访问。
当FIFO单纯用来缓存数据,此类FIFO通常很大。FIFO也可以用来不同时钟域的数据缓存,此类FIFO通常较小。
软FIFO设计应用:以Audio模块为例,假设:AHB为16位,设计PDM信号给入Audio后,首先在data_buffer中缓存,data_buffer缓存深度为8位,经过滤波器将PDM信号转成PCM信号。设计1k×16bitFIFO,此时每2×8bit的PCM信号可以在FIFO中拼接为16位。可设计FIFO半满(512×16bit),全满(1k×16bit)中断,每次中断提醒CPU取出数据,这样可以大大节约CPU资源。需要注意的是,在实际设计中,如果设计FIFO触发中断级别为1,即FIFO接收到一个数据就发生中断,这样CPU负载仍然很大,这与没有FIFO差别不大。如果触发FIFO中断级别大于1,没有到中断的级别FIFO就停止接收数据,里面的数据如何取出,值得考虑。
FIFO讲解与应用
最新推荐文章于 2024-06-06 20:12:42 发布