VGA на ПЛИС...

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1269
Зарегистрирован: Пт июл 21, 2006 15:05:19
Откуда: плод воображения

Сообщение KT315B »

Появилось желание сделать вывод видео на ПЛИС, кто-нибудь делал похожие вещи? Так понимаю нужно делать видеопамять, сигналы синхронизации и дергать выходные сигналы, отталкиваясь от сигналов синхорнизации согласно сожержимому видеопамяти? Куда копать? Использовать буду XC95144-PQ160, надеюсь влезет туда подобный проект?
R2AIV 73!
Контактная информация:
Реклама
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 335
Зарегистрирован: Вт сен 11, 2007 10:27:08
Откуда: Киев

Сообщение __Alexander »

Меня тоже давно привлекает эта идея. По теории на Альтеровском FLEX10К это более чем. Но лично видел на первом циклоне. Мои расчеты для полоноценного вга (без черестрочной) привели к использованию памяти с временем доступа 5-7 нс. На этом все пока остановилось. Т.к. для памяти в виде одной мс, или клепания на нескольких мелких (по мере доставабельности) для отладки глюков лучше заказать плату (чтобы еще в монтаже глюков не искать). Но времени страссировать пока никак.
Но тут зависит от нужного разрешения и частоты регенирации.
Реклама
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1269
Зарегистрирован: Пт июл 21, 2006 15:05:19
Откуда: плод воображения

Сообщение KT315B »

Да я думаю не на Alter'е, а на Xilinx'е делать - привык уже к нему. В принципе Spartan-2 по характеристикам аналогичен Флексам, я думаю. А в качестве памяти можно использовать блочную память ПЛИС. Разрешение - дык для начала хоть какое - главное начать, а ресурсы можно потом и нарастить, лишь-бы в тактовую лбом не упереться. Хотелось-бы просто на какой-нибудь живой проект посмотреть, либо на VHDL либо в схемном варианте...
R2AIV 73!
Контактная информация:
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 335
Зарегистрирован: Вт сен 11, 2007 10:27:08
Откуда: Киев

Сообщение __Alexander »

Посмотреть тебе и мне никто не даст. Но мое мнение, лучше сразу делать на внешней памяти, чтобы в будущем не зависеть от блочной, тем более ее просто-напросто может не хватить. А переписывать или перерисовывать это недели работы.
Реклама
Эиком - электронные компоненты и радиодетали
Мучитель микросхем
Аватара пользователя
Сообщения: 413
Зарегистрирован: Пт мар 10, 2006 12:23:05
Откуда: Moscow

Сообщение Mozart »

"вывод видео на ПЛИС" - что имеется ввиду??
если после прочитанной книги что-то в голове осталось, радуйся. Голова работает на тебя!!!
Контактная информация:
Реклама
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 335
Зарегистрирован: Вт сен 11, 2007 10:27:08
Откуда: Киев

Сообщение __Alexander »

На ПЛИС это имеется в виду, что на сегодняшний день нет недорогих и доставабельных контроллеров для вывода ВГА к примеру 1024х768 RGB. Поэтому все сейчас делают на плисах, т.е. подключается память, ацп, генератор и вперед, выборка цветов из памяти и посылка его на АЦП. В плисе сосздаются счетчики и остальные лог. элементы.
В современных карточках для тактирования стоит кварц на 14.ххх МГц, но внутри полюбому есть умножитель. В нашем случае можно подключить управляемый генератор 1-100 Мгц и подбирать времянки.
Реклама
Вымогатель припоя
Сообщения: 543
Зарегистрирован: Чт окт 18, 2007 16:45:30
Откуда: из Питера

Сообщение MetEl »

Замечательная идея.
Только как связь с внешними устройствами?
Они записывают в память а ПЛИС (как контроллер (выполняющий управление формированием) ВГА) выводит на ЭЛМонитор.
Но как тогда на счёт конфликтов? нужен буфер.
Или ПЛИС непостредственно и принимает м формирует, но тогда как со временем.
Когда возникнет необходимость, одновременно и считать(внешне) и записать(в ОЗУ) и этот же байт(который уже в ОЗУ) сейчас должен микшироваться и быть выведен.
Не помешает вынести доступ с ОЗУ к внешним устройствам, и для предотвращения ситуаций-занято или потери данных, сделать буфер.
А также свести к минимуму уход контроллера(ПЛИС) из основного цикла.
Да и вообще из своей задачи - считывание из ОЗУ, микширование и (выдачу на) формирование.

