文章目录
- 前言
- 一、FIFO的最小深度
- [二、 举例说明](#二、 举例说明)
-
- [1. FIFO写时钟为100MHz,读时钟为80Mhz](#1. FIFO写时钟为100MHz,读时钟为80Mhz)
- 三、什么情况下不太需要考虑FIFO的最小深度
FIFO的设计可参考
FIFO的Verilog设计(一)------同步FIFO
FPGA的Verilog设计(二)------异步FIFO
参考文献
1\][FIFO最小深度计算](https://blog.csdn.net/qq_40147893/article/details/119035795)
## 前言
在实际使用FIFO时,需要考虑FIFO的深度如何设置,如果深度设置不当,可能会出现资源浪费或者数据丢失等情况。下面将简要介绍FIFO的最小深度如何计算。
## 一、FIFO的最小深度
由前两篇文章对FIFO的介绍,FIFO常用于数据缓存、数据匹配和多bit跨时钟域处理。
因此在读写速度不匹配的时候可以使用FIFO,进行数据缓存。当读速度慢于写速度时,FIFO可作为一个缓存单元。此时总会有部分数据缓存在FIFO中,但是如果读写速度相差过大,就会导致数据溢出。所以在**写速度最大、读速度最小**时,正好不导致FIFO出现数据溢出的最小深度。当读速度快于写速度时,FIFO更多的是起着变换时钟域的作用。
### 写速度快于读速度
FIFO写速度快于读速度模型的应用场景为,无论是数据需不需要跨时钟域,只要FIFO写速度快于读速度,FIFO写入一个数据需要 t 1 t_1 t1秒,读出一个数据需要 t 2 t_2 t2秒( t 1 \< t 2 t_1\