这篇文章主要介绍一下同步fifo用verilog实现。首先介绍一下fifo的相关知识。
fifo是 first input first output 的缩写,即先进先出队列,fifo一般用作不同时钟域的缓冲器。fifo根据读和写的时钟是否为同一时钟分为同步fifo和异步fifo。异步fifo相比同步fifo来说,设计更加复杂一点。本文中先讲同步fifo的一种设计方法。下图是同步fifo的结构图:
设计fifo的时候一般需要考虑的有两点:
1.fifo的大小
fifo的大小指就是双端口ram的大小,这个可以根据设计需要来设置。
2.fifo空满状态的判断
fifo空满状态的判断通常有两种方法。
a、fifo中的ram一般是双端口ram,所以有独立的读写地址。因此可以一种是设置读,写指针,写指针指向下一个要写入数据的地址,读指针指向下一个要读的地址,最后通过比较读指针和写指针的大小来确定空满