ultramanshey 发表于 2013-5-17 13:58:19

一个不规则的错误,大家来看看我的分析哪里有问题

首先问题描述:自制FPGA板卡,结构PCI9054(32位)---FPGA(32位)---SDRAM(16位),测试步骤如下:
第一步,读写FPGA内部存储,写进去32个32位的二进制数(数字本身随机),再读出来,32个数彼此一一对应无差错;
第二步,读写SDRAM,数据经过PCI--FPGA--SDRAM,由于SDRAM是16位的,所以我用FPGA内部建立32转16的FIFO ipcore,写入到SDRAM,再用一个16转32的FIFO core从sdram中读取相应的数据;

问题出在第二步读出来的数据转化成16进制数就是20000000之类的,也就是说在第29位那里有个错误‘1’。

分析:
1,第一步完全正确的情况下我认为PCI--FPGA之间的通信是正常的。
2,在1的基础上,考虑SDRAM和FPGA之间的通信,考虑到SDRAM是16位的,相应的管脚是第13位管脚,于是我检查有没有虚焊的情况,但是我又考虑到如果出现虚焊应该来说输出的32位的数会在第13位和第29位同时出现错误,这里只在第29位出现错误,虚焊等外部问题的可能性降低,同时检查下来也没有虚焊等情况。

这下我迷茫了,既然不是外部问题,而且昨天读写还是完全正确的,我不懂了呀,难道是我代码的问题,可我昨天到今天还没动过代码。。。请教大家,是不是我的分析思路有问题呢?

winkle 发表于 2013-5-19 18:25:12

我遇到过71138位数据转16位然后写入FiFo,读出来后高4位就不对后12位都ok
最后无耐把fifo入改8位了

ultramanshey 发表于 2013-5-20 11:59:08

winkle 发表于 2013-5-19 18:25 static/image/common/back.gif
我遇到过71138位数据转16位然后写入FiFo,读出来后高4位就不对后12位都ok
最后无耐把fifo入改8位了 ...

确实这里面的问题捉摸不透,今天再发一贴,把这两天的测试结果写一写,看看有没有大神可以帮忙解释一下

幸福的鱼 发表于 2013-5-20 13:40:43

楼主,请问你用于通信的时钟是否同步呢?会不会是错位,建议你换个数据5A5A,试试错的规律是怎样的?

ultramanshey 发表于 2013-5-20 13:48:15

幸福的鱼 发表于 2013-5-20 13:40 static/image/common/back.gif
楼主,请问你用于通信的时钟是否同步呢?会不会是错位,建议你换个数据5A5A,试试错的规律是怎样的? ...

时钟同步的情况我不敢排除,但是各种各样的数据我都试过了,这个第29位的错时不时的出现,具体的测试我今天已经新发一贴有个详细的说明http://www.amobbs.com/thread-5535033-1-1.html,还请你多多指点
页: [1]
查看完整版本: 一个不规则的错误,大家来看看我的分析哪里有问题