在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 6571|回复: 10

[原创] fifo depth 计算

[复制链接]
发表于 2010-6-18 14:48:38 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 zhouzhiping849 于 2010-6-18 14:49 编辑

[size=144%]•DBus clock rate 150 MHz, data width 64 bits
[size=133%]–Client-A: 75 MHz, data width 16 bits
[size=133%]–Client-B: 150 MHz, data width 24 bits
[size=133%]–Client-C : 50 MHz, data width 8 bits
[size=133%]–Assume it takes 20 cycles to change client service
[size=133%]–Assume every FIFO can be fed fully during its porch
[size=144%]•Please decide the FIFO depth and request length for each client for round-robin arbitrator?
 楼主| 发表于 2010-6-18 16:13:04 | 显示全部楼层
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
头像被屏蔽
发表于 2010-6-19 21:45:56 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2010-6-20 22:38:47 | 显示全部楼层
楼主能不能仔细讲解一下?

(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;

这里的两个方程什么意思?轮询仲裁中request length指的是什么??为什么第一个式子都加了20??
 楼主| 发表于 2010-6-22 14:40:18 | 显示全部楼层
本帖最后由 zhouzhiping849 于 2010-6-22 14:42 编辑

1. 因为DBUS 的bandwidth是要大于实际的bandwidth,所以只要bandwidth达到55%就能满足需求,然后将bandwidth按比较分配给各个client。

2.request length是指每次arbitrator响应时操作的数据量,相当于数据个数(这里假设总线的bitwidth统一为64bit)。

3. 20是指每个client在轮询时需要固定消耗20个cycle,client的request length越小,总线利用率越低,所需要的fifo depth越小。
 楼主| 发表于 2010-6-22 14:45:59 | 显示全部楼层
上面两个公式的计算是基于两个假设条件的:
assume it takes 20 cycles to change client service,
assume every client can be fed fully during its porch.

所以最后的结果是比较理想化的一个计算结果,具体计算时,需要考虑到最差情况...
发表于 2010-7-27 13:09:30 | 显示全部楼层
很好,很详细.
发表于 2010-8-3 10:28:44 | 显示全部楼层
受教了
发表于 2010-10-26 14:31:46 | 显示全部楼层
受教了!!!!!!!!!
发表于 2010-10-27 15:35:03 | 显示全部楼层
回复 2# zhouzhiping849

很详细,学习了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-5 12:45 , Processed in 0.024805 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表