微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > fifo depth 计算

fifo depth 计算

时间:10-02 整理:3721RD 点击:

•DBus clock rate 150 MHz, data width 64 bits
–Client-A: 75 MHz, data width 16 bits
–Client-B: 150 MHz, data width 24 bits
–Client-C : 50 MHz, data width 8 bits
–Assume it takes 20 cycles to change client service
–Assume every FIFO can be fed fully during its porch
•Please decide the FIFO depth and request length for each client for round-robin arbitrator?

DBus bandwidth:      150 Mhz * 64 bits = 9600 Mbit/s
Client-A bandwidth: 75   Mhz * 16 bits = 1200 Mbit/s
Client-B bandwidth: 150 Mhz * 24 bits = 3600 Mbit/s
Client-C bandwidth: 50   Mhz * 8    bits = 400   Mbit/s
Bandwidth utilization rate:
(1200 + 3600 + 400) / 9600 ~= 54.17% -> 55%
(1) (len_A + len_B + len_C) / (len_A + 20 + len_B + 20 + len_C + 20) = 55%;
(2) len_A : len_B : len_C = 1200 : 3600 : 400;
=>  len_A ~= 16.9 -> 17; len_B ~= 50.8 -> 51; len_C ~= 5.6 -> 6.
Client A fifo depth ( len_A = 17):
(len_A/2)*16bit + depth*64bit = len_A*64bit
=> fifo depth = 14.875 ->  15
Client B fifo depth ( len_B = 51):
len_B * 24bit + depth*64bit = len_B*64bit  
=> fifo depth = 31.875 ->  32
Client C fifo depth ( len_C = 6):
(len_C/3)*8bit + depth*64bit = len_C*64bit
=>  fifo depth = 5.75 ->  6

1. 因为DBUS 的bandwidth是要大于实际的bandwidth,所以只要bandwidth达到55%就能满足需求,然后将bandwidth按比较分配给各个client。
2.request length是指每次arbitrator响应时操作的数据量,相当于数据个数(这里假设总线的bitwidth统一为64bit)。
3. 20是指每个client在轮询时需要固定消耗20个cycle,client的request length越小,总线利用率越低,所需要的fifo depth越小。

上面两个公式的计算是基于两个假设条件的:
assume it takes 20 cycles to change client service,
assume every client can be fed fully during its porch.
所以最后的结果是比较理想化的一个计算结果,具体计算时,需要考虑到最差情况...

很好,很详细.

受教了

受教了!


很详细,学习了

thanks for your sharing

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top