Версия для печати темы

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

Форум разработчиков электроники ELECTRONIX.ru _ Работаем с ПЛИС, области применения, выбор _ Видеокарта на ПЛИС

Автор: chel Oct 22 2008, 06:30

Здравствуйте.
Возникла задача разработать видеокарту на ПЛИС. Требования разрешение 800 x 600, количество цветов допустимо 16 битное, но крайне желательно 32 битное. Планирую использовать Xilinx Spartan3 или 3e.
Подскажите, возможно ли такое? Может где уже есть готовые примеры структуры и кода (Verilog)?

Автор: Postoroniy_V Oct 22 2008, 07:03

Цитата(chel @ Oct 22 2008, 15:30) *
Здравствуйте.
Возникла задача разработать видеокарту на ПЛИС. Требования разрешение 800 x 600, количество цветов допустимо 16 битное, но крайне желательно 32 битное. Планирую использовать Xilinx Spartan3 или 3e.
Подскажите, возможно ли такое? Может где уже есть готовые примеры структуры и кода (Verilog)?

тут смотрели?
http://electronix.ru/redirect.php?http://www.opencores.com/projects.cgi/web/vga_lcd/overview

Автор: Boris_TS Oct 22 2008, 08:24

Цитата(chel @ Oct 22 2008, 10:30) *
Планирую использовать Xilinx Spartan3 или 3e.

А почему не Spartan-3A ?
Вы не указали какой выходной стандарт вы будете использовать... и если Вы планируете использовать DVI, то полагаю, что Spartan-3A может оказаться более подходящим, т.к. его IOBUF поддерживает TMDS (используемый в DVI).

Автор: slog Oct 22 2008, 08:44

И куда эта видеокарта втыкаться должна? В PCI-express или в ISA?

Автор: chel Oct 22 2008, 08:51

Цитата(Boris_TS @ Oct 22 2008, 12:24) *
А почему не Spartan-3A ?
Вы не указали какой выходной стандарт вы будете использовать... и если Вы планируете использовать DVI, то полагаю, что Spartan-3A может оказаться более подходящим, т.к. его IOBUF поддерживает TMDS (используемый в DVI).


ммм. Да может и Spartan-3A. Но есть проблема с bga корпусами, мы не можем с ними работать, вернее не так работать, как изготовлять эти платы. А заказать же их можно только за рубежом? Наши, то не делают? А у Spartan-3A есть только tq144 ног же может не хватить, правда я ещё не обдумывал. А стандарт планировал SVGA.

Цитата(Postoroniy_V @ Oct 22 2008, 11:03) *
тут смотрели?
http://electronix.ru/redirect.php?http://www.opencores.com/projects.cgi/web/vga_lcd/overview



ага, спасибо. Скачал, но пока не разбирался.

Цитата(slog @ Oct 22 2008, 12:44) *
И куда эта видеокарта втыкаться должна? В PCI-express или в ISA?



Да, вообще планируется подключить его к какому-нибудь ARM-у.

Меня интересует, сможет ли Spartan обеспечить нужную скорость работы?
Нужно ещё будет реализовать умножение для альфа канала.

Автор: DmitryR Oct 22 2008, 09:35

Цитата(chel @ Oct 22 2008, 12:51) *
Да, вообще планируется подключить его к какому-нибудь ARM-у.

Меня интересует, сможет ли Spartan обеспечить нужную скорость работы?
Нужно ещё будет реализовать умножение для альфа канала.

Сможет, он сможет даже возможно ARM внутри себя разместить.

Автор: dsmv Oct 23 2008, 10:56

Цитата(chel @ Oct 22 2008, 12:51) *
А заказать же их можно только за рубежом? Наши, то не делают?

А разве есть проблема в заказе печатных плат за рубежом ?
Сделают быстрее, дешевле и лучше.

Автор: Vitus Oct 23 2008, 13:23

Печатные платы под BGA вполне можно делать в РФ - например Электроконнект в Новосибирске, мы там делаем прототипы, качество вполне приемлемое.

Справится по скорости S3 или нет - зависит от поставленной задачи. Если простое преобразование - вполне справится. Если нужны каке-то DSP преобразования - сказать трудно.

Я делал преобразователь TTL в LVDS для связи ARM с ЖК-панелью на S3E, проблем со скоростью не было.

Автор: murmel1 Nov 4 2008, 09:03

Если бы делали под альтеру, то надо было бы посмотреть Cyclone 3 NIOS II Starter Kit - отладочная плата под встраиваемый процессор, содержит ЖК-экран 640 на 480 и выход D-SUB для монитора. В комплекте есть CD со схемами, с текcтами HDL и C (правда тексты несколько ограничены, и насколько помню нет ничего для работы с внешним монитором). Содержимое CD можно скачать на сайте альтеры (если нет, то могу выслать).

Автор: vadimuzzz Nov 4 2008, 12:49

вот этот проект не смотрели?

