请教,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送数的时钟到底应该是多少??

几个疑惑和问题请教大家,先多谢!!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
yghanwuji
1楼-- · 2020-02-26 21:21
gnr_zhao 发表于 2013-5-6 19:46
我现在理解的是,如果DM全置0,就是所有数据都有效,那么单沿采高16位还是低16位都可以采到
example_desi ...

如果你不需要屏蔽某个字节的话,你全写0就可以了。
你不是用IP核生成的控制器?是自己写的DDR2控制程序吗?
col和row确实是复用的,我在altera里面是只要操作本地地址就行了,它生成的ddr2控制器可以自己选择当前操作col还是row,DDR2引脚通过RAS#和CAS#来选择当前操作的是ROW ADDRESS 还是column address 你可以看下芯片手册里的ddr2 command的真值表。

一周热门 更多>