Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Интеграция VGA с DMA в систему с NIOS
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
misyachniy
Из примеров от кита DE1 вытащил модуль VGA с DMA и FIFO (VGA.zip)
Интегрировал его в систему(SOPC.JPG) - платка разработано отдельно
(http://njnmnp.narod.ru/proj/video/video.html - на сайте narod.ru похоже вирус. :-(
при доступе по ФТП его не видно в HTML странице при просмотре чере эксплорер в конце добавляется скрипт. Или это у меня что-то завелось? )

Есть проблемы со срывом синхронизации.
Опустошается буфер FIFO.
Память программ и видеобуфер(куча) в SDRAM, по этому процессор и мастер VGA(DMA) конкурируют за доступ к SDRAM.

Проявляется проблема при выводе изображения с SD карточки в видео буфер.

Можно исхитрится и перестановкой операторов добится заливки изображения без срыва синхронизации, так как у процессора есть кеш.
Но это конечно же не решение проблемы.

Как правильно организовать подкачку из видео памяти?

Тут написано что нужно задействовать режим пакетной (Burst) передачи

http://forum.niosforum.com/forum/index.php...amp;#entry10311

В руководстве по шине Avalon есть описание сигналов и принципов работы.

Нету примерчика целиком :-(
На сколько я понял из документации SDRAM не поддерживает Burst передачу.

Получается если использовать стандартныме компоненты SOPC то, нужно цеплять отдельный компонент DMA и помтоянно перепрограммировать его по прерыванию?

Совсем запутался. Понедельник день тяжелый ;-)
misyachniy
Цитата(misyachniy @ Sep 8 2008, 15:55) *
Из примеров от кита DE1 вытащил модуль VGA с DMA и FIFO (VGA.zip)
Интегрировал его в систему(SOPC.JPG) - платка разработано отдельно
(http://njnmnp.narod.ru/proj/video/video.html - на сайте narod.ru похоже вирус. :-(
при доступе по ФТП его не видно в HTML странице при просмотре чере эксплорер в конце добавляется скрипт. Или это у меня что-то завелось? )

Есть проблемы со срывом синхронизации.
Опустошается буфер FIFO.
Память программ и видеобуфер(куча) в SDRAM, по этому процессор и мастер VGA(DMA) конкурируют за доступ к SDRAM.

Проявляется проблема при выводе изображения с SD карточки в видео буфер.

Можно исхитрится и перестановкой операторов добится заливки изображения без срыва синхронизации, так как у процессора есть кеш.
Но это конечно же не решение проблемы.

Как правильно организовать подкачку из видео памяти?

Тут написано что нужно задействовать режим пакетной (Burst) передачи

http://forum.niosforum.com/forum/index.php...amp;#entry10311

В руководстве по шине Avalon есть описание сигналов и принципов работы.

Нету примерчика целиком :-(
На сколько я понял из документации SDRAM не поддерживает Burst передачу.

Получается если использовать стандартныме компоненты SOPC то, нужно цеплять отдельный компонент DMA и помтоянно перепрограммировать его по прерыванию?

Совсем запутался. Понедельник день тяжелый ;-)


Закончил с корректировкой ТУ на зделие, вернулся к своим баранам.
Или правильнее - баран вернулся в стадо к своим? ;-)

Контроллер SDRAM на шине Avalon поддерживает конвеерное чтение
Тут нашел пример мастера который поддерживает конвеерное чтение
http://www.altera.com/support/examples/nio...WT.oss=template

По теории для конвеерной передачи нужно захватывать шину на все время обмена.
В документацию на шину Avalon указано, что шина захватывается сигналом arbiterlock.
Но в описании и на изображении масера этого сигнала нету.

На сайте Altera слово "arbiterlock" находится только в одном документе - руководстве на шину Avalon.
Не понятно как захватывается шина?

Поиск по гуглу "arbiterlock" дает всего 8 ссылок.
Цитата
Another way you can implement a priority scheme is to use large burst counts. If your master has a maximum burst count of 16 that means it'll get access for 16 word accesses. Arbitration loss will not happen in the middle of a burst because the 'arbiterlock' signal is used during a burst. The arbiterlock signal is generated by SOPC Builder but you can also manually add it to any custom master you create. To learn more about it see the Avalon-MM interface specification.


Из текста ясно, что когда используется burst обмен, то при генерации системы автоматически добавляется arbiterlock.
Это совпадает с указаным в руководстве на шину.

В примере по ссылке не используется arbiterlock.
Склоняюсь к мысли что система(SOPC Builder) сама его добавит.

Но как она определяет, что нужно добавлять?

Посмотрел по диаграммам (рис 3.11) из руководства на шину
http://www.altera.com/literature/manual/mnl_avalon_spec.pdf
Тоже не понятно :-(
vetal
arbiterloak - достаточно новый функционал. Выставляете его, и никто не сможет прервать ваш обмен. Очень полезная штука, как раз для фрэймбуфера. По идее должно расходоваться меньше логики на арбитраж, чем при использовании burst режима из-за отсутствия необходимости выполнять выравнивание burst'ов и лишнего арбитража.

Наиболее правильный способ разгрузить шину при отрисовке содержимого памяти - поставить fifo на 1-2 строки, это позволит существенно ускорить выборку данных из памяти.
torik
Ага, во-первых, запись/чтение в SDRAM надо окружить FIFOшками. Но это, как я понимаю, сделано.
Во-вторых, поставьте в клеточках у SDRAM (data_master и VGA m1) вместо 2 и 1, по 32 скажем...

Вопрос, а с SD откуда взяли, тоже из примеров или что-то свое? По какой документации с ней разбирались?
misyachniy
Цитата(torik @ Sep 11 2008, 17:23) *
Ага, во-первых, запись/чтение в SDRAM надо окружить FIFOшками. Но это, как я понимаю, сделано.
Во-вторых, поставьте в клеточках у SDRAM (data_master и VGA m1) вместо 2 и 1, по 32 скажем...

Вопрос, а с SD откуда взяли, тоже из примеров или что-то свое? По какой документации с ней разбирались?


Запись в SDRAM делаю процессором напрямую - то есть если SDRAM занята то процессор будет простаивать.

В VGA контроллере FIFO на 1024х32бит.
Я правда поленился исследовать, продолжается ли подкачка в оперативку после конца кадра до начала следующего.

По поводу чисел в клеточках.
Я так понял, что это приоритет доступа, а не число непрерываемых транзакций.
Где бы об этом почитать?

SD я включил в режиме SPI.
У альтеры есть примеры, но в них манипуляция стандартными PIO в ручном режиме.
По этому я переделал стандартный модуль на переменную скорость.
Для чтения идентификаторов карточки CIS, нужна пониженая до 400КГц скорость тактирования.
Только для чтения, можно использовать с жестко заданой высокой скоростью.
FAT фат прикрутил от своего(точнее переделаного мной) проекта для АРМ
http://www.evodbg.com/index.php?option=com...0&Itemid=49
http://evodbg.com/doc/mp3last.rar
vetal
Цитата
Я так понял, что это приоритет доступа, а не число непрерываемых транзакций. Где бы об этом почитать?

Это гарантированное кол-во непрерываемых циклов непрерывного доступа. В шине avalon используется кольцевой циклический(карусельный,round-robin) арбитраж.
Читать как обычно - в документации на шину smile.gif
torik
Цитата
Это гарантированное кол-во непрерываемых циклов непрерывного доступа. В шине avalon используется кольцевой циклический(карусельный,round-robin) арбитраж.
Читать как обычно - в документации на шину smile.gif


+1
Подключите SignalTab, там поглядите...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.