Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Memory 如何调查Spartan 6 MIG DDR校准失败_Memory_Fpga_Calibration_Spartan - Fatal编程技术网

Memory 如何调查Spartan 6 MIG DDR校准失败

Memory 如何调查Spartan 6 MIG DDR校准失败,memory,fpga,calibration,spartan,Memory,Fpga,Calibration,Spartan,我在一些定制硬件上使用Spartan 6(XC6SLX16-2CSG225I)和DDR(IS43R86400D)内存接口时遇到问题。我已经在SP601开发板上试过了,所有的工作都如预期的那样 使用示例项目,当我启用soft_校准时,它永远不会完成,calib_done保持低位 如果我禁用校准,我可以尽可能完美地写入内存。但是当我尝试从中读取时,在Xilinx内存控制器停止执行命令之前,我获得了数量可变的成功读取命令。一旦发生这种情况,命令fifo将充满并保持满。成功命令的数量从8到300不等 我

我在一些定制硬件上使用Spartan 6(XC6SLX16-2CSG225I)和DDR(IS43R86400D)内存接口时遇到问题。我已经在SP601开发板上试过了,所有的工作都如预期的那样

使用示例项目,当我启用soft_校准时,它永远不会完成,calib_done保持低位

如果我禁用校准,我可以尽可能完美地写入内存。但是当我尝试从中读取时,在Xilinx内存控制器停止执行命令之前,我获得了数量可变的成功读取命令。一旦发生这种情况,命令fifo将充满并保持满。成功命令的数量从8到300不等

我相当确信这是一个时间问题,可能与DQ定心有关。但由于启用时无法完成校准,因此我没有连续的DQS调整。所以我假设它在禁用校准的情况下工作,直到时间漂移

是否有任何明显的地方我应该寻找为什么校准失败

我知道这不是一个典型的堆栈溢出问题,所以如果这是一个不合适的地方,我会退出


感谢

不幸的是,校准过程只是尝试在内部调整抽头的同时连续写入和读取内容。它发现了一个成功的终点,然后走向另一个方向,并确定成功的轻敲,然后最终在中间的某个地方定居。 这可能也是以硬件为中心的,所以我发布了我的想法,并让其他人移动线程

  • 只是这块木板吗?还是他们都在这么做?你查过了吗?如果只有一块板,而且RAM是BGA类型的,那么这可能是一项糟糕的士兵工作。将手指轻轻地按在芯片上,看看是否得到不同的结果。。。在这之后,将变得更加以硬件为中心
  • 您在自定义板上运行的FPGA映像是否能够在devkit上工作?很多时候,我知道这是不实际的,但我想我会问一下,因为它排除了您在devkit上使用的映像具有您在自定义映像中没有的FPGA约束

  • 检查轨迹上的长度公差。应该有一个长度限制。正负50英里差不多。没有人喜欢听到他们需要重新旋转董事会,但如果这些都被淘汰了,这解释了很多

  • 信号完整性。你有没有把终端电阻放进去,它们的值正确吗?你不认为你有一个活跃的探测器吗
  • 您是否获得了正确的DDR内存。有时他们使用不同的速度等级,这可能会导致各种问题
  • 减缓界面速度通常有助于第4项和第5项。因此,如果您只是想完成工作,您可能会要求一个时钟较慢的新FPGA映像

  • 不幸的是,校准过程只是尝试在内部调整抽头的同时连续写入和读取内容。它发现了一个成功的终点,然后走向另一个方向,并确定成功的轻敲,然后最终在中间的某个地方定居。 这可能也是以硬件为中心的,所以我发布了我的想法,并让其他人移动线程

  • 只是这块木板吗?还是他们都在这么做?你查过了吗?如果只有一块板,而且RAM是BGA类型的,那么这可能是一项糟糕的士兵工作。将手指轻轻地按在芯片上,看看是否得到不同的结果。。。在这之后,将变得更加以硬件为中心
  • 您在自定义板上运行的FPGA映像是否能够在devkit上工作?很多时候,我知道这是不实际的,但我想我会问一下,因为它排除了您在devkit上使用的映像具有您在自定义映像中没有的FPGA约束

  • 检查轨迹上的长度公差。应该有一个长度限制。正负50英里差不多。没有人喜欢听到他们需要重新旋转董事会,但如果这些都被淘汰了,这解释了很多

  • 信号完整性。你有没有把终端电阻放进去,它们的值正确吗?你不认为你有一个活跃的探测器吗
  • 您是否获得了正确的DDR内存。有时他们使用不同的速度等级,这可能会导致各种问题
  • 减缓界面速度通常有助于第4项和第5项。因此,如果您只是想完成工作,您可能会要求一个时钟较慢的新FPGA映像

  • 对于这个问题,一个更合适的地方是。我们确实有一些关于堆栈溢出的HDL问题,但大多数问题都是关于逻辑的,而不是像这个问题这样的低级硬件细节。好的,很高兴知道。非常感谢。对于这个问题,一个更合适的地方是。我们确实有一些关于堆栈溢出的HDL问题,但大多数问题都是关于逻辑的,而不是像这个问题这样的低级硬件细节。好的,很高兴知道。非常感谢。非常感谢您的详细回复。我调查了所有这些建议,没有人对此负责,但调查线显示硬件有错误。电路板上的芯片选择被锁定在高位而不是低位。一旦我解决了所有问题,非常感谢您的详细回复。我调查了所有这些建议,没有人对此负责,但调查线显示硬件有错误。电路板上的芯片选择被锁定在高位而不是低位。有一次我把一切都搞定了。