Fpga 异步FIFO深度计算

Fpga 异步FIFO深度计算,fpga,asic,soc,digital-design,Fpga,Asic,Soc,Digital Design,我被要求计算填充异步FIFO需要多长时间。 例如:假设模块“A”想要向模块“B”发送一些数据。 模块A的频率为80MHz。模块B的频率为50MHz。突发长度为120。在读和写中都没有空闲周期。先进先出深度为20。填充FIFO需要多长时间 我知道FIFO的最小深度应该是45。 ' 写入一个数据项所需的时间=1/80MHz=12.5ns 写入突发中所有数据所需的时间=120*12.5ns=1500ns。 读取一个数据项所需的时间=1/50MHz=20ns。 可在1500ns=1500/20=75的持

我被要求计算填充异步FIFO需要多长时间。 例如:假设模块“A”想要向模块“B”发送一些数据。 模块A的频率为80MHz。模块B的频率为50MHz。突发长度为120。在读和写中都没有空闲周期。先进先出深度为20。填充FIFO需要多长时间

我知道FIFO的最小深度应该是45。 ' 写入一个数据项所需的时间=1/80MHz=12.5ns 写入突发中所有数据所需的时间=120*12.5ns=1500ns。 读取一个数据项所需的时间=1/50MHz=20ns。 可在1500ns=1500/20=75的持续时间内读取数据项的数量 要存储在FIFO中的剩余字节数=120-75=45。 但是如果FIFO的深度是20。如何计算填充FIFO的时间?”


问题2:我读了一些材料。如果是连续写入,FIFO的深度应该是无限的。连续写入和突发写入之间有什么区别?为什么FIFO的有限深度足以让突发写入?

假设您在两侧连续读写。 对于理论上完美的FIFO,只需求解以下方程:

80000000*x-50000000*x=20
30000000*x=20
x=20/30000000
x=0.667µs
然而,现实世界的FIFO具有跨时钟域同步器,这从本质上减少了几个条目的可用FIFO深度。通常有2~4个条目不可用。 您需要检查特定的FIFO,以准确了解由于时钟域交叉同步而丢失的时钟周期数以及FIFO深度


我不知道在这种情况下你所说的“爆发”是什么意思。

谢谢你的指导。我对这个等式很困惑。例如,80000000*x-50000000*x=45。30000000*=45. x=45/30000000。x=1.5us。这个等式意味着需要1.5us来填充FIFO。结果与预期相冲突,即45深度FIFO将不满。45入口FIFO将在1.5us后满。(实际上更早一点,将CDC同步器放入帐户)