Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: OCT для контроллеров DDR2 в Stratix III
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
deus
Добрый день.
Столкнулся со следующей проблемой:
Есть микросхема Altera Stratix III EP3SL110F1152C2 на которой реализованы два раздельных контроллера внешней памяти DDR2 на планках SO-DIMM. Частота работы памяти 400 МГц (800 Мб/с). ПО Quartus 9.1. Тип контроллеров: HPCII. Для обоих контроллеров установлена опция "Enable dynamic parallel OCT". При этом калибровочные резисторы RUP и RDN 50 Ом находятся на соответствующих выводах в банке, где расположен (назовем его) "контроллер DDR2 №1". Для проверки сделан простой проект в котором на каждый контроллер подается тестовая последовательность от стандартного блока DDR2_example_driver.v. Результат наблюдаю через Signal Tap Analyser.
В результате, контроллер №1 работает со своей памятью нормально, без ошибок. Второй контроллер - всегда работает с ошибками, то есть ни один из тестов памяти не проходит. Сигнал pnf_per_byte[31..0] блока DDR2_example_driver 2-го контроллера говорит о том, что сбой происходит по всем байтам шины данных.
При этом, инициализация планок и калибровка в обоих контроллерах проходит успешно: PLL_LOCK и INIT_DONE обоих контроллеров устанавливаются в 1 после снятия сигнала сброса.

Из того что сделано:
- соответствие проекта схеме и печати проверял, все нормально;
- цепи от StratiхIII до сокета SO-DIMM прозванивал (устанавливая на выходах альтеры лог. 0 и 1);
- понижал частоту для второго контроллера до 200 Мгц - результат то же.
- делал проект только с одним, 2-ым контроллером DDR2 - то же не помогло.

Оба контроллера работают с одинаковой памятью и в одинаковых условиях. Разводку так же старались сделать максимально симметричной, с выравниванием по длинам цепей и соблюдением волновых сопротивлений 50 Ом. Единственное, в чем отличны оба контроллера DDR2 это один калибровочный блок, который они должны по моей идее разделять между собой.

В связи с этим у меня возникли вопросы:
1) Правильно ли я вообще сделал, что оба контроллера используют один калибровочный блок, который расположен в том же банке, что и контроллер №1?
2) Если правильно, то надо ли что-то дополнительно делать в проекте для того что бы контроллеры "поняли" чего от них хотят? Например, использовать внешную мегафункцию ALT_OCT, выходы которой завести на входы oct_ctl_rs_value и oct_ctl_rt_value обоих контроллеров. Сейчас это не сделано.
3) Возможно я ошибаюсь и дело не в этом...может у вас возникнут какие-то идеи.

Спасибо.

PS R сожалению у альтеры мало написано про то, как происходит разделение ресурсов микросхемы в случае когда контроллеров DDR2 больше чем один...
deus
Сам спрашиваю - сам отвечаю )))
Проблема разрешилась - была глупая ошибка в проекте, при подключении узла самоконтроля к контроллеру второго канала.
Все работает на ура.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.