Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Захват и вывод VGA на несколько мониторов
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
A-10
Доброго времени суток.

Нужно реализовать систему, которая захватывает данные с VGA-интерфейса и выводит их на 6 других VGA выходов (в ввиде статичных картинок).
В общем, по концепции у меня получился один промежуточный буфер (для хранения текущего входного кадра) и 6 выходных, на SDRAM памяти.

Вопрос в следующем - кто-то может подсказать, сколько контроллеров SDRAM может потянуть ПЛИС типа Cyclone III-IV?

Думаю, что придется ставить минимум 2 ПЛИС из-за занятности по пинам (не BGA-корпус).
Контроллер хочется готовый. Частота получается всего около 50Мгц (800х600 75Hz). Фактически бОльшую часть времени происходит обновление статичных картинок, по пользовательскому нажатию обновляется содержимое одного из VGA буферов.
Lmx2315
..а на 6-ть других выводит каждому разное или одно и тоже?
A-10
Lmx2315
Каждую секунду (т.к. картинка меняется редко) кадр сохраняется в промежуточном буфере. По нажатию кнопки выводится текущий захваченный кадр на следующий монитор, по очереди. То есть происходит обновление содержимого буфера N-го VGA-выхода. Кадр может быть произвольным.
x736C
Одного sdram контроллера с м/с памяти хватит за глаза, на мой взгляд.

Скорее всего потребуется на каждый канал поставить выходной буфер в размере одного блока памяти внутри ПЛИС.
_pv
Цитата(x736C @ Mar 18 2015, 21:19) *
Одного sdram контроллера с м/с памяти хватит за глаза, на мой взгляд.

6 раз по 800*600*75*3 на выход плюс седьмой на вход это 750МБайт/с. при условии "не в BGA", одного контроллера никак не хватит.

может проще видеопотоки вообще через плис не гонять, а поставить кучу микросхем памяти на 4M = 8 x 512К, статических. по три на канал - 18шт.
самую мелкую CPLD, с счётчиком адреса, одним вообще на всех, шины данных памяти прямо на выходные ЦАПы,
а при нажатии на кнопку, просто включается OE у буфера с АЦП на ту же шину данных памяти у соответствующего канала, и WE вместо RD у памяти дёргается. соответственно кадр запоминается.
x736C
Без входного буфера можно попытаться пережить. Поправьте, если не прав.
А далее:

800*600*24*75 / 32 = 25 мегаслов на канал в одну сторону.

По условиям ТС постоянно задействованы будут только 6 каналов.
6 на вывод изображения или 5 на вывод, одно на ввод.
Это 150 МГц на 32 шину. DDR2 с запасом. Ее разве нельзя подключить к ПЛИС не в BGA-корпусе?
В реализации очень удобно по Avalon_MM все разруливается.
Хотя, возможно, и ошибаюсь.

Если можно входную частоту 75 Гц понизить, то это тоже надо сделать, как и выходную впрочем. Ибо выводятся статичные картинки.

Upd: ножек нужно, действительно, много. Может не хватить.
Upd2: можно решить проблему, например: 1) ЦАП с последовательным LVDS интерфейсом (типа CH7022). 2) буфер шины в виде отдельной м/с. 3) serdes от Ti (если это вообще реально).
В предложенной Вами схеме чересчур много корпусов. Монстрообразно получится. И могут быть танцы с отладкой всей этой россыпи.
_pv
Цитата(x736C @ Mar 19 2015, 06:13) *
Это 150 МГц на 32 шину. DDR2 с запасом. Ее разве нельзя подключить к ПЛИС не в BGA-корпусе?
Upd: ножек нужно, действительно, много. Может не хватить.

у циклона четвёртого в qfp144 всего 90 ног, не уверен что там DDR ног даже на 16ти битную шину наберётся, ну и еще 7 раз по 24RGB. даже если через lvds ног всё равно слишком много надо для qfp корпусов

Цитата(x736C @ Mar 19 2015, 06:13) *
В предложенной Вами схеме чересчур много корпусов. Монстрообразно получится. И могут быть танцы с отладкой всей этой россыпи.

корпусов не мало, но у них почти всё запараллелено и всё работает синхронно как одна микросхема статической памяти, только c шестью RD/WR, которые выбирают для каждого канала пишет он картинку или показывает. что там отлаживать?

x736C
Цитата(_pv @ Mar 19 2015, 10:35) *
у циклона четвёртого в qfp144 всего 90 ног, не уверен что там DDR ног даже на 16ти битную шину наберётся

Сейчас посмотрел. Не наберется. Можно подключить 3 ddr по 8-бит.

Это чуть больше 200 МГц (2 видео-потока) на одну DDR-память.

Это впритык и вряд ли разведется. Нужен еще запас.

