У меня возникли проблемы с интерфейсом памяти Spartan 6 (XC6SLX16-2CSG225I) и DDR (IS43R86400D) на некотором нестандартном оборудовании. Я пробовал на плате разработчика SP601, и все работает, как и ожидалось.
Используя пример проекта, когда я включаю soft_calibration, он никогда не завершается, а calib_done остается низким.
Насколько я вижу, если я отключу калибровку, я смогу отлично писать в память. Но когда я пытаюсь читать из него, я получаю переменное количество успешных команд чтения, прежде чем контроллер памяти Xilinx перестанет выполнять команды. Как только это происходит, командный fifo заполняется и остается полным. Количество успешных команд варьируется от 8 до 300.
Я совершенно убежден, что это проблема синхронизации, вероятно, связанная с центрированием DQS. Но поскольку я не могу завершить калибровку, когда она включена, у меня нет непрерывной настройки DQS. Поэтому я предполагаю, что он работает с отключенной калибровкой до тех пор, пока время не сдвинется.
Есть ли какие-то очевидные места, которые я должен искать, почему калибровка не удалась?
Я знаю, что это не типичный вопрос о переполнении стека, поэтому, если это неподходящее место, я уйду.
Спасибо