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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

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

[求助] 异步fifo操作问题(xilinx fifo IP core)

[复制链接]
发表于 2016-4-16 09:30:39 | 显示全部楼层 |阅读模式

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

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

x
劳烦高人指点,在此先行谢过!使用xilinx的fifo generater 产生有读写时钟的,有valid和wr_ack的IP核。操作如下:在写端,获取一个数据,写进fifo,如果wr_ack有效,继续获取下一个数据写入fifo;如果wr_ack无效,则此数据重新写入fifo,直到写入成功为止。读fifo也是一样的,读取一个数据,检查valid是否有效,若有效,继续读下一个;若无效,再读一遍直到valid有效,再读下一个。现在出现的问题是,读取端读出的有效数据比写入端多,请问各位高手,这个思路有问题么?谢谢指教!
发表于 2016-4-18 07:33:28 | 显示全部楼层
回复 1# ldyxhn


   思路看起来没什么问题,问题可能出现在你写读驱动那一块的代码上了,估计跟pipeline有关系,你检查一下读写时序。
发表于 2016-4-18 14:35:55 | 显示全部楼层
valid 有效再读
发表于 2016-4-18 16:49:54 | 显示全部楼层
操作方法要根据这个IP的要求来做,我估计这个FIFO正确的操作方式应该是这样的:要想写,先查询wr_ack,如果有效则写,如果无效则不要写,等待直到wr_ack有效时才去写;要想读,先查询valid,如果有效则去读,如果无效则不要读直到valid有效。
你的操作方式里都存在无效的写或者读,好像没见过FIFO是这样设计的,你去看看这个FIFO的操作说明吧。
发表于 2016-4-29 10:19:14 | 显示全部楼层
回复 1# ldyxhn


   fifo有空和满标志的,另外fifo空了valid也会掉下去
 楼主| 发表于 2016-5-6 15:14:24 | 显示全部楼层
回复 2# acgoal


   fifo 的full和empty的有效是在写入或读出时钟上升沿之后3到4个时钟才有效的,比如写入fifo一个数,明明写入之后就会满,full不会立刻变成1,把写使能关闭,在写时钟的三个周期后full才会变成1。之前没用empty和full信号就是因为不知道这个,才用了wr_ack和valid信号。这两个信号可能也存在这样的问题,wr_ack和valid的有效可能不会在写入或者读出的时钟沿立刻有效。后来我又改成了empty和full信号的,不再使用wr_ack和valid了,也就没有验证他们的有效是否会延迟。这个应该是可行的,但这么使用fifo好像确实没有用empty和full好。谢谢您提的宝贵建议!
 楼主| 发表于 2016-5-6 15:18:55 | 显示全部楼层
回复 4# 杰克淡定


   wr_ack是write的acknowledge信号,就是要在写之后才会有效的,valid类似。存在好多无效读写确实不对,是因为empty和full信号,最开始没有搞明白,就用的wr_ack和valid信号。。。谢谢您指点!
 楼主| 发表于 2016-5-6 15:21:39 | 显示全部楼层
回复 5# typen


   谢谢您的回复,很有帮助!
 楼主| 发表于 2016-5-6 15:23:59 | 显示全部楼层
回复 3# iyama


   valid信号相当于read的acknowledge信号,表示读数是否成功,是应该读数之后再检测的。谢谢您的回复!
发表于 2016-5-6 18:31:20 | 显示全部楼层
回复 7# ldyxhn


  那你还不如自己写一个FIFO,很简单的,别用它的IP了,这操作方法看起来怪怪的。FIFO的empty以及full信号,分别在read以及write的时钟域下,应该是及时置起来的;如果存在滞后,这FIFO的设计就有问题,会发生空了还在读,满了还在写的错误。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-12-27 14:37 , Processed in 0.023580 second(s), 8 queries , Gzip On, Redis On.

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