微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

异步 FIFO 深度计算

如何解决异步 FIFO 深度计算

我需要计算填充异步 FIFO 需要多长时间。 例如:假设模块“A”想要向模块“B”发送一些数据。 模块A的频率为80MHz。模块B的频率为50MHz。突发长度为120,读写均无空闲周期。 FIFO深度为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 深度。

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。