Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: SRD SDRAM на контроллере altera
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Swup
Я начинающий разработчик, так сказать, и мне стало необходимо разобраться с работой разных типов памяти.
SSRAM освоился и заработал довольно таки легко.
При переходе же к SDRAM начались некоторые сложности и проблемы.

Я использую плату DE-2-70 и для начала хочу поднять на ней альтеровский контроллер для микросхемы SDR SDRAM.
Это конечно тестовый проект и там много лишнего ( например ветка с авторегенерацией, я сперва не понял что она есть в контроллере)
Вот сам проект : http://rghost.ru/23075171

Все вроде просто. По нажатию одной кнопки пишутся нарастающие числа, при нажатии другой, собственно, они же и читаются.
В симуляции все сигналы, на мой взгляд, соответствуют требованиям даташита к памяти. В signal tab, вроде та же картина.
Но, на двунаправленной шине с данными (DQ) при чтении ничего не наблюдается.
Собственно в этом и суть вопроса. Почему это может быть и как это решить.

Конечно, прозреваю, что меня щас ткнут носом в абсолютно глупую ошибку, но что уж поделать.
Заранее благодарен.
DmitryR
Скачайте у производителя памяти модель на нее и присоедините к дизайну - она вам сразу скажет при симуляции, где ошибка.
barabek
Цитата(Swup @ Sep 26 2011, 17:11) *
В симуляции все сигналы, на мой взгляд, соответствуют требованиям даташита к памяти. В signal tab, вроде та же картина.
Но, на двунаправленной шине с данными (DQ) при чтении ничего не наблюдается.


Не понял, где вы смотрите signaltap и где,соответственно, все нормально? И чем Вы смотрите на двунаправленной шине? И что значит на двунаправленной шине - на ножках ПЛИС? Если на ножках и смотрите signaltap, то не увидете, там посмотреть этим инструментом невозможно. В общем, уточните.


Swup
Да, на ножках плис, а частности на пинах которые выводятся на ножки плис.
Да и считаю это возможно, по крайней мере можно наблюдать данные на SSRAM читаемые, чем SDRAM отличается?
barabek
Цитата(Swup @ Sep 27 2011, 16:24) *
Да, на ножках плис, а частности на пинах которые выводятся на ножки плис.
Да и считаю это возможно, по крайней мере можно наблюдать данные на SSRAM читаемые, чем SDRAM отличается?

Вы не уточнили - посмотреть хотите signaltap? Не, тогда нельзя. Много раз уже эта тема здесь поднималась. Signaltap это некое IP, собранное из тех же внутренних элементов ПЛИС, что и Ваш проект. Соответственно, "провода" к нему (sygnaltap) должны идти. А теперь откройте хэндбук на плис, где описан блок ввода-вывода IOB, и представьте, какие элементы из этого блока используются для вывода, какие для ввода при двунаправленном режиме, и какие элементы Вы бы оставили для sygnaltap. Окажется что их нет! Это дорого и сложно. Гораздо проще завести в Ваш sygnaltap или любое другое IP отладки отдельно выходные сигналы с "проводов" между внутренней структурой и IOB.
DmitryR
Цитата(Swup @ Sep 27 2011, 08:24) *
по крайней мере можно наблюдать данные на SSRAM читаемые, чем SDRAM отличается?

SDRAM отличается обычно скоростью. Для того, чтобы иметь возможность прицепить signaltap к пинам выход на пин должен идти либо с логики, либо последний триггер, с которого идет выход должен быть размещен не в пине. А это сильно снижает скорость. Если же последний триггер расмещен в пине, как это нужно для построения более-менее быстрого интерфейса (fast output trigger) - то присоединить signaltap туда уже на самом деле нельзя.
Bad0512
Цитата(DmitryR @ Sep 27 2011, 17:59) *
SDRAM отличается обычно скоростью. Для того, чтобы иметь возможность прицепить signaltap к пинам выход на пин должен идти либо с логики, либо последний триггер, с которого идет выход должен быть размещен не в пине. А это сильно снижает скорость. Если же последний триггер расмещен в пине, как это нужно для построения более-менее быстрого интерфейса (fast output trigger) - то присоединить signaltap туда уже на самом деле нельзя.

Тем не менее никто не запрещает поглядеть отдельно шину данных на выход до I/O пина и шину данных на вход после I/O пина.
Однако подозреваю, что проблемы ТС это не решит.Думаю идея начать с функциональной симуляции с моделью памяти была правильной. Другое дело что в процессе этого появится ещё не один десяток вопросов...
COMA
Возможно проблема с клоком.
Я в своем проекте с ниосом и SDRAM подвинул фазу на -45 градусов. Рабочая частота 120 Мгц


alevnew
У меня работает этот контроллер (не уверен в версии, но файлы вроде те же, что у Вас).
А не забываете сделать инициализацию SDRAM ?
т.е. установить CKE=1 и выждать 200 uS (если не подзабыл) и уже потом задавать режим работы SDRAM.
Инициализация именно в мкс, а не в клоках!!!
И это еще не все. Вот во вложении на стр. 43 расписана инициализация.
Без нее микруха не работает.
Swup
Все было описано верно.
В сигнал табе это посмотреть можно в том виде как сказал Bad0512.

Ошибка, как и предполагал, идиотская. На чип выводил CS[1] вместо CS[0].

" т.е. установить CKE=1 и выждать 200 uS (если не подзабыл) и уже потом задавать режим работы SDRAM.
Инициализация именно в мкс, а не в клоках!!! "

Описано, что надо проводить инициализацию памяти, как минимум, через 200мкс после подключения питания. И нет необходимости выключать клок на чипе. Ну я использовал задержку перед инициализацией 30000, что и есть чуть более 200мкс.

Спасибо за ответы все равно)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.