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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: mysoul

[求助] FIFO使用的一点问题

[复制链接]
发表于 2018-3-15 14:16:32 | 显示全部楼层
一般来说,在Wr端是每B个写周期会有A个数据写入。在Rd端,每Y个读周期会有X个数据读出。Depth=Burst Lenth-BurstLength (X/Y×Fr/Fw×A/B)
 楼主| 发表于 2018-3-15 15:24:57 | 显示全部楼层
回复 8# jiannanc


    我现在说的不是设计FIFO,而是使用它,再说了我又不是没有设计过FIFO。我说的核心的问题是,FIFO两端速率的问题
 楼主| 发表于 2018-3-15 15:28:32 | 显示全部楼层
回复 10# renminggong


    和读写使能作用的时间有关系,要想不出现空满标志,核心应该是保证两边的吞吐率一致,应该就可以了
 楼主| 发表于 2018-3-15 15:31:20 | 显示全部楼层
回复 11# renminggong


    其实你的意思也是一样的,就是保证两边的吞吐率一致,FIFO的深度用来缓存一帧的数据吧
发表于 2018-3-15 17:22:10 | 显示全部楼层
clk2最小也要96MHz
发表于 2018-3-15 20:52:50 | 显示全部楼层
别理jiannanc 这个二货,他自己问个fifo问题,居然得出一个写时钟>读时钟才能保证fifo吞吐正常这种可笑结论。。。。
好了回到你的问题,假如你fifo单位数据位宽是N,你的在clk1端的速率是(6144/6400)*100M*N= N*96M,fifo在连续数据流下有2个作用,1个是用作跨时钟域,2个是用作读写端的速率匹配,吸收写入端的burst数据块,但无论如何你的读、写单位速率必须一致,才能保证读、写端连续数据流,而在读端连续读出则可以保证读端速率最大且时钟最小,所以你的读端最小时钟是96M Hz。
发表于 2018-3-16 09:00:19 | 显示全部楼层
如果系统要一直工作的话,需要保证吞吐率为1,clk2必须为96M,理论最小深度为246(256/100*96,读写使能同时开启),实际情况下读写使能不能同时,建议读使能在写使能之后几位开启,深度做相应的增加即可,同时建议留出频偏余量。
发表于 2018-3-16 10:51:43 | 显示全部楼层
clk1>>>clk2 ,又要确定clk2的频率?
所以,你的条件和问题让人很迷惑,可能clk1>>>clk2这句话是多余的,不然没有答案啊。
至于答案,很多人也给出了正确解答。
发表于 2018-3-18 11:48:26 | 显示全部楼层
如果不允许反压,则需要读写平均速率一致才行,如果读可以一直读,则读时钟频率为写数据速率,即100*6144/6400,fifo大小就是根据写数据过程时间决定,6144是比较保险的深度,实际如果扣的细一点,深度可以在小一些,因为你是在编写遍读,同时异步fifo深度一般考虑2的整数次幂,便于格雷码反转
发表于 2018-3-23 17:33:04 | 显示全部楼层
可以降低256/6400,理论上是这样
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-3-29 05:36 , Processed in 0.031897 second(s), 7 queries , Gzip On, Redis On.

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