Здравствуйте. Встала потребность реализовать 2 контроллера DDR2 на spartan3A, т.е. чтобы из одной ПЛИС иметь доступ к двум независимым микросхемам памяти. Штатный (входящий в ISE IP Core Generator) MIG (Memory Interface Generator) позволяет на spartan3A сделать только 1 контроллер. Есть ли способы всё же убедить его сделать 2 контроллера?
Если штатным MIG бесполезно, то какие ещё есть варианты?
Сложно ли написать контроллер "врукопашную"?
Цитата(Krys @ Aug 15 2010, 21:12)

Штатный (входящий в ISE IP Core Generator) MIG (Memory Interface Generator) позволяет на spartan3A сделать только 1 контроллер.
сгенерить один и вставить два экземпляра?
Можно 1, можно 2 разных. Там в самом описании к MIG говорится, что он рассчитан, чтобы сделать 1 контроллер на кристалл Spartan 3A. А несколько контроллеров на кристалл он может сделать только под Virtex.
Пробовали генерить через MIG, формируется *.ucf - файл, где используются rloc. Опасаемся, что если "сгенерить один и вставить два экземпляра", то rloc в каждом экземпляре будут конфликтовать друг с другом.
Gothard
Aug 16 2010, 04:35
В MIGе можно скорректировать проект контроллера под реальную плату (есть в нем такой "сценарий" - смотрите внимательнее). В этом сценарии MIGу "скармливается" UCF с реальными/требуемыми контактами и он сам корректирует в проекте все что надо. Хотя возможно такое, что под ваше назначение контактов он не сможет поправить проект в ввиду ограничений ресурсов кристалла.
Если сделать 2 отдельных проекта контроллера и заранее в каждом из них распределить контакты по банкам так, чтобы они могли сосуществовать, а затем подрехтовать UCF и провести корректировку через MIG, то должно получиться.
P.S. я правил контакты в UCF файле, который выдает сам MIG, и затем передавал ему обратно.
Спасибо, попробуем "сговнякать". Хотя бы синтез запустить, будет ли ругаться.
Цитата(Krys @ Aug 16 2010, 10:52)

Спасибо, попробуем "сговнякать". Хотя бы синтез запустить, будет ли ругаться.
Ну и как успехи. А вот если можно ещё:
Решаю сейчас задачу: заменить в существующем проекте память SDRAM на DDR2 в связи с переходом со Спартана3 на 6 , да и вообще…. Интерфейсе построил Core generator MIG3.3 и… опс……надо достраивать асинхронной вход– выход, да и с адресом надо работать – сейчас он прямой + операция запись/чтение.Может кто подкинет идею (ну, например, как переделать трафик генератор) или что то из готового. Заранее спасибо.
Успехи - пока отложили этот вопрос до появления в свободной продаже спартана6.
DmitryR
Sep 10 2010, 05:01
Тоже вариант, но вообще постановка задачи непонятна. Зачем делать независимые микросхемы памяти? Не проще ли сделать один контроллер и объединить два потока данных уже за ним?
Да, возможно, Вы и правы в данном случае... Потому что нужно принять во внимание конвейерный режим работы SDRAM.
DmitryR
Sep 13 2010, 08:03
Надо так адресное пространство распределить, чтобы два потока в разные банки попадали, и все будет ОК.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.