Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Altera VIP Suite
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
WitFed
Есть люди, которые использовали сабж ?
Это Video and Image Processing Suite, набор компонент для видеобработки на лету в ПЛИС -- см. http://www.altera.com/literature/ug/ug_vip.pdf.
У нас в проекте что-то оттуда работает, что-то нет...
Нам надо поюзать компонент Frame Reader, чтобы из памяти выдавал картинку на VGA-монитор 800х600 через блок Clocked Video Output.
Последний компонент живой -- его проверяли, подав радужную картинку от Test Pattern Generator-а, а вот Frame Reader очень тихо себя ведёт, даже к памяти не обращается, соответственно и на мониторе нет сигнала.
800х600 настройки, пробовали цветное RGB и ч/б байтовое изображение -- глухо.
Что может быть не так ? На сайте Альтеры наблюдали несколько примеров программирования регистров Frame Reader-а, у нас похоже, и даже если бы какой-то из счётчиков криво записали, хоть раз к памяти ядро должно было полезть ? Старт дошел, анализатор это показал, бит в статусном [1] встал, а потом всё застыло. Правда, контроллер DDR староват -- пачками не работает.
Версия Квартуса 10.0, там уже что-то было подправлено Альтерцами сервиспаками, как они на сайте пишут.
Картинки с настройками обоих блочков прилагаются, инициализация Ниос вот:
CODE
enum {FX = 800, FY = 600};
volatile ui *fr = (volatile ui*)ALT_VIP_VFR_0_BASE;

IOWR(fr, 3, 0); // Frame Select
IOWR(fr, 4, 4*M); // Frame 0 Base Address
IOWR(fr, 5, FX*FY/8); // Frame 0 Words
IOWR(fr, 6, FX*FY); // Frame 0 Single Cycle Color Patterns
IOWR(fr, 8, FX); // Frame 0 Width
IOWR(fr, 9, FY); // Frame 0 Height
IOWR(fr, 10, 3); // Frame 0 Interlaced

IOWR(fr, 11, 5*M); // Frame 1 Base Address
IOWR(fr, 12, FX*FY); // Frame 1 Words
IOWR(fr, 13, FX*FY); // Frame 1 Single Cycle Color Patterns
IOWR(fr, 15, FX); // Frame 1 Width
IOWR(fr, 16, FY); // Frame 1 Height
IOWR(fr, 17, 3); // Frame 1 Interlaced

IOWR(fr, 0, 1);
while (! (fr[1] & 1) ) ; // Wait for start
while (! (fr[2] & 1) ) ; // Waiting Interrupt -- nedowaiting :(

Хоть свои рабочие примеры запостИте.
WitFed
Дело оказалось в разной частоте у Frame Reader и контроллера ДДР -- после выравнивания зашуршало.
Теперь, правда, Clocked Video Output со сдвигом вправо нашу монохромную картинку на монитор выдаёт, хотя по времянкам тютелька в тютельку.

...Кто-нибудь может подсказать, как убить нижнюю пару файлов из верхнего сообщения ?
Это когда я их вставлял, хотел сначала оба закачать, а потом уже по очереди вставить, но на втором файле всё упало в движке, а файл потом остался в загашниках левой копией и вылез снизу недовставленный как бы, повторилось еще раз...
Типа админам надо обновляться в движке или мне FAQ читать где-то ?
И поредактировать своё же сообщение мне не удаётся который день -- нет такой кнопки !
Вверху ADDREPLY + NEWTOPIC, внизу TOP + REPORT, QUOTE + REPLY, FASTREPLY + ADDREPLY + NEWTOPIC
Притом в районе "Управление текущими файлами (0)" нет никаких намёков, чтобы можно в принципе было удалить их оттуда, если ошибся.

P.S. Вот у этого сообщения есть кнопка EDIT, после неё и дописываю эту строку.
des00
Цитата(WitFed @ Dec 16 2011, 05:22) *
И поредактировать своё же сообщение мне не удаётся который день -- нет такой кнопки !
Вверху ADDREPLY + NEWTOPIC, внизу TOP + REPORT, QUOTE + REPLY, FASTREPLY + ADDREPLY + NEWTOPIC
Притом в районе "Управление текущими файлами (0)" нет никаких намёков, чтобы можно в принципе было удалить их оттуда, если ошибся.

P.S. Вот у этого сообщения есть кнопка EDIT, после неё и дописываю эту строку.

