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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: windzjy

关于fifo深度问题

[复制链接]
发表于 2010-3-5 10:07:18 | 显示全部楼层
这贴好,讨论有深度
必火
发表于 2010-4-8 14:27:29 | 显示全部楼层
wice3 版主您好,我还有个问题想请教:
当A/B * w_clk != X/Y * r_clk,即fifo的输入和输出带宽要不匹配时,数据会无限积累,那么应该怎样解决这个问题呢?谢谢
发表于 2010-4-21 23:38:28 | 显示全部楼层
谢谢lz分享...
发表于 2010-6-4 19:56:52 | 显示全部楼层
路过,学习了,谢谢
发表于 2010-6-5 15:12:48 | 显示全部楼层
我想FIFO应该是常用作缓冲吧,所谓的深度够用就行,读和写都有自己的控制信号,读写时序可以不一样,读和写也可以由不同的控制器来完成不是。也不一定读写同时进行,不停地进行。用作缓冲还是可以的,不存在数据残留的问题吧。个人看法。
发表于 2010-6-5 15:25:55 | 显示全部楼层
我的理解错了,楼主所讲的是不是应该有一个带宽匹配的问题,但是这样和采用多个寄存器有什么区别呢?请楼主明示。
发表于 2010-6-5 18:49:15 | 显示全部楼层


我以前看到过这个公式,是用来计算同步fifo的。

你所举的那个例子, 如果呼入fifo的数据宽度和呼出相同的话,都设为w bit。那么呼如fifo的带宽就是200wbps,呼出fifo的带宽是100wbps。考虑链路利用率都是80% ...
wice3 发表于 2007-1-15 13:59



为什么这么多人多没有发现上面计算的问题,我觉得新手的话也要学会自己思考,切勿人云亦云。

正解:

还是以上面的例子开始:
如果100个写时钟周期可以写入80个数据,10个读时钟可以读出8个数据
其中w_ck=r_ck

fifo_depth= 80 - (80/10)*8 = 16

再以lz的问题讨论一般情况,这种问题一般要满足下面两个条件:
1. X/(r_clk * Y) >= A/(w_clk * B)
2. 在满足上面条件下,fifo_depth = A - ((A*w_clk)/r_clk)*(X/Y)

注: r_clk & w_clk 为周期。

#2楼的windzjy举的例子不满足条件1,wice3说对了,但是wice3计算深度错了。
发表于 2010-9-1 20:06:06 | 显示全部楼层
计算读写总量,然后计算读写数据量的差额!
发表于 2010-9-17 17:53:43 | 显示全部楼层
jingdian 的讨论
发表于 2010-10-12 11:08:59 | 显示全部楼层
好文
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

×

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

GMT+8, 2024-3-29 12:50 , Processed in 0.025755 second(s), 6 queries , Gzip On, Redis On.

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