Обсуждаем цифровые устройства...
Ответить

Помогите с созданием видео "дравера"

Пт ноя 17, 2006 12:25:52

В общих чертах нужно сделать видеокарту. С разрешением 800х600 и выходом обычный SVGA.
Читал теорию на эту тему и понял что для этого дела нужен RAMDAC, память и собственно тот, кто будет в эту память что-то класть.
Перерыл кучу разных процов и прочего, всё как-то нето. Нашёл решение на ПЛИС и тоже не могу понять кое что.
Корое так. В основном все устройства выглядят как некий проц, который параллельно висит на памяти и покругу её сканирует, результаты чтения из памяти обрабатывает и выводит в RGB, за частую выходы уже согласованы с SVGA.
Взникает тока вопрос как же класть в эту память? Ну вот возьмём некий проц и некую параллельную память, эта свзяка уже работает. Возьмём какую-нить мегу, которая должна класть в эту память изображение. Я аонимаю, что мега очень медленная для таких массштабов изображений и картинка будет тупить. ПУСКАЙ тупит! но как же я могу класть в некую память данные если она всегда занята отдачей информации некому видео процу?

Re: Помогите с созданием видео "дравера"

Пт ноя 17, 2006 12:54:18

Spider писал(а):В общих чертах нужно сделать видеокарту. С разрешением 800х600 и выходом обычный SVGA.
Читал теорию на эту тему и понял что для этого дела нужен RAMDAC, память и собственно тот, кто будет в эту память что-то класть.
Перерыл кучу разных процов и прочего, всё как-то нето. Нашёл решение на ПЛИС и тоже не могу понять кое что.
Корое так. В основном все устройства выглядят как некий проц, который параллельно висит на памяти и покругу её сканирует, результаты чтения из памяти обрабатывает и выводит в RGB, за частую выходы уже согласованы с SVGA.
Взникает тока вопрос как же класть в эту память? Ну вот возьмём некий проц и некую параллельную память, эта свзяка уже работает. Возьмём какую-нить мегу, которая должна класть в эту память изображение. Я аонимаю, что мега очень медленная для таких массштабов изображений и картинка будет тупить. ПУСКАЙ тупит! но как же я могу класть в некую память данные если она всегда занята отдачей информации некому видео процу?

Я знаю два способа, может есть и другие.
Способ первый, используется в семействе х86 процессоров, это метод доступа по прерыванию. На шину контроллера прерывания выставляется флаг, и когда твой процессор с байтом из памяти пошел его класть в буфер для вывода на экран, он освобождает шину адреса и данных памяти. В этот момент другой процессор ее захватывает и кладет туда новую информацию. В этот момент первый проц. ждет на холостых тактах, пока шина освободится и дальше опять начинает сканировать с прерванного места.
Способ второй используется в Мотороловских процессорах, там, когда процессору ненужна шина адреса и данных,он выставляет сигнал на шине управления и нуждающиеся устройства в зависимости от приоритета захватывают шину адреса и данных в своих целях, как только главный процессор выставит на шине управления сигнал захвата, все остальные контроллеры шины освобождают и ждут опять удобного случая))). Т. е. в первом случае активно переферийное устройство и требует у проца себе шину, а вовтором, сам проц инициализирует момент передачи шины, когда она не нужна ему. Второй вариант гораздо шустрее и для процессора является абсолютно прозрачным.

Пт ноя 17, 2006 13:07:16

А бывают в наши дни готовые решения на эту тему? Желательно чтобы использовать не быстродействующие процы (конечно же в рамках логичного)

Пт ноя 17, 2006 13:09:54

Anonymous писал(а):А бывают в наши дни готовые решения на эту тему? Желательно чтобы использовать не быстродействующие процы (конечно же в рамках логичного)

Готовое решение это любая видеокарта.

Пн ноя 20, 2006 15:52:32

Сейчас уже и не найти нормальную видюху. Сплошные АГП и ПСИ-Е. Куда нам за такими скоростями? По проще что-нить есть?

Вт ноя 21, 2006 12:07:52

Spider писал(а):Сейчас уже и не найти нормальную видюху. Сплошные АГП и ПСИ-Е. Куда нам за такими скоростями? По проще что-нить есть?

Возьми схему Радио-86РК. Там центральный процессор взаимодействует с контроллером ПДП , который постоянно сканирует видеопамять по запросу контроллера ЭЛТ. Уживаются они по способу номер раз.Ввсе очень просто, наглядно, куча ассемблерных программ разобраных до косточек)).

Вт ноя 21, 2006 18:54:58

Я пару лет назад ковырял отладочную плату от ксилинкса (плисина такая) стартер-кит-что-то.

Там есть два варианта
1. Мутим мощьный контроллер, который обеспечивает "прозрачный" доступ к памяти и пишет туда во время ретрейса (перевода луча на другую строчку). Я делал этот вариант, но из-за ГЛОБАЛЬНЫХ просчетов в таймингах обломался.
2. В плисине есть такой замечательный штучка - синхронный двухпортовый память :) для вывода текста подойдет на все 100% (1 для хранения глипов + 1 для собственно текста. 18кбит на штука)

Нужно реализовать ЖЕЛЕЗО или замутить ИНТЕРФЕЙС к видюхе (таких не мало, и не только AGP\PCI, но и простая 8 бит шина)?
Если надо интерфейс, в чипе была какая-то платка....
Если надо ЖЕЛЕЗО - на ксилинксе\алтере есть МНОГО видюх как раз 800х600, надо только зацепить слово IP CORE

Вт ноя 21, 2006 23:55:53

пара проектов
http://www.fpga4fun.com/PongGame.html
http://elm-chan.org/he_v_e.html

ядро для FPGA:
http://www.opencores.org/projects.cgi/w ... d/overview
Ответить