Ваш пост почистил. Редактирование сообщений возможно в течении небольшого промежутка времени, по истечении которого редактирование, для создателя запрещенно. Есть тут на форуме умники, которые вычищали свой поток сознания и шли в несознанку при наложении взысканий/ модерировании/ответам пользователей.
torik
О, а я когда-то пробовал и конкретно Frame Reader у меня не шуршал вовсе.
И в результате я писал что-то там самодельное, которое получилось в разы меньше альтеровского.
Использование scaler, deinterlacer (и то без него можно обойтись), filter - это еще оправдано, чтобы время не тратить на самостоятельную разработку. А frame buffer, video input/output, YUV->RGB в самодельном варианте получаются в разы (если не в десятки) проще и меньше...
WitFed
Ну как бы у нас фирма богатая, посему свои ядра получаются еще крупней Альтерных, которые пока даже и эталоном не являются и не изучаются, а просто маячат недосягаемо и даже поругаемо "гурятами" нашими wink.gif
И по скорости разработки наше, как кам`яный цветок в бородатом анекдоте про Данилу-мастера... wink.gif
Просто у них универсально всё, протокол обмена видео и каждый блочок на кучу всего рассчитан, да и фоновую задачу продать ПЛИСину покрупней и подороже никто не отменял... wink.gif
Сюиту вот купили, чтобы не корячиться 3 года.
Свой самодельный вывод на VGA-монитор пока кривит, хотя и Альтерный тоже для монохрома что-то лишнее справа и слева добавляет к желаемому битмапу.
Придёт время этапа -- поковыряемся еще, поСигТапим хорошие и кривые случаи...
torik
Цитата
Ну как бы у нас фирма богатая

Хочу к вам sm.gif
warrior-2001
Цитата(torik @ Jan 11 2012, 08:06) *
Хочу к вам sm.gif


Думается мне, что богатая у них фирма, а не работники wink.gif

Всегда видно, когда пост написан ПЛИСоводом, а когда программистом. Топикстартер явно программист.
А по существу - альтеровские поделки не всегда оптимальны и универсальны. К тому же код закрыт и часто нарываешься на проблемы, которые чуть позже появляются в errdata. Так что иногда намного проще всё сделать самому.
FLTI
Цитата(WitFed @ Dec 7 2011, 15:50) *
через блок Clocked Video Output.
Последний компонент живой -- его проверяли, подав радужную картинку от Test Pattern Generator-

В чём по существу разница между отдельным Test Pattern Generator и связкой Test Pattern Generator + Clocked Video Output?
Вообще, какие сигналы выдаёт Test Pattern Generator сам по себе?
Копейкин
Test Pattern Generator выдаёт на шину Avalon-ST пакеты, содержащие последовательность данных для заливки экрана
одним цветом (по выбору пользователя) или цветные вертикальные полосы для теста.
Для понимания, нужно почитать формат пакетов, принятый в VIP для Avalon-ST.

Clocked Video Output получает данные, выводит их на видео-ЦАП в нужный момент,
обеспечивает генерацию синхроимпульсов, импульсов гашения
и прочих сопутствующих сигналов.
Обеспечивает правильные временные соотношения сигналов для вывода на дисплей.
Имеет встроенный FIFO буфер для видео-данных.

Связки TPG + CVO достаточно, чтобы вывести сигнал на дисплей, чтобы проверить работоспособность железа.
FLTI
Кто-нибудь знает - как в TPG задать кадровую развертку не 60Гц по умолчанию, а 50ГЦ?
Копейкин
Цитата(FLTI @ Apr 19 2013, 22:42) *
Кто-нибудь знает - как в TPG задать кадровую развертку не 60Гц по умолчанию, а 50ГЦ?

Вы не путаете?
Параметры синхросигналов задаются в Clocked Video Output.
Задача TPG выдавать поток, со скоростью не меньшей скорости вывода пикселей.
Скорость потока будет определяться тактовой частотой TPG.
FLTI
Да, но ведь в TPG задаётся не только тактовая частота, но и размеры видимой области кадра, параметры чересстрочности.
Значит TPG выдаёт выдаёт всё-таки в какой-то степени форматированный поток?
Но получается, что TPG выдаёт недоконца форматированный, а окончательное форматирование делается в CVO?

Вообщем, правильно ли я понимаю, что на основе Вашего опыта работы с TPG, можно не беспокоиться о том, что в TPG нет возможности задать частоту кадровой разёртки, т.к это реально делается в CVO?

И ещё меня смущает двусмысленная фраза по поводу Color planes ( см. скриншот ) в TPG.
Это значит,что TPG выдаёт фиксированно 3 плоскости и на это никак нельзя повлиять даже в связке TPG+CVO?
А если мне надо 4:2:2, которые обычно передаются в 2-х плоскостях, то как быть?


Копейкин
Я, в целях ознакомления с библиотекой, выводил только тестовый сигнал на монитор.
Так что опыт небольшой.
Реально, кадровую, да и строчную развёртку и прочие сигналы для видеоотображения выдаёт VCO.
Задача TPG, только выдавать поток, с нужной скоростью.То есть только данные для картинки на экране.
Для этого TPG и должен знать размер генерируемой картинки, чересстрочно или нет она будет выводиться.
А VCO имеет FIFO буфер, размером в строку, куда принимает входные данные и выводит их в нужный момент.
Для преобразования формата есть Color Space Converter, посмотрите его описание.
FLTI
То есть Вы сами на монитор выводили RGB 4:4:4 в 3-х плоскостях и в CVO задавали 3 плоскости, поэтому по поводу 2-х плоскостей точно сказать не можете?
С другой стороны, в CVO есть выбор количекства плоскостей, значит, если в комбинации TPG+CVO в CVO задать 2 плоскости, то не смотря на то, что даже если TPG выводит всё в 3-х плоскостях, то CVO установит нужные мне для 4:2:2 2 плоскости?
Копейкин
Я, за давностью, точно не помню.
Была оценочная плата циклон3 NEEK.
Выводил на видео-ЦАП, на той плате параллельно 3х10 бит цвета (RGB 10:10:10) 1024x768@60.
Если нужно сделать другой формат, то цепочка TPG->ColorSpaceConverter->VCO.
Видеопакеты на шине Авалон-СТ имеет заголовки, содержащие полные параметры видеосигнала,
для которого предназначены. Пакеты с неожидаными для компонента параметрами будут игнорированы,
Согласно описанию. Поэтому понадобится CSC компонент.
Сам VCO ничего преобразовывать не будет.
FLTI
Вообщем методом тыка выяснил, что если в TPG задавать YUV 4:2:2, то этому соответствует 2 плоскости, а не 3 несмотря на ту надпись из ug_vip.pdf, скриншот которой я привёл и которая сбивала меня с толку.
Проверил по сообщениям QSys.
Если в TPG задавать YUV 4:2:2 , а в подключенном после него CVO задать 3 плоскости, то QSys ругается на нестыковку ширины потока, а если в CVO задать 2 плоскости, то всё в порядке.
Значит TPG в YUV 4:2:2 выдаёт в 2 плоскости.

А установка 50/60 для кадровой частоты для 1920х1080 задаётся действительно в CVO установкой параметра Horizontal blanking ( такова особенность формата 1920х1080 ). Проверил осциллографом.
FLTI
Цитата(FLTI @ Apr 20 2013, 18:02) *
Вообщем методом тыка выяснил, что если в TPG задавать YUV 4:2:2, то этому соответствует 2 плоскости, а не 3 несмотря на ту надпись из ug_vip.pdf, скриншот которой я привёл и которая сбивала меня с толку.
Проверил по сообщениям QSys.
Если в TPG задавать YUV 4:2:2 , а в подключенном после него CVO задать 3 плоскости, то QSys ругается на нестыковку ширины потока, а если в CVO задать 2 плоскости, то всё в порядке.
Значит TPG в YUV 4:2:2 выдаёт в 2 плоскости.

А установка 50/60 для кадровой частоты для 1920х1080 задаётся действительно в CVO установкой параметра Horizontal blanking ( такова особенность формата 1920х1080 ). Проверил осциллографом.

Подскажите, как задать так, чтобы TPG выдавал не статические, а движущиеся полосы?
Full41
Цитата(FLTI @ Jun 11 2013, 16:16) *
Подскажите, как задать так, чтобы TPG выдавал не статические, а движущиеся полосы?

Не как.
Я использую данные IP, для создания своего видео транслятора. Сделал все как описывается на сайте Altera, все работает, только в изображении проскакивают зеленые и розовые полосы около 1 раза за секунду, кто подскажет в чем может быть дело?
Full41
Цитата(Full41 @ Aug 11 2013, 21:58) *
Не как.
Я использую данные IP, для создания своего видео транслятора. Сделал все как описывается на сайте Altera, все работает, только в изображении проскакивают зеленые и розовые полосы около 1 раза за секунду, кто подскажет в чем может быть дело?

А вот так это выглядит.
Нажмите для просмотра прикрепленного файла
Full41
Цитата(Full41 @ Aug 12 2013, 14:07) *

Не кто с таким не сталкивался?
warrior-2001
С таким не сталкивался, но по опыту работы с Альтерой - проверьте, успевают ли интерфейсы Avalon-ST-VIP отрбатывать с нужной вам кадровой частотой. Может где-то поток тормозится?
Full41
Цитата(warrior-2001 @ Sep 2 2013, 07:50) *
С таким не сталкивался, но по опыту работы с Альтерой - проверьте, успевают ли интерфейсы Avalon-ST-VIP отрбатывать с нужной вам кадровой частотой. Может где-то поток тормозится?

Сейчас заработало, проблема похоже было в sdc файле.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.