Но я бы попробовал прежде чем отбросить этот вариант.

6 раз по 24 (RGB) следует сворачивать в 6 раз по 8 или по 3 имхо.
Хотя о чем я, все равно не влезет.
_pv
правда учитывая что sdram 2Mx32 стоит раза в два-три дешевле чем sram 512kx8, то есть в результате на порядок дешевле,
я бы попробовал тоже самое устроить с сдрамом, подключить данные ЦАП/АЦП напрямую к шинам данных памяти, а мелкой CPLD только адресом (который получается у всех памятей общий) и контрольными сигналами для каждого канала рулить.
166МГц сдраму при частоте данных в 4-5 раз меньше, вроде можно успеть открывать/закрывать столбцы чтобы успеть подстроиться под приходящие с АЦП данные и защёлкнуть их вовремя, особенно во время горизонтального синхроимпульса, если видеострока целиком влазит.
x736C
Вообще, если уж пофантазировать. Все идет от ТЗ, конечно.
Но если тут замутить сжатие а-ля JPEG. Без преобразования цветового пространства, JFIF заголовок не нужен, все параметры фиксированы. С потерей качества. То можно обойтись одной sram 512kx8. Ухудшение качества заметно на глаз не будет.
Лезет это все в самый младший 4-й циклон. Если одну sdram, можно сжать без потерь.

upd. может, не в самый младший, но в EP4CE22, крайний в EQFP корпусе, точно.
upd2. насчет одной 512kx8 — погорячился, не хватит для сохранения приемлемого качества шести изображений.
Но для использования одной DDR2 (чтобы пройти по частоте), нужно в 2-3 раза сжать.
http://www.visengi.com/products/jpeg_hardware_encoder тут можно посмотреть, как меняется качество
на разной компрессии. Пятикратное сжатие я на глаз не замечаю.
_pv
хранить сжатые картинки а для вывода на экран разжимать каждый раз?
6 jpeg декодеров (на 216 МПикс/с суммарно) в плисине за 50 $, чтобы на памяти "сэкономить" и не ставить шесть отдельных обычных sdramов за пару $.
ну и чтобы по ногам влезть в один lqfp нужны будут еще не абы какие ЦАП/АЦП, а с lvds интерфейсом или дополнительные serdes.
не, так фантазировать не надо sm.gif
x736C
Да, каждый раз разжимать. Все ради того, чтобы обойтись одной ПЛИС и одной мс памяти.
И копеечными шинными буферами и заурядными ЦАПами.
А память за $2 — это какая? Если такая доступна в РФ, то тогда убедили.
Но боюсь, получится не меньше, чем ПЛИС за 15-30 долларов.

Но вообще да, минимум мороки — Ваш вариант.
_pv
Цитата(x736C @ Mar 20 2015, 03:14) *
А память за $2 — это какая? Если такая доступна в РФ, то тогда убедили.
Но боюсь, получится не меньше, чем ПЛИС за 15-30 долларов.
Но вообще да, минимум мороки — Ваш вариант.

цены на дижикее смотрел, но у китайцев на aliexpress обычный сдрам, правда х16 на 64МБита меньше доллара уже с доставкой.
а размер платы всё равно разъёмами определяться будет.
A-10
Прошу прощения за долгое молчание.

По сути захват входной картинки происходит только раз в секунду (изображение медленно меняется).
Разрешение даже по факту оказалось меньше, 800х480.
Цветность 16bpp всего.
Никаких особых требований больше нет. Размер платы не критичен. Можно использовать несколько ПЛИС.

Сам изначально склонялся к варианту со статической памятью, правда не додумался до варианта с перебором адресов параллельно.

sdram 16Mbit стоит всего около 3$, что конечно прельщает.
A-10
Кстати, планирую использовать ЦАП ADV7125 на каждый канал. Возникла мысль, а что если заменить все на R2R ЦАП?
_pv
Цитата(A-10 @ Mar 21 2015, 14:38) *
Кстати, планирую использовать ЦАП ADV7125 на каждый канал. Возникла мысль, а что если заменить все на R2R ЦАП?

ну если только 16bpp, и качество цветопередачи не столь принципиально,
то 5/6 разрядные ЦАПы вполне можно и из резисторов делать.
A-10
@_pv, @x736C,

Спасибо за помощь,

Сделал по концепции _pv "может проще видеопотоки вообще через плис не гонять, а поставить кучу микросхем памяти на 4M = 8 x 512К, статических. по три на канал - 18шт."

Только память поставил SRAM (512K x 16) + буфер 74LVC16244 на каждый канал. Память недешевая, но сэкономил на FPGA (поставил одну 5M570ZT100) и R2R ЦАП.

Есть некоторые вопросы по разводке, оформил тут - http://electronix.ru/forum/index.php?showtopic=127466
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.