我在某些自定义硬件上遇到了 Spartan 6 (XC6SLX16-2CSG225I) 和 DDR (IS43R86400D) 内存接口的问题。我在 SP601 开发板上试过,一切都按预期工作。
使用示例项目,当我启用 soft_calibration 时,它永远不会完成并且 calib_done 保持低电平。
如果我禁用校准,就我所见,我可以完美地写入内存。但是,当我尝试从中读取数据时,在赛灵思内存控制器停止执行命令之前,我会收到可变数量的成功读取命令。一旦发生这种情况,命令 fifo 就会填满并保持满状态。成功命令的数量从 8 到 300 不等。
我相当确信这是一个时间问题,可能与 DQS 居中有关。但是因为启用后我无法完成校准,所以我没有连续的 DQS Tuning。所以我假设它在禁用校准的情况下工作,直到时间漂移。
是否有任何明显的地方我应该寻找校准失败的原因?
我知道这不是一个典型的堆栈溢出问题,所以如果这是一个不合适的地方,那么我会退出。
谢谢