async_fifo深度计算

 1.吞吐量知识补充

吞吐量是指对网络、设备、端口、虚电路或其他设施,单位时间内成功地传送数据的数量(以比特、字节、分组等测量)。

吞吐量的英文单词是“throughput ”,也很形象,就是“穿越流量”,单位为bit/s,如果有一个入接口每秒收到1M bit 流量,这1M bit 流量又从其它出接口流走,那么吞吐量 = 1M bit/s。

单位时间内接收的所有数据的速率之和。

单位时间数据的写入或者读出量

 

总数据量/吞吐量=下载时间 

数字带宽:理想带宽

吞吐量:用户体验得到 感受得到的 

写时钟频率:100Mhz

读时钟频率:200Mhz

写:100拍时钟周期写入60拍

读:100拍时钟周期读出30拍

写和读同时启动

1.吞吐量 :单位时间 这个模块吞吐的数据个数,比如1s内读出写入多少数据

这里应该是这样,比如一拍写64bit,64bit/时钟周期=64bitx时钟频率xvld-change(vld拉高密度)

平均一个时钟周期 写入60/100 =0.6拍

写吞吐量=平均一个时钟周期写入的数据量/时钟周期=平均一个时钟周期写入的数据量x时钟频率

写吞吐量=数据位宽x(60/100)x100Mhz

so读吞吐量= 数据位宽x(30/100)x200Mhz

如果 写吞吐量>读吞吐量 ,就一定会满 没有计算的必要了;

2.最悲观:写最密集,突发数据长度
1st 100clk 最后60clk60数据
2nd 100clk 60clk 60数据

这120个时钟周期 保证fifo不溢出,fifo一边写一边读

120个100Mhz 写时钟周期把数据写进fifo中

3算写入突发数据长度需要的时间

没读出的数据剩在fifo中了,算fifo写完的时刻读出去的数据

写完突发长度数据时刻,fifo中还剩下x个数据,读出数据=突发数据长度-x

写完 突发数据长度时间= 读完 (突发数据长度-x)个数据时间

写时钟周期:100Mhz:10ns

读时钟周期:200Mhz :5ns

写突发数据长度所用时间:120x10ns

4.算 这段时间读走了多少数据

方法1:

读走多少数据=(突发数据长度-剩余长度)

读走的数据个数x读时钟周期x100/30=写突发长度所用时间

读走数据个数x5nsx100/30 = 120x10ns

读走数据个数=72

方法2:写入突发数据长度所用的时间x读吞吐量(单位时间内读走的数据)=120x10nsx60M个数据/sx数据位宽/数据位宽=72

5.算 剩余数据个数

剩余数据个数=突发数据个数-读走数据个数=120-72=48

6.求深度

异步fifo要2^n 深度设计为64

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值