реклама на сайте
подробности

 
 
> Вывод изображения и DMA, как организовать SOPC?
0.50
сообщение Aug 25 2011, 14:10
Сообщение #1





Группа: Участник
Сообщений: 11
Регистрация: 22-04-09
Из: Житомир
Пользователь №: 48 107



Здравствуйте!
Очень надеюсь на помощь знающих людей, так как с ПЛИС(Cyclone II) работаю всего ничего, а разобраться нужно.

Так вот, стоит задача организовать вывод изображения (для начала) с SD карты на VGA-монитор. С "чтение с карты --> запись в буфер (внеш. RAM)" вроде проблем нет, а вот с пересылкой данных из буфера в модуль VGA-контроллера возникают вопросы. Допустим в качестве DMA выступает SGDMA:
1. Буферная RAM имеет длину слова 16 бит, но дальше используются блоки по 8 бит (R3G3B2). Как поступить в таком случае - а)поставить на выходе Avalon-ST мастера SGDMA дополнительный буфер (16->8), либо б)соответствующим конфигурированием дескрипторов SGDMA заставить читать память по одному адресу два раза подряд? Рационально ли это?
2. Модуль RAM имеет задержку чтения 2 такта, как в таком случае организовать непрерывный поток данных дальше в ресемплер (скрин SOPC Buider'a внизу)? FIFO, иной буфер? Как вообще такие задачи решаются?
3. Есть ли у кого-то пример использования SGDMA? А то в хендбуке больше спецификация.

Основная тактовая - 50 МГц, для VGA - 25 МГц

Подскажите, пожалуйста, а то уже мозги плавятся..

Сообщение отредактировал 0.50 - Aug 25 2011, 14:17
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 4)
vadimuzzz
сообщение Aug 26 2011, 01:38
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



Цитата(0.50 @ Aug 25 2011, 21:10) *
либо б)соответствующим конфигурированием дескрипторов SGDMA заставить читать память по одному адресу два раза подряд? Рационально ли это?

нет, не стоит делать шину уже, чем у памяти. посмотрите еще в сторону Avalon-ST адаптеров, там можно ширину шины менять
Цитата
2. Модуль RAM имеет задержку чтения 2 такта, как в таком случае организовать непрерывный поток данных дальше в ресемплер (скрин SOPC Buider'a внизу)? FIFO, иной буфер? Как вообще такие задачи решаются?

пример: http://www.alterawiki.com/wiki/Modular_SGD...eo_Frame_Buffer
Цитата
3. Есть ли у кого-то пример использования SGDMA? А то в хендбуке больше спецификация.

смотрите в описании HAL-API, там все функции для работы с SGDMA описаны
Go to the top of the page
 
+Quote Post
alexPec
сообщение Aug 26 2011, 07:44
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 284
Регистрация: 9-04-06
Пользователь №: 15 968



Цитата(0.50 @ Aug 25 2011, 18:10) *
1. Буферная RAM имеет длину слова 16 бит, но дальше используются блоки по 8 бит (R3G3B2). Как поступить в таком случае - а)поставить на выходе Avalon-ST мастера SGDMA дополнительный буфер (16->8), либо б)соответствующим конфигурированием дескрипторов SGDMA заставить читать память по одному адресу два раза подряд? Рационально ли это?
2. Модуль RAM имеет задержку чтения 2 такта, как в таком случае организовать непрерывный поток данных дальше в ресемплер (скрин SOPC Buider'a внизу)? FIFO, иной буфер? Как вообще такие задачи решаются?
3. Есть ли у кого-то пример использования SGDMA? А то в хендбуке больше спецификация.


1. Я из сопца выводил всю шину (16 бит), а дальше вычитывал с этой шины с удвоенной скоростью частотой по сравнению с SGDMA. Синхронизировал по сигналу SOP

2,3. Вам надо примеры альтеровские посмотреть, например для DK-N2EVAL-3C25N, там дисплей есть аж 800х600

Go to the top of the page
 
+Quote Post
0.50
сообщение Sep 22 2011, 17:16
Сообщение #4





Группа: Участник
Сообщений: 11
Регистрация: 22-04-09
Из: Житомир
Пользователь №: 48 107



Возвращаясь к теме после небольшого "отпуска"...
Спасибо за ответы.

Теперь вопрос по Avalon-ST. Как я понял, VGA-контроллер сбрасывает внутренний сигнал ready в моменты "гашения луча" и приостанавливает приём. Каким образом отвечает на это источник данных (в данном случае это куча мелких преобразователей после SGDMA)? Просто приостанавливает обработку вне зависимости от моих желаний либо накапливает данные в каком-то внутреннем буфере? Или может эта задача ложится на плечи разработчика?

Сообщение отредактировал 0.50 - Sep 22 2011, 17:17
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Sep 23 2011, 02:21
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



передатчик Avalon-ST смотрит сигнал ready приемника, транзакция считается состоявшейся при условии одновременной лог. 1 по сигналам ready и valid. если приемник заглох надолго, то лог. 0 на сигнале ready распространяется по всей цепочке преобразователей и в конце дойдет до контроллера DMA. почитайте спеки на Avalon, там вполне доступно объяснено все
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 22:33
Рейтинг@Mail.ru


Страница сгенерированна за 0.01376 секунд с 7
ELECTRONIX ©2004-2016