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 最后60个clk写60数据
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