Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Работа с памятью в ПЛИС через интерфейс SDRAM
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
ЮКОР
Есть плата с микроконтроллером STM32F437, микросхемой SDRAM и FPGA от Altera.
На микроконтроллере используется контроллер SDRAM, к которому через шину FMC подключены как SDRAM, так и FPGA.
Чтение/запись данных для SDRAM работает.
На той же шине SDRAM интерфейса висит FPGA, в которой есть 16 разрядные регистры и параллельное FIFO.
Нужно записывать данные в регистры и читать данные из FIFO через шину FMC.
Нужно ли реализовывать полноценный контроллер SDRAM в FPGA или можно обойтись упрощенным кодом?
Требуется выполнить только эти конкретные задачи.
Нужен какой-либо пример, особенно по чтению данных из FIFO.
Требуемые задачи решены только для шины SRAM (FSMC шина).
Теперь плата немного изменилась и нужно работать через SDRAM интерфейс.
Заранее спасибо.
Golikov A.
упрощенный, SDRAM отличается от SRAM только тем что там еще есть циклы всяких рефрешей и начальных калибровок. В случае ПЛИС этим всем можно не заморачиваться. Вопрос только в том клоковые сигналы памяти у вас на клоковые ноги ПЛИС пришли? Или какая частота работы ПЛИС и памяти?

чтение из FIFO обычно выставляете сигнал ReadEnable, и каждый такт на выходе получается очередное слово, запись аналогично, ставите сигнал WriteEnable и каждый такт FIFO захватывает то что находиться на входе.
В зависимости от конструкции FIFO бывает пауза между тем как данные попали на вход и появились на выходе, а также есть дополнительные сигналы фифо-пусто, фифо-полно, иногда счетчики байт...
ЮКОР
Цитата(Golikov A. @ Jul 29 2015, 08:23) *
упрощенный, SDRAM отличается от SRAM только тем что там еще есть циклы всяких рефрешей и начальных калибровок. В случае ПЛИС этим всем можно не заморачиваться. Вопрос только в том клоковые сигналы памяти у вас на клоковые ноги ПЛИС пришли? Или какая частота работы ПЛИС и памяти?

чтение из FIFO обычно выставляете сигнал ReadEnable, и каждый такт на выходе получается очередное слово, запись аналогично, ставите сигнал WriteEnable и каждый такт FIFO захватывает то что находиться на входе.
В зависимости от конструкции FIFO бывает пауза между тем как данные попали на вход и появились на выходе, а также есть дополнительные сигналы фифо-пусто, фифо-полно, иногда счетчики байт...


С основами знаком.
Но что-то совсем не получается с чтением. Хочется читать в режиме burst, чтобы было быстрее + там существует CAS latency.
Пытаюсь реализовать по таймограммам SDRAM интерфейса, но пока чтение не работает.
Timmy
Цитата(ЮКОР @ Jul 29 2015, 08:45) *
С основами знаком.
Но что-то совсем не получается с чтением. Хочется читать в режиме burst, чтобы было быстрее + там существует CAS latency.
Пытаюсь реализовать по таймограммам SDRAM интерфейса, но пока чтение не работает.

Не работает - это слишком общее описаниеsm.gif. Напомню, на всякий случай, что нужно правильно скомпенсировать клоковые задержки, и написать констрейны, иначе можно получить неприемлемо большое T_CO.
EvgenyNik
Как вариант - найти HDL-описание SDRAM и на его основе сделать то, что нужно.
Навскидку (см. sim models)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.