我在一些定制硬件上遇到了Spartan 6 (XC6SLX16-2CSG225I)和DDR (IS43R86400D)内存接口的问题。我已经在SP601开发板上试过了,所有的功能都像预期的那样工作。
使用示例项目,当我启用soft_calibration时,它永远不会完成,calib_done也会保持较低的水平。
如果我禁用校准,我可以写到记忆完美到我所能看到的。但是,当我尝试从它读取时,在Xilinx内存控制器停止实现这些命令之前,我会得到一个可变数量的成功读取命令。一旦发生这种情况,命令fifo就会填满并保持满。成功命令的数量从8条到300条不等。
我非常确信这是一个时间问题,可能与以DQS为中心有关。但由于我无法获得校准完成时,启用,我没有连续的DQS调优。因此,我假设它的工作与校准禁用,直到时间漂移。
是否有任何明显的地方,我应该寻找为什么校准失败?
我知道这不是一个典型的堆栈溢出问题,所以如果这是一个不合适的地方,那么我将退出。
谢谢
发布于 2016-08-05 21:05:19
不幸的是,校准过程只是尝试连续地写入和读取内容,同时在内部调整水龙头。它找到成功的一端,然后走到另一个方向,确定成功的敲击,然后最终在中间的某个地方安顿下来。
这可能也是以HW为中心的,所以我发布了我的想法,并让其他人移动线程。
https://stackoverflow.com/questions/38770050
复制相似问题