"OGD1 is a PCI based FPGA development board currently in development by the Open Graphics Project. With 256MiB on-board memory, high bandwidth, a Lattice XP10 semiconductor FPGA and also a Xilinx Spartan-3 XC3S4000 FPGA, the GPL based design is capable of significant computing applications. Though primarily designed as a development platform for 3D-rendering hardware, this board is expected to be of interest to engineers and scientists in both the commercial and academic markets."

дают всю документацию на плату.

http://electronix.ru/redirect.php?http://wiki.opengraphics.org/tiki-index.php?page=OGD1#Prototype_Board_with_Connectors_Shown
http://electronix.ru/redirect.php?http://www.traversaltech.com/products.phtml
http://electronix.ru/redirect.php?http://www.traversaltech.com/download.phtml

Автор: torik Nov 5 2008, 07:39

Цитата
Если бы делали под альтеру, то надо было бы посмотреть Cyclone 3 NIOS II Starter Kit - отладочная плата под встраиваемый процессор, содержит ЖК-экран 640 на 480 и выход D-SUB для монитора. В комплекте есть CD со схемами, с текcтами HDL и C (правда тексты несколько ограничены, и насколько помню нет ничего для работы с внешним монитором). Содержимое CD можно скачать на сайте альтеры (если нет, то могу выслать).


Плата прикольная, ЖК - 800Х480.
У меня такая быть.

Из недостатков:
передача на микросхему преобразователя в аналоговый сигнал для компьютерного монитора - с временным уплотнением, по шине 10 бит. Из-за этого нереально получить высокое разрешение на выходе, просто частоты уже будут запредельные. И еще плохо - для ниоса все программы не откроешь в IDE, надо через консоль работать (насколько я понял). На мой взгляд - это бессмысленно.

Автор: Postoroniy_V Nov 5 2008, 07:47

Цитата(torik @ Nov 5 2008, 16:39) *
...............
И еще плохо - для ниоса все программы не откроешь в IDE, надо через консоль работать (насколько я понял). На мой взгляд - это бессмысленно.

насколько я понял проекты под этот кит были сделаны в nios2-studio
http://electronix.ru/redirect.php?http://nioswiki.jot.com/WikiHome/Altera%20NIOS%20Studio
http://electronix.ru/redirect.php?http://forum.niosforum.com/forum/index.php?showtopic=8933
юзер гайд
http://electronix.ru/redirect.php?http://www.altera.com/literature/ug/ug_nios2_studio_help.pdf

и в консоли куда быстрее скажем запустить флешпрограммер чем в ниос иде smile.gif

Автор: torik Nov 5 2008, 17:57

Терпеть не могу разные консоли. Если nios2-studio начинается лишь с 8-ого квартуса, то отпадает. У меня в комплекте 7.2...

Автор: Vadim_nsk Nov 6 2008, 05:29

Цитата(chel @ Oct 22 2008, 12:30) *
Здравствуйте.
Возникла задача разработать видеокарту на ПЛИС. Требования разрешение 800 x 600, количество цветов допустимо 16 битное, но крайне желательно 32 битное. Планирую использовать Xilinx Spartan3 или 3e.
Подскажите, возможно ли такое? Может где уже есть готовые примеры структуры и кода (Verilog)?

У меня похожая задача. Нужен универсальный (насколько возможно) контроллер FTF с поддержкой 2D графики. Надоело копировать одно и тоже из одного проекта в другой. Хочется уже выделить функционально законченный модуль. Отсюда вопрос ко всем. Насколько актуальной вам кажется такая затея в рамках открытого проекта?
Структура примерно такова:
- микроконтроллер (решает другие задачи помимо вывода на дисплей)
- шина подключения к видеоконтроллеру (Wishbone, SPI или др.)
- "универсальный" видеоконтроллер
- адаптер шины к TFT, если требуется (например в LVDS, если у TFT шина LVDS) или DVI
- TFT
Микроконтроллер может видеть видеопамять как внешнюю и рисовать своими силами, а может использовать "язык команд", вроде шейдеров в видеокартах, и рисовать ресурсами видеоконтроллера. Предполагается реализация некоторых графических примитивов, знакогенератор, курсор...
Реализация предполагается на Xilinx Spartan-3E(A,AN).
Хочется услышать мнение опытных специалистов...

Предложенный выше материал (ссылки) сейчас изучаю...

Автор: Alex77 Nov 6 2008, 07:02

В копилку...
В EDK 10.1.3 появился ip-core XPS TFT


The XPS Thin Film Transistor (TFT) controller is a hardware
display controller IP core capable of displaying 256k colors.
The XPS TFT controller connects as a master on the PLB
V4.6 (Processor Local Bus with Xilinx simplification) and
reads the video pixel data from PLB attached video memory.
This core also connects as a slave to the PLB or DCR (Device
Control Register) bus for the register access. This core is
capable of configuring Chrontel CH-7301 DVI Transmitter
Chip through I2C interface

Автор: torik Nov 6 2008, 08:14

Курсоры, тексты - ерунда это все. Самое сложное - фильтры всяких помех, вызваных деинтерлейсером и т.д....

Автор: DmitryR Nov 6 2008, 09:13

