Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Применение SDR SDRAM памяти
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
KWIer
Здравствуйте!
Не могу никак разобраться в алгоритме работы проекта.
------------
Есть система со следующими параметрами:
- цифровой вход видео: 8 бит на точку, 2 пикселя за такт, 27 МГц, строка 40 мкс, активная строка 25 мкс., 1000 элементов в строке
- видео выход ЦАП 27 МГц, ITU-R 656, 8 Бит, CrCbY
- SDR SDRAM память MT48LC8M16A2, 2 Meg x 16 x 4 banks, частота 133 Мгц, CL=3.
------------
Необходимо разработать программу, которая принимает входной сигнал в прогрессивной развертке, вырезает нужный кусок 720х576 и выдает на ЦАП в чересстрочной развертке.

Основной вопрос, как реализовать одновременную запись и чтение из памяти?
Или придется чтение укладывать в период времени (15 мкс), пока видео не передается?
Когда при этом делать регенерацию? по Даташиту написано: "64ms, 4,096-cycle refresh " эт значит что я должен за 64 мс подать 4к команд регенерации? А как это сделать не важно, могу хоть 1000 раз по 4 команды за раз? или их обязательно через постоянный период времени подавать?
Могу ли я читать или писать из 1 банка, пока 2 банк регенерируется?

Кто имел дело с подобными проектами, поделитесь, пожалуйста, опытом! Хотя бы принцип как организовывают такие системы. А если у кого есть примеры проектов, то было бы вообще супер! beer.gif

Спасибо!
Methane
Цитата(KWIer @ Jun 25 2010, 08:58) *
Здравствуйте!
Не могу никак разобраться в алгоритме работы проекта.
------------
Есть система со следующими параметрами:
- цифровой вход видео: 8 бит на точку, 2 пикселя за такт, 27 МГц, строка 40 мкс, активная строка 25 мкс., 1000 элементов в строке
- видео выход ЦАП 27 МГц, ITU-R 656, 8 Бит, CrCbY
- SDR SDRAM память MT48LC8M16A2, 2 Meg x 16 x 4 banks, частота 133 Мгц, CL=3.
------------
Необходимо разработать программу, которая принимает входной сигнал в прогрессивной развертке, вырезает нужный кусок 720х576 и выдает на ЦАП в чересстрочной развертке.

Основной вопрос, как реализовать одновременную запись и чтение из памяти?
Или придется чтение укладывать в период времени (15 мкс), пока видео не передается?
Когда при этом делать регенерацию? по Даташиту написано: "64ms, 4,096-cycle refresh " эт значит что я должен за 64 мс подать 4к команд регенерации? А как это сделать не важно, могу хоть 1000 раз по 4 команды за раз? или их обязательно через постоянный период времени подавать?
Могу ли я читать или писать из 1 банка, пока 2 банк регенерируется?

Кто имел дело с подобными проектами, поделитесь, пожалуйста, опытом! Хотя бы принцип как организовывают такие системы. А если у кого есть примеры проектов, то было бы вообще супер! beer.gif

Ваш ответ - FIFO. Заодно и клок домены свяжите.
Я бы делал так. Входной сигнал, когда он попадает в окно, пишется в FIFO. Как в FIFO накапливаются данные на один burst, писать в память. Выдача видео - как только в выходном FIFO есть место хотя бы на один burst, читать из ОЗУ.
И поищите память по новее. Вы SDR скоро фиг купите.
KWIer
Цитата(Methane @ Jun 25 2010, 09:06) *
Ваш ответ - FIFO. Заодно и клок домены свяжите.
Я бы делал так. Входной сигнал, когда он попадает в окно, пишется в FIFO. Как в FIFO накапливаются данные на один burst, писать в память. Выдача видео - как только в выходном FIFO есть место хотя бы на один burst, читать из ОЗУ.
И поищите память по новее. Вы SDR скоро фиг купите.


За идею с FIFO - спасибо! До этого предполагал использовать в качестве буферов внутреннюю память ПЛИС.

А с расположением двух FIFO на 1000 элементов никаких проблем не может возникнуть? Потребление, помехи от одновременном переключениии и т.д?

Насчет памяти, на сайте Micron статус в производстве + проект реализуется на 1 партии, с уже разведенными платами! Так что пока придется довольствоваться этим!
Methane
Цитата(KWIer @ Jun 25 2010, 09:21) *
За идею с FIFO - спасибо! До этого предполагал использовать в качестве буферов внутреннюю память ПЛИС.

А с расположением двух FIFO на 1000 элементов никаких проблем не может возникнуть? Потребление, помехи от одновременном переключениии и т.д?

Нет.
Bad0512
То что вам надо - контроллер памяти. Причём не простой, а мультипортовый.
Тема эта весьма обширная. Поищите к примеру у Xilinx по ключевым словам
MIG (Memory Interface Generator) и MPMC (Multiport Memory Controller).
А с SDR действительно пора уже давно завязать - унылое дорогое тормозное
старьё.
Я конечно понимаю, что "железо" у вас готовое, и переделывать его никто
не хочет (или просто тупо не умеет). Но вы загляните на несколько лет вперёд.
Если у вас коммерческий проект, а не дипломная работа - стОит подумать о
таких вещах как "жизненный цикл проекта" и "поддержка и развитие".
faa
Цитата(KWIer @ Jun 25 2010, 09:58) *
Кто имел дело с подобными проектами, поделитесь, пожалуйста, опытом! Хотя бы принцип как организовывают такие системы. А если у кого есть примеры проектов, то было бы вообще супер! beer.gif

Посмотрите на xess.com
Корка для мультипортового контроллера sdram. Проверял - работает.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.