Можете это вопрос осветить, очень интересно.
Вложения
набросок.jpg
Чтобы не отвлекаться на работу с приёмом данных
(37.33 КБ) 859 скачиваний
простое чмо, выдумщик
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 335
Зарегистрирован: Вт сен 11, 2007 10:27:08
Откуда: Киев

Сообщение __Alexander »

Ну дык это еесно. Изобретать велик не будем, а посмотрим на принцип работы карточки -там собственно и есть разделение на два экрана. Один для формирования изображения, второй для вывода. Предлагаю так и сделать - поставить две памяти, в одной формировать, со второй выводить, потом менять местами, т.е. формировать уже во вотрой, а из первой выводить, и так по кругу. И для этого что надо будет, то и ставим, и буффера и регистры защелки и т.д. (хотя это в плис может уместиться).
Вопрос в другом, кто с такой скоростью будет в эту память писать?
Если посчитать, 1024х768х3 = 2359296 байт. т.е. 2,5 Мбайта. Медленно это все будет.
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1269
Зарегистрирован: Пт июл 21, 2006 15:05:19
Откуда: плод воображения

Сообщение KT315B »

Да уж, со скоростью, естественно будут проблемы. Но хотябы попробовать 320х240х16 реализовать. А память можно взять из комповых планок, или тоже будет медленно?
R2AIV 73!
Контактная информация:
nds
Друг Кота
Аватара пользователя
Сообщения: 4772
Зарегистрирован: Вс май 25, 2008 19:47:47
Откуда: РФ

Сообщение nds »

Производительность комповых планок памяти измеряется гигабайтами в секунду, плисина тоже способна переваривать кучу информации, очевидно что тормозить может только устройство выдающее информацию плису.
2B OR NOT 2B = FF
Контактная информация:
Вымогатель припоя
Сообщения: 543
Зарегистрирован: Чт окт 18, 2007 16:45:30
Откуда: из Питера

Сообщение MetEl »

***
1024х768х3 = 2 359 296 байт. т.е. 2,5 Мбайта. Медленно это все будет.
***

и +1байт, ещё же цветоразностый сигнал, ну тоесть яркость.

Может одна страница ОЗУ с буфером на несколько байт, расчитанных из максимального количества тактов возможного при совпадении запрашиваемого адреса и в данный момент записываемого (т.е когда адрес занят).

2,5МБайт можно разделить на 4-ре зоны. И разводится и микштроваться по четыре линии в один коммутируемый формирователь, последовательно.
Или скажем построчно через 4-е. Если АЦП не успевает, то выставляется уровень за ранее а мотом комутируется, когда приходит черёд этого АЦП.

Хотя мне кажется что ПЛИС справится, что тут такого?

Содержимое ОЗУ постоянно выводится.
А уж скорость записи в него ни как не будет заметно глазу. ))
Последний раз редактировалось MetEl Вс авг 17, 2008 15:55:35, всего редактировалось 2 раза.
простое чмо, выдумщик
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 335
Зарегистрирован: Вт сен 11, 2007 10:27:08
Откуда: Киев

Сообщение __Alexander »

Не, комповым планкам надо регенерация. На видяхах везде статика стоит. Где-то 5 нсек и меньше.
А насчет 320х240. Зачем? И тем более моники такого уже не поддерживают. Для такого разрешения берется жки модуль 320х240 и прикручивается к авр или арм. И готово.

Кстати есть вот готовая м/с MB86291ASPFVS, именно то что надо, только вот стоит зараза 80 баксов.
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 335
Зарегистрирован: Вт сен 11, 2007 10:27:08
Откуда: Киев

Сообщение __Alexander »

MetEl писал(а):

2,5МБайт можно разделить на 4-ре зоны. И разводится и микштроваться по четыре линии в один коммутируемый формирователь, последовательно.

Хотя мне кажется что ПЛИС справится, что тут такого?