Да-да, как немного принимавший участие в разработке таких устройств скажу, что это в целом ОЧЕНЬ хитрые устройства. У нас группа из 10-ти человек делала небольшую часть проекта и еще 10 человек писали софт к ним. Потому что для действительно универсального устройства необходим не только деинтерлейс, необходимо еще масштабирование как вверх, так и вниз (алгоритмы различаются), поддержка разных видов синхронизации и цветовых пространств, куча настроек (у LCD например очень жесткие ограничения на размеры поля холостого хода, причем у разных моделей они очень разные). А если чем-то жертвовать - это будет не универсальное устройство, да и хорошо понять, чем можно жертвовать, а чем - нет тоже непросто.

Автор: Vadim_nsk Nov 6 2008, 09:24

Цитата(Alex77 @ Nov 6 2008, 13:02) *
В копилку...
В EDK 10.1.3 появился ip-core XPS TFT

Platform Studio and EDK
Integrated development environment containing tools to facilitate the creation of your embedded platforms - FREE for 60 days!

А это не соответсвует идее открытого проекта.

Автор: Alex77 Nov 6 2008, 11:05

Цитата(Vadim_nsk @ Nov 6 2008, 12:24) *
Platform Studio and EDK
Integrated development environment containing tools to facilitate the creation of your embedded platforms - FREE for 60 days!

А это не соответсвует идее открытого проекта.

открытый проект это:
Бесплатная среда разработки ?
Или бесплатный (или по другому открытый) IP-core ?

Я что-то нигде не заметил исходных требований об "открытом проекте" у автора.

ps: в mpmc есть еще что-то связаное с video

Video Frame Buffer Controller PIM
The Video Frame Buffer Controller (VFBC) allows a user IP to read and write data in two dimensional
(2D) sets regardless of the size or the organization of external memory transactions. The VFBC can be
used in video applications where hardware control of 2D data is needed to achieve real time operation.
Typical video applications are: motion estimation, video scaling, on-screen displays, and video capture
used in video surveillance, video conferencing and video broadcast.
Features
• 2D data transfers (32,640 bytes x 16,777,216 lines maximum and two 32-bit words minimum.)
• Asynchronous FIFO command interface.
• Separate asynchronous FIFO write and read data interfaces.
• Configurable 32- or 64-bit NPI data width.
• Independently configurable write and read data widths of 8-, 16-, 32-, or 64-bit.
• Configurable FIFO depths.
• Configurable almost full and almost empty flags.
• Independent write, read, and command FIFO resets.
• Flushable data FIFOs.

Автор: torik Nov 6 2008, 11:07

А универсальный контроллер слишком жирно не будет, сколько он места займет? А времени на разработку?

Автор: Vadim_nsk Nov 6 2008, 11:30

Цитата(Alex77 @ Nov 6 2008, 17:05) *
Я что-то нигде не заметил исходных требований об "открытом проекте" у автора.

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

Цитата(torik @ Nov 6 2008, 17:07) *
А универсальный контроллер слишком жирно не будет, сколько он места займет? А времени на разработку?

Универсальный не в смысле содержащий все, что может понадобиться. А в смысле "ядро" + легко прикручиваемая "обвязка". Ставим галочки напротив нужного и получаем задуманое.

Автор: Cont Feb 6 2009, 14:54

Есть какие-нибудь сдвиги в данном направлении? Я сам бы подключился к этому проекту. Попробовал на своей плате с 4-м Виртексом TFT контроллер от Xilinx и был расстроен крайне низкой производительностью(меня все таки интересует графика в реальном времени).
Интересует вопрос, как нужно проектировать графические ускорители?
Я начал с аппаратной очистки буфера. Подцепил к шине PLB свой модуль, который есть ничто иное как автомат, который по команде от Микроблэйза пишет нули в этот самый буфер. Очистка действительно стала выполняться быстрее. Что дальше? Делаем автомат который рисует линии, символы и т.п.? Если двигаться в этом направлении, по-моему нужно делать полноценный процессор с особым набором команд, ибо делать автомат, который, скажем, будет заполнять произвольную область уже не так тривиально...

Автор: __inline__ Sep 25 2018, 07:01

Подыму эту тему. Может кому пригодится........

Несколько лет назад делал видеокарту на ПЛИС для своей игровой приставки.

Описание видеокарты вместе с исходниками VHDL (Quartus) здесь: http://electronix.ru/redirect.php?http://zx-spectrum128k.narod.ru/Romanich/VideoFlipper/VideoFlipper.htm

Простой фреймбуфер с двумя видеостраницами (одна отрисовывается на дисплей, во вторую пишет CPU. Переключение между страницами - по запросу). Прямой режим цветности 15 бит или палитровый. Есть оконная функция как в LCD с видеоконтроллерами.

исходники: http://electronix.ru/redirect.php?http://zx-spectrum128k.narod.ru/Romanich/VideoFlipper/VideoFlipper.rar

документация на регистры (программирование) видеокарты: http://electronix.ru/redirect.php?http://zx-spectrum128k.narod.ru/Romanich/VideoFlipper/VF_Soft.txt (выставить кодировку Cyrillic Windows!)

Схема принципиальная в составе игровой приставки:


Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)