搜索
bottom↓
回复: 23

求助:关于FIFO的输出端重复读取数据的问题。

[复制链接]

出0入0汤圆

发表于 2014-7-29 09:04:50 | 显示全部楼层 |阅读模式

wrclk=2MHz,
rdclk=50MHz,
目的:FIFO作为ADC的缓存器,将ADC采集的数据经过输入端din,从而将输入数据转换到另一个时钟域。
问题:由于读时钟比读时钟快25倍,导致输出端dout重复输出同一个数25次,比如输入为1,输出就会出现25个1.请问如何解决这个问题?

本帖子中包含更多资源

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

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2014-7-29 09:34:36 | 显示全部楼层
这会有什么问题么?你只读一次又不是读25次,输出一直是1又没有关系

出0入0汤圆

发表于 2014-7-29 09:36:42 | 显示全部楼层
本帖最后由 lcw_swust 于 2014-7-29 09:39 编辑

为什么读那么快?
让rdclk的平均频率为2MHz就行了。
一般FIFO至少会有两个标志引脚,一个是空标志,一个是满标志,用于指示FIFO数据状态。
(有些FIFO会还有半满标志)
如果空标志有效,说明FIFO内没数据了,那就不能读了。

出0入442汤圆

发表于 2014-7-29 09:37:07 来自手机 | 显示全部楼层
发现一个数字用户,围观

出0入0汤圆

 楼主| 发表于 2014-7-29 09:56:56 | 显示全部楼层
lcw_swust 发表于 2014-7-29 09:36
为什么读那么快?
让rdclk的平均频率为2MHz就行了。
一般FIFO至少会有两个标志引脚,一个是空标志,一个是 ...

但因为采集的数据用于后续算法的计算,速度越快越好,所以频率才这么高

出0入0汤圆

发表于 2014-7-29 10:02:21 | 显示全部楼层
yuloong 发表于 2014-7-29 09:56
但因为采集的数据用于后续算法的计算,速度越快越好,所以频率才这么高 ...

wrclk=2MHz,每us写入2字节
rdclk=50MHz,每us读取50字节
就是说,1us里写入了2个字节,但要读取50字节,这多读出的来48字节数据从哪来?
楼主怎么想的?

出0入442汤圆

发表于 2014-7-29 10:15:39 来自手机 | 显示全部楼层
lcw_swust 发表于 2014-7-29 10:02 wrclk=2MHz,每us写入2字节 rdclk=50MHz,每us读取50字节 就是说,1us里写入了2个字节,但要读取50字节, ...

数字用户+大字体,看图片文件说明。还是让lz自己考虑他的问题吧。

出0入0汤圆

 楼主| 发表于 2014-7-29 10:31:52 | 显示全部楼层
lcw_swust 发表于 2014-7-29 10:02
wrclk=2MHz,每us写入2字节
rdclk=50MHz,每us读取50字节
就是说,1us里写入了2个字节,但要读取50字节, ...

这50字节是同一个数,也可以这样理解,写时钟为2MHz,周期为500ns,那么,FIFO输出口数据保持时间是500ns,又读时钟为50MHz,即每读一个数时间为20ns,500/20=25,所以会出现重复读一个数25次的问题。

出0入0汤圆

发表于 2014-7-29 10:47:19 | 显示全部楼层
yuloong 发表于 2014-7-29 10:31
这50字节是同一个数,也可以这样理解,写时钟为2MHz,周期为500ns,那么,FIFO输出口数据保持时间是500ns ...

即然楼主明白这个问题,那楼主想怎么解决?
想解决什么问题?
我认为简单的方法是改变“后续算法”

按楼主的逻辑,明明知道1+1=2,确想问如何让1+1=3,有点混乱啊。

出0入0汤圆

发表于 2014-7-29 10:51:36 | 显示全部楼层
wye11083 发表于 2014-7-29 09:37
发现一个数字用户,围观

如何看出是数字用户?

出0入0汤圆

 楼主| 发表于 2014-7-29 10:57:14 | 显示全部楼层
lcw_swust 发表于 2014-7-29 10:47
即然楼主明白这个问题,那楼主想怎么解决?
想解决什么问题?
我认为简单的方法是改变“后续算法”

我的问题是:现在重复读同一个数25次,能不能用什么方法只读一次?

