Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Помогите разобраться с организацией видеоускорителя на ПЛИС
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
PSICH
Помогите найти материал про архитектуру ускорителей для видеоадаптеров (организации ускорителей на FPGA/ПЛИС). Может кто занет, где можно найти мануалы, желательно на русском.
smalcom
opengraphics?
PSICH
что типо этого.
des333
Цитата(PSICH @ Jun 14 2010, 18:31) *
что типо этого.

Как понимаю, это Вы сказали "спасибо!". 
PSICH
Нет, на самом деле я не имел в виду что это похоже на то что мне нужно, но всё таки не то что я ищу.
smalcom
както пробовал найти... мне кажется тут помогут только учебники по машинной графике(алгоритмы и т.п.)
Maverick
Цитата(PSICH @ Jun 14 2010, 10:43) *
Помогите найти материал про архитектуру ускорителей для видеоадаптеров (организации ускорителей на FPGA/ПЛИС). Может кто знает, где можно найти мануалы, желательно на русском.

навряд ли Вы такую информацию найдете...
здесь...
здесь 1 .... находите описание на микросхему Motorola 6845 и разбираетесь с внутренней архитектурой.
PSICH
Спасибо большое за помощь, но всё таки это не совсем то что нужно, вот нашёл пару мануалов на английском, если интересно посмотрите
nckkm
Цитата(smalcom @ Jun 14 2010, 17:45) *
opengraphics?

как-то opengraphocs вяло развивается... давно на них смотрю.


Цитата(PSICH @ Jun 14 2010, 11:43) *
Помогите найти материал про архитектуру ускорителей для видеоадаптеров (организации ускорителей на FPGA/ПЛИС). Может кто занет, где можно найти мануалы, желательно на русском.


Хотелось бы уточнения вопроса. Вам нужен просто некий ускоритель для проприетарного девайса или нужен видеоадаптер скажем для PC? Мне кажется здесь есть разница.
Если например Вы хотите составить конкуренцию Nvidia для настольных систем, то несомненно нужно отталкиваться от архитектуры современных дисплейных драйверов. Под Windows нужно читать Windows Driver Kit, драйвер должен поддерживать DirectX 11.
Вообще написать дисплейный драйвер для Windows7 возможно труднее (или так же), чем сделать сам ускоритель.
Да и вообще нужно понимание как работает скажем DirectX и его приложения.

Лично у меня есть небольшой опыт создания framebuffer видеоадаптера на PCI и написания драйвера к нему для WindowsXP. Поддерживался так же режим PCI Master - экран мог фрагментами перекачиваться из системной памяти во framebuffer - тоже своего рода "ускоритель" :-)
PSICH
Уточню вопрос!!! Мне необходимо разобраться с тем как можно организовать видеоскоритель на ПЛИС, желательно для Spartan апапаратным путём.
В ПЛИС я так сказать в данный момент являюсь "чайником" и особо не понимаю как работает вся эта система, но мне приводили пример как это ускорение можно реализовать.Например простым языком: процессор имеет набор собственных команд, и процессора имеются прерывания. один из сбособов, организации ускорения делать в этих прерывания ассемблерные вставки, которые будут обрабатываться ПЛИСиной и передаваться процессору.Точно не помню но что-то примерно вроде этого нужно сделать. На данный момент вся это инфа мне нужна для выполнения курсовой работы, и ещё сам заинтересовался и решил досконально разобраться.
nckkm
Цитата(PSICH @ Jun 15 2010, 15:05) *
Уточню вопрос!!! Мне необходимо разобраться с тем как можно организовать видеоскоритель на ПЛИС, желательно для Spartan апапаратным путём.
В ПЛИС я так сказать в данный момент являюсь "чайником" и особо не понимаю как работает вся эта система, но мне приводили пример как это ускорение можно реализовать.Например простым языком: процессор имеет набор собственных команд, и процессора имеются прерывания. один из сбособов, организации ускорения делать в этих прерывания ассемблерные вставки, которые будут обрабатываться ПЛИСиной и передаваться процессору.Точно не помню но что-то примерно вроде этого нужно сделать. На данный момент вся это инфа мне нужна для выполнения курсовой работы, и ещё сам заинтересовался и решил досконально разобраться.

