本篇实现基于叁芯智能科技的SANXIN -B01 FPGA开发板,以下为配套的教程,如有入手开发板,可以登录官方淘宝店购买,还有配套的学习视频。
FIFO(first input first output或者first in first out),先入先出队列,是一种数字电路中常用的缓冲器,先进入的数据或者命令会先出来,后进入的数据或者命令会后出来,不改变数据的先后顺序。FIFO的工作方式就像超市购物结账时的通道,先进入的顾客先结账,然后出超市;当先进入的顾客没有结算完成时,或进入的顾客只能进行等待;进入的顺序和走出超市的顺序是相同的。
在大多数的逻辑接口设计时,都会留有一定的缓冲区(FIFO),避免数据没有及时发送(接收)。
无论多大的缓冲区都可能会被装满。当装满后,再次进行载入时,就会出现错误(覆盖或者丢失),所以缓冲区会给予外部标志信号,表明自己的状态。
FIFO的输入和输出的速率可以是不相同的,这就为我们解决多bit数据线跨时钟域的问题提供了方法。
对于输入端口来说,只要FIFO中还有空余位置,就可以写入数据;对于输出端口来说,只要FIFO中还有数据,就可以读出数据。
写一侧的所有信号都同步于写时钟,读一侧的所有信号都同步于读时钟。
设计要求
设计宽度为8、缓冲深度为256、输入速率为100MHz、输出速率为50MHz和各类标志信号的FIFO。