一. 定义
- First In First Out,先进先出的数据缓存器。“队”
- 与普通存储器区别:没有外部读写地址线,使用简单
- 缺点:只能顺序读写数据,数据局地址内部读写指针自动+1完成,不能寻址读写
二.应用
- 不同速度时钟域间数据传输。
如,AD数据采集,另一端做PCI总线通信,假设AD采集速率为16位100K SPS,每秒数据量为100K*16bitMbps,而PCI总线的速度为33MHz,总线宽度32bit,最大传输速率为1056Mbps。 - 不同宽度数据接口间数据传输。
如,单片机为8位数据输出,而DSP可能是16位数据输入,在单片机与DSP连接时就可以使用FIFO来达到数据匹配的目的。
三.参数
- 宽度:FIFO一次读写操作的数据位,就像MCU有8位和16位,ARM32位等等,FIFO的宽度在单片成品IC中是固定的,也有可选择的,如果用FPGA可自定义。
- 深度:可存储多少个N位数据(如果宽度为N)。如一个8位的FIFO,若深度为8,可存储8个8位数据,深度为12,可存储12个8位数据。
- 满标志:FIFO已满或将要满时,由FIFO送出一个信号,以阻止FIFO写操作继续向FIFO中写数据二造成溢出(ovrtflow)
- 空标志:FIFO已空或将要空时,由FIFO送出一个信号,以阻止FIFO读操作继续向FIFO中读取无效数据(underflow)
- 读时钟
- 写时钟
- 读指针:指向下一个读出地址。读完后自动+1
- 写指针:指向下一个要写入的地址。写完后自动+1
读写指针就是读写地址,这个地址是连续的
四.分类
- 同步FIFO:指读时钟和写时钟作为同一个时钟。较少用到
- 异步FIFO:读写时钟互相独立
五.设计要点
六.IP设计
tools——megawizard plug——in mannger——creat a new……——memory compiler