Хм.. из Вашего уточнения все равно ничего не ясно.
1) Это ускоритель для PC или нет? Если для PC, то какой шиной ускоритель/видеокарта подключается к ПК? Шины бывают PCI, PCIe, USB наконец. Если все это не для ПК, то тоже желательно знать архитектуру устройства.
2) В любом случае у видеокарты должен быть framebuffer (а может и даже несколько переключаемых по сигналу кадровой синхронизации для гладкого воспроизведения). Framebuffer - это память видеоадаптера отображаемая на дисплее. Грубо говоря контроллер дисплея генерирует сигналы синхронизации для монитора (HSYNC/VSYNC) и синхронно с "лучем" читает память framebuffer-а и передает пикселы в DAC
3) простейший видеоадаптер отображает свою видео память (framebuffer) в адресное пространство центрального процессора. Таким образом процессор (тот что на материнской плате ПК) может писать в видеопамять напрямую со скоростью шины (например PCI). например для очистки экрана 1280x1024 true-color (3 byte/pixel) процессор должен записать 983040 DWORDs и это довольно медленно через PCI. Другое дело, что центральный процессор может записать в специальные регистры ускорителя координаты области заливки и тогда ускоритель сам будет делать всю эту заливку. При этом центральный процессор освобождается. Таким образом даже для простейшего ускорителя нужно организовать доступ уже 3х агентов к видеопамяти: дисплейного контроллера на чтение, центрального процессора как минимум на чтение а лучше чтение/запись и "ускоритель" (это как бы процессор в акселераторе) чтение/запись.
4) какие операции Вы собираетесь ускорять? Одно дело VGA режимы и команды ускорителя типа рисования линии или заливки прямоугольника, другое дело поддержка DirectX - там вообще все операции над всеми данными идут в формате float с плавающей запятой
PSICH
На данный момент нет каких либо определённых целей по ускорению каких-то операций, сейчас мне нужно просто разобраться как это работает и как это можно реализовать даже на примере других каких-то плат. Реализация, написание драйвером(кстати драйверы нужно будет писать по Linux),
и всё остальное будет в дальнейшем. Но всё же спасибо большое за помощь, буду ориентироваться по тому что вы написали. Знаю только что эта штука будет работать через PCI и работать совместно с PC
nckkm
Цитата(PSICH @ Jun 15 2010, 16:19) *
На данный момент нет каких либо определённых целей по ускорению каких-то операций, сейчас мне нужно просто разобраться как это работает и как это можно реализовать даже на примере других каких-то плат. Реализация, написание драйвером(кстати драйверы нужно будет писать по Linux),
и всё остальное будет в дальнейшем. Но всё же спасибо большое за помощь, буду ориентироваться по тому что вы написали. Знаю только что эта штука будет работать через PCI и работать совместно с PC


Вам нужна плата developer board с FPGA подключенной к DDR и PCI а так же наличие DAC для VGA. Будете сами делать или где-то брать?
rv3dll(lex)
я делал видеосистему для тонкого клиента на циклоне.
копирование регионов, хекстайл, заливка прямоугольников, прозрачность-наложение, аппаратный курсор мыши
nckkm
Цитата(rv3dll(lex) @ Jun 15 2010, 16:57) *
я делал видеосистему для тонкого клиента на циклоне.
копирование регионов, хекстайл, заливка прямоугольников, прозрачность-наложение, аппаратный курсор мыши

а как называется тонкий клиент если не секрет :-)
PSICH
Цитата(PSICH @ Jun 15 2010, 16:19) *
Вам нужна плата developer board с FPGA подключенной к DDR и PCI а так же наличие DAC для VGA. Будете сами делать или где-то брать?

Плата уже имеется XILINX SPARTAN 3E 1600 и всё комплектующее к ней.
DmitryR
VGA там вроде есть, но не очень понятно как вы будете подавать на эту плату графику, подлежащую ускорению.
PSICH
Есть возможность сообщения с ПК через последовательный порт или PCI интерфейс
nckkm
Цитата(PSICH @ Jun 15 2010, 18:18) *
Есть возможность сообщения с ПК через последовательный порт или PCI интерфейс


А киньте пожалуйста ссылку на доку по плате хочу глянуть из любопытства
PSICH
Да пожалуйста http://www.xilinx.com/support/documentatio..._kits/ug257.pdf
nckkm
Цитата(PSICH @ Jun 15 2010, 22:57) *


Посмотрел, спасибо.
Вопрос: у Вас уже есть способ подключить эту плату по PCI к ПК?
Как я вижу разъема PCI нет. Есть только некий Hirose Connector с 43 пользовательскими пинами.
Может быть они поставляют некий переходник через этот коннектор к PCI?
В принципе если не делать PCIMaster а только PCISlave то 43 контакта почти хватает для реализации PCI:
AD32
CBE4
PAR
FRAME#
TRDY#
IRDY#
DEVSEL#
IDSEL
CLK
- это необходимые сигналы PCI. Если переходника в PCI нет - видимо придется делать самому?

По поводу VGA - тоже расстройство - там на RGB выходят просто по одному пину - то есть всего 8 цветов возможно. Маловато будет.
Имеющийся DAC для VGA тоже не подходит, поскольку последовательный и максимальная частота всего 50Мгц.
Возможно какой-то выход использовать три 6-pin Accessory Headers. В каждом вроде бы есть по 4 пользовательские ноги. Итого 12 бит (по 4 бита на R/G/B) - чуть чуть до high-color не дотягивает. Но нужно какой-то внешний DAC припаять.
Dimmix
Цитата(PSICH @ Jun 15 2010, 12:57) *
Спасибо большое за помощь, но всё таки это не совсем то что нужно, вот нашёл пару мануалов на английском, если интересно посмотрите


http://www.ixbt.com/news/hard/index.shtml?10/54/22

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