FIFO深度计算
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FIFO深度计算相关的知识,希望对你有一定的参考价值。
参考技术A题目详见原文: FIFO深度计算
只有在 突发传输 情况下,讨论FIFO深度才有意义
FIFO的最小深度与 burst rate, burst size, read and write frequency 等因素有关。要确定FIFO的深度,关键在于计 算出在突发读写这段时间内有多少个数据没有被读走 。也就是说FIFO的最小深度就等于没有被读走的数据个数。
关于延迟和同步空满信号的问题:
在异步FIFO设计中,我们需要去 判断FIFO的空满 来保证逻辑的正确性,判断空满标志需要去比较读写指针,而读指针与写指针处在不同的时钟域中,我们需要采用 格雷码 和 两级同步寄存器 去降低亚稳态的概率,而 两级同步必然会导致空满标志位的判断至少延迟2个cycle 。对于空标志位来说,将写指针同步到读时钟域至少需要花费2个时钟,而在同步这段时间内有可能还会写入新的数据,因此同步后的写指针一定小于或等于(当且仅有同步时间内没有新数据写入的情况下才会等于)当前的写指针,所以 此时判断不一定是真空 ;同理,对于满标志位来说,将读指针同步到读时钟域至少需要花费2个时钟,而在同步这段时间内有可能还会读出新的数据,因此同步后的读指针一定小于或等于当前读指针,所以此时判断并不一定是真满。
在 最坏的情形 中,读写的速率应该相差最大,也就是说需要找出最大的写速率和最小的读速率。
注意:这里需要验证一下是否有解 ,即写入burst数据时间必须大于等于读出burst数据时间,不然数据就会越累积越多,使得FIFO的深度必须为无穷大。
从上面分析来看,求FIFO的最小深度主要有以下 要点 :
下面我们来推导一下FIFO深度的求解公式,假设:
那么:
以上是关于FIFO深度计算的主要内容,如果未能解决你的问题,请参考以下文章