• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

如何计算异步FIFO深度?

捷波 2018-09-29 浏览量:1349
如何计算异步FIFO深度?
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 异步FIFO最小深度计算原理

          如果数据流连续不断则FIFO深度无论多少,只要读写时钟不同源同频则都会丢数;
    FIFO用于缓冲块数据流,一般用在写快读慢时,遵循的规则如下:

    {FIFO深度 /(写入速率 - 读出速率)} = {FIFO被填满时间}  >  {数据包传送时间}= {写入数据量 / 写入速率}

    即:确保对FIFO写数据时不存在overflow从FIFO读出数据时不存在underflow.

         例:A/D采样率50MHz,dsp读A/D读的速率40MHz,要不丢失地将10万个采样数据送入DSP,在A/D在和DSP之间至少加多大容量(深度)的FIFO才行?
    100000 / 50MHz = 1/500 s = 2ms
    (50MHz - 40MHz)  * 1/500 = 20k既是FIFO深度。

    一种错误的算法(我也犯了同样的错误):
    100000 / 40MHZ= 1/400s = 2.50ms
    (50M - 400M)*1/400 =25K.那么这样进去的数据就不是100K了,而是100K+50M*(0.0025-0.002)=125,000bit,错误在时间的计算。

    • 发布于 2018-09-29
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:8
  • 这个有点复杂需要你自己从原理上深入理解https://blog.csdn.net/balanx/article/details/54861677
    • 发布于2018-09-30
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以参考http://blog.sina.com.cn/s/blog_49d955150102vve3.html
    • 发布于2018-10-01
    • 举报
    • 评论 0
    • 0
    • 0

  • 如果你的输入速度远高于输出速度,但在一段时间内表现出的输入总数等于输出总数,那么FIFO深度取这段时间内的数据总量就好

    如果输入总数远大于输出总数,那你FIFO设多少都会丢数据的

    • 发布于2018-10-03
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个说实在的了解的人很少,大家都是复制的,参考相关的算法就可以,
    • 发布于2018-10-04
    • 举报
    • 评论 0
    • 0
    • 0

  • 这里有解释https://blog.csdn.net/balanx/article/details/54861677
    • 发布于2018-10-11
    • 举报
    • 评论 0
    • 0
    • 0

  • 参考这个http://blog.sina.com.cn/s/blog_49d955150102vve3.html
    • 发布于2018-10-20
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

如何计算异步FIFO深度?