FIFO最小深度计算

1、 读写没有空闲周期。(fA>fB)


        例如,fA = 80MHz;fB = 50MHz;Burst Length = 120;读写之间没有空闲周期,连续读写一个突发长度。
解法:
        写一个数据需要的时间 = 1 / 80MHz = 12.5ns;

        写一个突发需要的时间 = 120 * 12.5ns = 1500ns;

        读一个数据需要的时间 = 1 / 50MHz = 20ns;
        每 1500ns, 120 个数据被写入 FIFO,但读一个数据需要 20ns 的时间,则 1500ns 内读出1500 / 20 = 75个数据,剩下的 120 - 75 = 45没有读出,就存在 FIFO 中。


快捷方法: FIFO 深度 =120 - 120*50/80 = 45
补充:读写没有空闲,若 fA<=fB,则 FIFO 不会写满,深度为 1 即可。

2、读写都有空闲周期。(读写速率大小随意,可以相等)


        例如,fA = 80MHz;fB = 50MHz;Burst Length = 120;两个连续写入之间的空闲周期为 = 1(写使能占得百分比为 50%);两个连续读取之间的空闲周期为 = 3(读使能占得百分比为 25%)
解法:
        每写入一个数据等待 1 个周期再写入下个数据,即 2 周期写入 1 个数据。
        每读出一个数据等待 3 个周期再读出下个数据,即 4 周期读出 1 个数据。
        写一个数据需要的时间 = 2 * (1 / 80MHz) = 25ns
        写一个突发需要的时间 = 120 * 25ns = 3000ns
        读一个数据需要的时间 = 4 * (1 / 50MHz) = 80ns
        每 3000ns, 120 个数据被写入 FIFO,但读一个数据需要 80ns 的时间,则 3000ns 内读出3000 / 80 = 37.5个数据,, FIFO 深度=120-37.5=83
快捷方法: FIFO 深度 = 120 - 120*(50/4)/(80/2)=82.5=83。

3、考虑背靠背,读写速率相等。


        例如,读写速率相等,每 100 个时钟写入 80 个数据;每 10 个时钟读取 8 个数据
突发长度为 160 (这个条件其实多余)
解法:
        每 100 个时钟写入 80 个数据,那剩下 20 个时钟周期去哪了?
        每 10 个时钟读取 8 个数据,那剩下 2 个时钟周期去哪了?
        剩下的周期在哪我们不管,只考虑最差的情况,即前 20 个时钟周期空闲,后80 个周期写完 80 个数据,立马又是写请求,这次是前 80 个时钟周期写完 80 个数据,后 20 个时钟周期空闲。即两次连续的突发写入,又称为背靠背。
        写一个突发需要的时间: 160 时钟周期,则 160 个时钟周期内读出160*8/10=128个数据。
        FIFO 深度 = 160 - 128 = 32

4、 考虑背靠背,读写速率不等。


        例如,fA = 20MHz,fB = 40MHz,每 1000 个时钟周期写入 500 个数据,每 4 个时钟周期读出 1 个数据。
解法:
        考虑到“背靠背”的情况突发长度则为 500 * 2 = 1000,则为每 1000 个时钟周期写入 1000 个数据;
        写一个数据需要的时间 = 1 / 20MHz = 50ns;
        写一个突发需要的时间 = 1000 * 50ns = 50000ns;

        每 4 个周期,读取一个数据。读一个数据需要的时间 = 4 * (1 / 40MHz) = 100ns;
        每 50000ns, 1000个数据被写入 FIFO,但读一个数据需要 100ns 的时间,可以计算出, 50000ns 内读出50000 /100 = 500个数据;
        剩下的没有读出,就存在 FIFO 中,则需要FIFO深度为 1000- 500 = 500

  • 22
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值