阅读:1704回复:17
9054写数据时总滞后一个数据
原来时可以的,现在也不知道什么原因,向本地写数据时(单个数据操作),总是压着一个数据。如果要写入 1,2,3,4,读出时就是 1(也可能不是1),1,2,3 ,后面不管再写什么数,读出来肯定会是4,总是压着一个,请问这是什么原因?这个数存在什么地方了?
|
|
沙发#
发布于:2003-07-14 09:59
怎么没有人回呀?
碰见过类似问题的同志们给点思路了。 |
|
板凳#
发布于:2003-07-14 12:56
你说的也太含糊了阿
|
|
|
地板#
发布于:2003-07-14 15:34
不好意思,再详细说一下:
通过9054 向本地ram写数据,向第一个地址写入D1,第二个地址写入D2,这时读第一个地址会得到D1,读第二个地址时还是D1,如果向另一个地址写入D3,读回的数据会是D2. 用逻辑分析仪看了一下在写D3时,送到RAM的数据的确是D2. 我读写数据用的是WINDRIVER带的 9054 DIAGNOSTICS. 不知道说清楚了没有。 |
|
地下室#
发布于:2003-07-16 10:41
应该是跟你的RAM时序有关。
|
|
5楼#
发布于:2003-07-16 10:53
给我的感觉就是这个滞后的数据是存在9054中,但又说不清是怎么回事。原来只接了一组RAM是好的,接上第二组后就这样了,现在把第二组的片选、使能全部关掉,仍然是滞后一个数据。
用逻辑分析仪可以看到,从PCI槽出来的数据是好的,但是经过9054后出来的就滞后了。 |
|
6楼#
发布于:2003-07-16 12:16
试一下在读回之前清除一下相关的中断,我想可能是这个原因...
看一下9054的datasheet,以及中断的操作原理吧! |
|
7楼#
发布于:2003-07-16 22:44
可是我现在根本就没有使用中断呀?
我可以试一试,谢谢你的回复。 |
|
8楼#
发布于:2003-07-16 23:10
我想可能的原因:
1,是你的地址不对! 在读时,你的地址滞后一个周期,所以读到的数据是前面一个 2,在读数据时使用了缓冲区(FPGA中),读取数据时,先读到的是缓冲中的数据 你查查看吧,我现在也碰到了类似的问题,但是我的原因 是这个,正在想办法解决中, 祝好运 |
|
9楼#
发布于:2003-07-16 23:50
我的原因应该不是这两个方面:
1、我写数据的地址是任意的不一定是连续的,都有这种情况,因此可以排除地址滞后这个原因。 2、数据没有经过fpga,9054出来后,经过驱动和总线开关就到RAM了。 我现在怀疑是9054的寄存器的设置,但有发现不了问题。 感谢你的提示,也祝你好运! |
|
10楼#
发布于:2003-07-17 22:12
你可以查查,是不是你的SRAM的时钟和PCI9054时钟 的不同步的问题,我的问题解决了,就是因LCLK 与 SRAM时钟之间的延时所造成的,9054是在Ready#有效时才读取数据的
|
|
11楼#
发布于:2003-07-18 10:52
我用的是IDT71016,上面没有时钟,只有读写线和片选线。
祝贺你又攻克了一个障碍! 我这个不是读的问题,是写的问题,会不会与负载有关系,我也不清楚,只是在慢慢的试。 |
|
12楼#
发布于:2003-07-18 22:37
呵呵 ,谢谢~
也祝你好运,早日解决问题! |
|
13楼#
发布于:2003-07-21 16:59
新焊上去的两片RAM去掉了,问题还是存在!
没有希望,也没有思路,只有发呆了。 |
|
14楼#
发布于:2003-07-22 08:52
毫无疑问的时序设计错误.
|
|
|
15楼#
发布于:2003-07-22 09:01
恳请斑竹说得再详细一点。
现在对RAM写数时,第一个数是好的,后面的写的总是前一个数,并且与地址没有关系。 |
|
16楼#
发布于:2003-07-22 22:54
是不是写入递增数,会出现这样的效果:
00 00 01 02 04 04 05 06 ...... 这是9054工作于Burst-4方式时的数据? 如果是的话,那么请你检查你的SRAM控制时序吧 |
|
17楼#
发布于:2003-07-23 22:37
我是单个数据读写,从第二个数开始,一直就压着一个。
谢谢flying的热心支持。 |
|