virtex-7系列开发板用MIG做DDR3读写中读出的数据顺序怎么打乱了?
时间:10-02
整理:3721RD
点击:
最近在做DDR3的读写,很简单的时序,想验证一下读写是否正确,结果遇到以下的问题: 首先,读写方式是BL8,SEQUENTIAL模式, 频率比是4:1, 也就是说一个FPGA的时钟周期,DDR3进行8次读或写,
那么问题就在这里,比如,app_addr给0地址,意思是从0开始到7,一共写8个数据(1,2,3,4,5,6,7,8),这都没有问题,问题
在读的时候,同样app_addr给0地址,意思是从0开始读一共读8个数据,但读出来的数据变成了7,8,5,6,3,4,1,2 ,以为是写的时候
有问题,后来才发现是读出来的数据顺序不是我想要的了,这是为什么,请教一下用过MIG的朋友,第一次用这个,对很多东西还是不了解!
谢谢!
那么问题就在这里,比如,app_addr给0地址,意思是从0开始到7,一共写8个数据(1,2,3,4,5,6,7,8),这都没有问题,问题
在读的时候,同样app_addr给0地址,意思是从0开始读一共读8个数据,但读出来的数据变成了7,8,5,6,3,4,1,2 ,以为是写的时候
有问题,后来才发现是读出来的数据顺序不是我想要的了,这是为什么,请教一下用过MIG的朋友,第一次用这个,对很多东西还是不了解!
谢谢!
请各位知道的朋友告知一下!谢谢了
4:1是预取,总体看还是一个时钟周期写两个数
不是太明白,意思是写入1,2,3,4,5,6,7,8的话,读操作的话,就是一周期读两个数? 那顺序为什么会变化呢? 我指定地址是从0开始,为什么先读了地址6和地址7的数据? 写入顺序是1,2,3,4,5,6,7,8的话,即使是一次读两个数据,读取出来的数据不也应该是1,2 3,4 5,6 7,8, 为什么会变成了 7,8 5,6 3,4 1,2了呢? 不解
没有人用过吗?
感觉有点像Starting Column Address(A[2, 1, 0])的值被固定为110了,小编可以排查下
一次给一个读命令的话,读出来的数据顺序是乱的,但是一次发两个或以上读命令的话,读出来的数的顺序就没有错,什么情况呢?Starting Column Address是参数设置里面的一个参数吗?
读数据的时候是从高位开始到低位结束 不是从低位到高位读的