出0入0汤圆

发表于 2014-7-29 11:02:38 | 显示全部楼层
yuloong 发表于 2014-7-29 10:57
我的问题是:现在重复读同一个数25次,能不能用什么方法只读一次?

rdclk从哪来?
当FIFO空标志有效时,关断rdclk即可

出0入442汤圆

发表于 2014-7-29 11:12:04 来自手机 | 显示全部楼层
RUANJI 发表于 2014-7-29 10:51 如何看出是数字用户?

图片描述是数字软件小助手截图。对数字实在是太恶心,没办法。

出0入0汤圆

 楼主| 发表于 2014-7-29 11:13:24 | 显示全部楼层
lcw_swust 发表于 2014-7-29 11:02
rdclk从哪来?
当FIFO空标志有效时,关断rdclk即可

通过PLL输出一时钟给rdclk

出0入0汤圆

发表于 2014-7-29 11:21:15 | 显示全部楼层
本帖最后由 lcw_swust 于 2014-7-29 11:22 编辑
yuloong 发表于 2014-7-29 11:13
通过PLL输出一时钟给rdclk


后续算法怎么知道来了一个字节的数据?通过rdclk?
后续是由FPGA处理还是单片机处理?

出0入0汤圆

发表于 2014-7-29 11:25:08 | 显示全部楼层
yuloong 发表于 2014-7-29 10:57
我的问题是:现在重复读同一个数25次,能不能用什么方法只读一次?

还是不明白LZ的重复读同一个数是什么意思,是读写间隔内dout口会保持的意思吗?如果读时钟那么快的话早就读空了。
如果LZ的本意是想在一个rdclk输出一个采集到的数据的话建议采用双FIFO,而且读写时钟都要差不多才行。

出0入0汤圆

 楼主| 发表于 2014-7-29 11:55:33 | 显示全部楼层
lcw_swust 发表于 2014-7-29 11:21
后续算法怎么知道来了一个字节的数据?通过rdclk?
后续是由FPGA处理还是单片机处理? ...

后续算法的时钟和rdclk是同一时钟,,用fpga执行算法

出0入0汤圆

发表于 2014-7-29 11:57:18 | 显示全部楼层
yuloong 发表于 2014-7-29 11:55
后续算法的时钟和rdclk是同一时钟,,用fpga执行算法

那就相当简单了,用wrclk代替rdclk就行了。FIFO都省了。

出0入0汤圆

发表于 2014-7-29 13:03:36 | 显示全部楼层
后续算法必须要加上判断fifo的empty的逻辑.

出0入0汤圆

 楼主| 发表于 2014-7-29 14:12:11 | 显示全部楼层
putty 发表于 2014-7-29 13:03
后续算法必须要加上判断fifo的empty的逻辑.

已经加了,当empty==1时,不读,empty==0时,读数据,
想问的是:由于读时钟大于写时钟,造成多次读同一个数据,这是正常现象?不是的话,有什么方法可以避免吗?

出0入0汤圆

发表于 2014-7-29 17:44:04 | 显示全部楼层
yuloong 发表于 2014-7-29 14:12
已经加了,当empty==1时,不读,empty==0时,读数据,
想问的是:由于读时钟大于写时钟,造成多次读同一 ...

你写的慢,读得快读同一地址当然是同一数据啊,时钟一直再走啊亲。
你要读一个很简单,IP加入读使能信号控制就行了

出0入0汤圆

发表于 2014-7-29 17:52:39 | 显示全部楼层
加一个读使能就可以了,但是最好是满了读,一次性读完。像这样子:

本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2014-7-29 20:28:50 | 显示全部楼层
楼主还没了解什么叫FIFO
不是你想的这样
凡事不要自己乱想,不要意淫
找到文档手册,好好看看什么叫FIFO

出0入0汤圆

发表于 2014-7-29 23:03:47 | 显示全部楼层
yuloong 发表于 2014-7-29 14:12
已经加了,当empty==1时,不读,empty==0时,读数据,
想问的是:由于读时钟大于写时钟,造成多次读同一 ...

empty信号应该是与读时钟同步的,一旦读一次后,立刻无效.
看你的描述,empty是跟写时钟同步的,那么肯定会有问题.好好看看fifo模块的各种配置参数吧.
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 03:25

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表