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

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

搜帖子
查看: 2273|回复: 4

[求助] 怎么理解FIFO中时钟速率和读写速率的差异呢?

[复制链接]
发表于 2022-3-2 22:30:18 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 come_on_sn 于 2022-3-2 22:31 编辑

比如读写时钟相同,但是读写速率不匹配,这种场景是什么意思呢?谢谢大家了

是说通过wr_en、rd_en来使得读写速率不匹配?

发表于 2022-3-3 10:29:07 | 显示全部楼层
是的,这时读写速率就取决于wr_en,rd_en的时序了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-4 09:43:41 | 显示全部楼层


   
Love24 发表于 2022-3-3 10:29
是的,这时读写速率就取决于wr_en,rd_en的时序了。



嗯嗯,感谢回复~

还有两个问题想要请教下前辈:

1、如果用读写时钟控制读写速率的话,这时如果写的快,读的慢,是不是势必造成数据丢失,在实践中基本不会这么用是吧?
2、FIFO上下游都有模块连接的情况下,rd_en一般怎么设置呢?


回复 支持 反对

使用道具 举报

发表于 2022-3-4 11:05:51 | 显示全部楼层
本帖最后由 Love24 于 2022-3-4 11:29 编辑

1、如果写快读慢,有两种使用场景,一个是上游数据可以被反压,这样的话就利用fifo full反压写,非满时再写入,这时数据就不会丢失;另一种场景就是上游数据源源不断,不能被反压,那么常见的也有两种可能:一种是写数据断断续续,有一段没一段的,这时如果写数据之间的空闲时间足够,虽然读慢,但是由于写一段停了下来,下一波写数据到来之前如果能读完,也没问题,当然,这种场景首先要保证写数据有效的那一段时间内,写不会追上读,这就需要计算一个fifo的临界深度了;如果写数据中间没有空闲,那么写快读慢肯定是有问题的,这种场景在设计之初就应该考虑如何避免(比如进fifo之前通过串并转换降低写数据速率,例如1,2,3,4通过打拍、合并变为12,34,便由一拍一个数降成两拍一个数);

2、rd的话一般下游会有ready信号,rd_en=(~empty)&ready;即保证fifo在非空时读出,且读出的数据下游可以接收。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-6 20:49:11 | 显示全部楼层


   
Love24 发表于 2022-3-4 11:05
1、如果写快读慢,有两种使用场景,一个是上游数据可以被反压,这样的话就利用fifo full反压写,非满时再写 ...





1、非常感谢您了,很详细。就是之前写异步FIFO时,没有考虑过数据反压的问题(对这个名词第一次听)

2、谢谢答复,我的场景是fifo输出的8bit数据对应一个查找表(8bit输入——24bit输出),这种情况下ready信号应该怎么理解呢?谢谢乐~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2025-8-21 19:04 , Processed in 0.027510 second(s), 4 queries , Gzip On, Redis On.

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