请教,SPARTAN-6使用DDR2时错一个数的问题!!

2020-02-24 20:28发布

使用ISE14.2 SPARTAN6芯片 16位数据线密度1G的ddr2存储芯片
MCB系统时钟工作在最低的125M,数据线设置为32位
MCB和存储芯片的brust_length设置为4
出现的现象如下:
1.写入MCB的数据没有问题,但是MCB写入DDR2的数据在最开始处多写了一个FFFF最后的真实数据少写了一个,读回来的时候最开始多写的这个变成了0000!
2.写DDR2时,DQS的双沿采在DQ的中间,但是,读DDR2时DQS的双沿和DQ是平齐的,这和仿真参考程序是不同
现在是不是第二个问题导致了第一个问题的出现?有人遇到过类似问题吗???

另外,UG388和UG416我都看过很多遍了,但是对Data_Make和地址的递增还是不太明白
我现在没有处理DM但是看仿真和chipscope的波形发现数据都能对上,只是错了一个数
我现在不明白:
1.32位的用户接口和ddr2 16位的芯片数据线这个关系为什么需要使用4位的DM来标记数据个数?
2.16位数据线的DDR2芯片的一个地址空间存储16位数据还是8位数据,pdf上的意思好像是存8位数据所以要4个地址存一个32位的用户数据,但是我总感觉是存16位数据的
3.用户接口这个面32位的数据和ddr2的16位的数据线,在系统时钟是125M的时候,给MCB送数的时钟到底应该是多少??

几个疑惑和问题请教大家,先多谢!!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
20条回答
gnr_zhao
2020-02-25 22:29
GoldSunMonkey 发表于 2013-5-4 23:20
如何了?

现在有一些帧第一行有半行错数,感觉好像是上电一段时间后哪里累积的结果
我生成mig的时候选的是bank_row_col这样的地址结构
现在怀疑是不是地址映射的时候出了错
今天才知道,ddr2的row和col是地址复用的
地址使用上有什么注意呢???
是不是有哪个位或者哪些位是不能用的??(比如A10必须是0吗??)

非常感谢猴哥回复!

一周热门 更多>