请问FIFO的深度如何确定??

如题,谢谢。
我也来说两句 查看全部回复

最新回复

  • china_soc (2008-9-10 10:40:01)

    需要知道的你的应用情况,不同的应用确定fifo的深度也是不同的.
  • jhm_seu (2008-9-10 11:03:03)

    哦,我是在面经上看到有公司问这种问题。以前只看过怎么设计异步FIFO,没看见过怎么确定FIFO的深度,所以来问问。版大能否大概的讲讲,都有哪些方法。谢了
  • china_soc (2008-9-10 13:04:40)

    f最简单的:a写fifo,b读fifo;但a在写fifo的时候b不马上读,而是等t时间后在来读(b读的速度比a写的快),那么理论最小的fifo深度应该:t时间a写入的数据的个数,实际中可能是这个数字+1,+2等
  • jhm_seu (2008-9-10 16:20:43)

    这个t 的设置应该和b与a的速度倍数有关吧,具体该怎么考虑呢??假设b的速度是a的10倍,那么FIFO的深度又应该是多少呢??谢谢。
  • sgl6688 (2008-9-10 17:30:47)

    一个跑一个追 追不上的最小距离就是那时的最小深度
  • jhm_seu (2008-9-11 10:22:40)

    那何时才算追不上呢??我想只要时间足够长,总会追得上的吧。假设读的速度是写的10倍,那么FIFO的深度又应该是多少呢??谢谢。
  • xjtu_zhanglei (2008-9-11 16:44:16)

    fifo的作用就是当输入数据的速率比输出数据的速率快的时候做缓冲用的
    首先不可能读写过程不间断进行
    要是不间断那么多大的fifo都不够
    在一个完整的数据读写周期内,写入的数据比读出的数据超出的最大值就是fifo的深度

    btw:我市这么理解的
    还请大牛们指点
  • jhm_seu (2008-9-12 10:22:32)

    ls的意思是FIFO的深度是相对一个读写周期而言的,没有绝对值。可以这样理解吗??
  • khunlee (2008-9-17 19:09:19)

    首先要明确异步FIFO的写,读地址采用的是Gray码,据说Gray码可以降低亚稳态发生的概率.呵!
    Gray码地址要求FIFO深度是2的N次方,打个比方深度为4(=2^2).而不能是5,或者6.
    所以,当面试官问到FIFO深度这个问题时,直接说4就OK了.因为只要FIFO读写数据平衡,其最小深度4就可以适用于大多数跨时钟域场合.如果传输过程中要求存储数据比较多的话,可以适当增加FIFO深度,不过深度还是要2的N次方.当然,增加FIFO深度可能会使数据延迟更大.如果同时有其它控制信号没有经过FIFO,那么FIFO深度最好为4.
    这只是我作为新手的拙见,欢迎大师,高手指点.
  • yujc1986 (2008-9-20 21:55:47)

    楼上说的貌似很有道理 单纯安写入读出速度去算好像是不大对 印象中某面试题中考过 单纯的按水库问题去解是不对的
  • hy2018 (2008-9-20 23:47:20)

    其实楼上说的对,就是一个跑,一个追的问题,但是一定要留出几个周期的余量来,安全些
  • tongxiwang (2008-10-24 22:36:52)

    也有是8的
  • nan123chang (2008-10-25 09:52:50)

    可参阅:
    http://www.edacn.net/bbs/viewthr ... C%E2%2C%C7%F3%BD%E2
    实际中可能要求FIFO深度是2的N次方,但实际面试时,期望回答的是需要的实际深度。
  • yppflx (2008-10-28 15:18:33)

    好难哦 还是有点不懂 学习呀
  • maxi (2008-10-30 08:47:31)

    如果数据流连续不断写入,则FIFO深度无论多少,只要写端口的带宽大于等于读端口的带宽,则都会丢数;不丢数据的必要条件是读写端口带宽一致,但是这样FIFO也没有存在必要了,仅仅做部分数据未的串/并转换
      FIFO用于缓冲块数据流,一般用在写快读慢时,
       计算方法:
       FIFO 深度=待缓冲数据量= 突发数据量-读出数据量
                = burst_length – (burst_length/F_wr)×(F_rd*链路使用率)
       
    ------F_wr (frequency of write)      F_rd (frequency of read)
    个人见解,尚待讨论
  • nan123chang (2008-10-30 17:33:47)

    在跨时钟域传输多个数据时,不论是从快到慢,还是从慢到快,均要使用FIFO。
  • chanel882116 (2008-10-30 22:44:12)

    学习了。谢谢啦
  • lasaman (2008-10-31 10:49:58)

    学习了。谢谢啦