IP核之FIFO
- FIFO(first input first output 或者 first in first out),先入先出队列,是一种数字电路中常用的缓冲器,先进入的数据或者命令会先出来,后进入的数据或者命令会后出来,不改变数据的先后顺序。
- 无论多大的缓冲区都可能会被装满。当装满后,再次进行载入时,就会出现错误(覆盖或者丢失),所以缓冲区会给予外部标志信号,表明自己的状态。
- FIFO 的输入和输出的速率可以是不相同的,这就为我们解决多bit 数据线跨时钟域的问题提供了方法。
- 对于输入端口来说,只要 FIFO 中还有空余位置,就可以写入数据;对于输出端口来说,只要 FIFO 中还有数据,就可以读出数据。
- 写一侧的所有信号都同步于写时钟,读一侧的所有信号都同步
于读时钟。
设计要求:设计宽度为 8、缓冲深度为 256、输入速率为 100MHz、输出速率为 50MHz 和各类标志信号的 FIFO。
设计原理:FPGA 内部没有 FIFO 的电路,实现原理为利用 FPGA 内部SRAM 和可编程逻辑实现。
架构设计和信号说明:此模块命名为 fifo_test, my_fifo 为调用的 ip core。