Содержимое ОЗУ постоянно выводится.
А уж скорость записи в него ни как не будет заметно глазу. ))
Разделить можно хоть на 20 зон.
Глазу не запись будет заметна, а скорость смены картинки конкретно на экране. Если ты за секунду будешь успевать заганять туда следующую картинку, то зачем такая скорость. Представляешь, выводишь ты, к примеру, курсор. И чтобы было видно его перемещение - надо собсно чтобы он перемещался не чаще 1 пикселя в секунду.
Вымогатель припоя
Сообщения: 543
Зарегистрирован: Чт окт 18, 2007 16:45:30
Откуда: из Питера

Сообщение MetEl »

А если я одновременно в 4-ре пропешу(4-ре входных(внешних) линии в ОЗУ), это уже будет не секунда а 1/4 секунда (25Гц).
Хотя конечно... запарно.
Но если передавать скажем по SPI от внешнего устройства.
То после приёмника-распределителя SPI, раздаётся на 4-е зоны. И далее как и должно.
SPI же успевает 3,6Мб в сек транспортировать(зависит от частоты МК).
Вложения
прояснение.jpg
(34.08 КБ) 811 скачиваний
Последний раз редактировалось MetEl Вс авг 17, 2008 17:14:32, всего редактировалось 2 раза.
простое чмо, выдумщик
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 335
Зарегистрирован: Вт сен 11, 2007 10:27:08
Откуда: Киев

Сообщение __Alexander »

Вот то-то же. Хотя смена картинки даже в 1 сек. для некоторых приложений пригодилась бы. Тот же температурный датчик. Вопрос следующий, а каким макаром соссно картинку формировать? Линии, шрифты, цвета, кто этим заниматься будет?
Вымогатель припоя
Сообщения: 543
Зарегистрирован: Чт окт 18, 2007 16:45:30
Откуда: из Питера

Сообщение MetEl »

и графика.
может на яве?
но это всё впереди, для начала и текстом довольствоватся можно.
шрифты и я могу написать, да и помоему их найти не сложно.
12 на 15 вполне красиво получится. (это не 8х8 ((( ) с отступом снизу и по краям. Чтоб по строчке не плясали.
простое чмо, выдумщик
nds
Друг Кота
Аватара пользователя
Сообщения: 4772
Зарегистрирован: Вс май 25, 2008 19:47:47
Откуда: РФ

Сообщение nds »

"на видяхах везде статика стоит" кто вам такую чушь сказал пока памяти было 1 - 16 мегабайт может и ставили на всем что новее ддр стоит
2B OR NOT 2B = FF
Контактная информация:
Вымогатель припоя
Сообщения: 543
Зарегистрирован: Чт окт 18, 2007 16:45:30
Откуда: из Питера

Сообщение MetEl »

Если использовать 4-е блока по 1024х768 байт на R, G, B, Y(яркость) канал, то получается каждый блок (микруха ОЗУ по 1МБайту) должна успевать 25 раз в сек, выставлять значения 786`432 адресов.
Не менее.
1/ (1024х768х25) = 13нСек.
Вместо них можно поставить(разделить) на 4-е микрухи(всего 16 по 256КБ), и тогда потребная частота считывания, с каждой уменьшается до 52нСек.
Но при полной нагрузке, т.е. в секунду будет и запись и чтение, каждый раз(полный проход, смена всего экрана, а не только его части(не только курсор изменил свой положение...)) получается 6нСек...
Последний раз редактировалось MetEl Вс авг 17, 2008 18:57:51, всего редактировалось 1 раз.
простое чмо, выдумщик
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 335
Зарегистрирован: Вт сен 11, 2007 10:27:08
Откуда: Киев

Сообщение __Alexander »

nds писал(а):"на видяхах везде статика стоит" кто вам такую чушь сказал пока памяти было 1 - 16 мегабайт может и ставили на всем что новее ддр стоит
Да кстати, я про старые. И скорее правильнее сказать DDR SDRAM, так как само DDR ничего не говорит про статику и динамику, ведь есть еще и просто SRAM :))
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 335
Зарегистрирован: Вт сен 11, 2007 10:27:08
Откуда: Киев

Сообщение __Alexander »

Но ставить динамику - растянуть проект на долгие года.
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»