Добро пожаловать, Гость
Логин: Пароль: Запомнить меня

ТЕМА: VGA

Re: VGA 10 года 7 мес. назад #2100

  • Alucard
  • Alucard аватар Автор темы
  • Не в сети
  • Завсегдатай
  • Завсегдатай
  • Сообщений: 208
  • Спасибо получено: 20
Заработал вывод содержимого видеопамяти. :woohoo: 800x600@72Hz. (Адресация закольцована, 128кб все же...)

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: VGA 10 года 7 мес. назад #2103

  • Alucard
  • Alucard аватар Автор темы
  • Не в сети
  • Завсегдатай
  • Завсегдатай
  • Сообщений: 208
  • Спасибо получено: 20
www.polesite.ru/wp-content/uploads/2013/...5-e1385470718139.jpg [bad link]
Изображение: 400x300x8bb.
Подключил МК к всему этому, пишу B11111111 во все адреса ОЗУ когда изображение не выводится. Экран должен быть полностью белым, а он - только полосками. :(
Если что, то вот весь www.polesite.ru/gpu.qar проект. [bad link]

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от nckm.

Re: VGA 10 года 7 мес. назад #2104

  • Alucard
  • Alucard аватар Автор темы
  • Не в сети
  • Завсегдатай
  • Завсегдатай
  • Сообщений: 208
  • Спасибо получено: 20
Переделал проект по всем правилам хорошего тона. Полоски стали уже в одну линию - это совсем запутало, но зато вывод ОЗУ на экран работает замечательно.

Вложения:

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от Alucard.

Re: VGA 10 года 7 мес. назад #2116

  • Alucard
  • Alucard аватар Автор темы
  • Не в сети
  • Завсегдатай
  • Завсегдатай
  • Сообщений: 208
  • Спасибо получено: 20
Доделал схему. Чисто теоретически - все должно работать. Я обеспечил асинхронный доступ микроконтроллера к видеопамяти.(он разрешается во время Vertical Front porch, Sync pulse...)



Но очень серьезные проблемы с передачей данных от микроконтроллера. Контроллер посылает во все адреса нули, а изображение покрывается черным не полностью. Такое чувство, что просто отсутствуют некоторые биты адреса.(и данных) Хотя резисторы на шину, от звонов фронтов, ставил. Частота передачи данных ~84MHz. Если пальцем провести по всем дорожкам шины адреса, то экран полностью заполняется как надо.

PS: Не одни сутки уже бьюсь с одной и той же проблемой, а теперь все сломал :) даже синхроимпульсы не работают - теперь бонус-проблема в железе...
--
Проект (рабочий)
Вложения:

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от Alucard.

Re: VGA 10 года 7 мес. назад #2117

  • Alucard
  • Alucard аватар Автор темы
  • Не в сети
  • Завсегдатай
  • Завсегдатай
  • Сообщений: 208
  • Спасибо получено: 20
Еще, попутно, делал вывод пикселей через палитру. В видеопамяти хранится изображение 256 цветов и к нему палитра 12бит(4бита на красный, зеленый и синий). Так как разрядность видеопамяти 8бит, то одновременно можно считать 2 цвета. А вся схема синхронная и по clock импульсу она не успеет потоково "подставить" нужный цвет. Затык.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: VGA 10 года 7 мес. назад #2121

Вы всё никак не можете себе представить схему целиком - это Ваша проблема. Если не получается - розделяйте на блоки. Если не получается дробите ещё на более меньшие блоки!!!

Я думаю что Вам надо для начала розделить проэкт на 6 частей:

1) Интерфейс с ЦПУ - тут должно уметь передать команду для записи в основную память или в память палитры.
2) Интерфейс с памятью - тут надо научиться работать с памятью - палитру лучше сделать отдельной памятью или как блок регистров внутри ПЛИС.
3) Вывод на экран одной строки - тоже желательно сделать отдельно от всего остального. И желательно иметь ДВА участка и переключать их. ТУТ САМЫЙ БОЛЬШОЙ ПРИОРИТЕТ !!!
4) Генерирование этой одной строки из памяти используя палитру - тут уже получается всё просто - имеем диапазон адресов и читаем из 2 памятей и пишем в третью. ТУТ ПРИОРИТЕТ ЧУТЬ НИЖЕ :) А дальше уже как получится.
5) Запись данных в основную память - тут надо только следить чтобы небыла занята.
6) Запись самой палитры - тоже что и в 5.

И также думаю что Вам надо уже переходить на HDL язык - потому что дальнейшие исправлекния схемы уже будут забирать больше времени чем нарисовать снова.

P.S. Заметил что пишете для MAX II - нужно будет конкретно проработать работу с памятью :) Сделать приоритеты. А дальше все части остаются теже. Просто для отдельных участков памяти свои регионы отделить.
Спасибо сказали: Alucard

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от wowa.

Re: VGA 10 года 7 мес. назад #2122

  • Alucard
  • Alucard аватар Автор темы
  • Не в сети
  • Завсегдатай
  • Завсегдатай
  • Сообщений: 208
  • Спасибо получено: 20

wowa пишет: Вы всё никак не можете себе представить схему целиком - это Ваша проблема. Если не получается - розделяйте на блоки. Если не получается дробите ещё на более меньшие блоки!!!

Я думаю что Вам надо для начала розделить проэкт на 6 частей:

1) Интерфейс с ЦПУ - тут должно уметь передать команду для записи в основную память или в память палитры.
2) Интерфейс с памятью - тут надо научиться работать с памятью - палитру лучше сделать отдельной памятью или как блок регистров внутри ПЛИС.
3) Вывод на экран одной строки - тоже желательно сделать отдельно от всего остального. И желательно иметь ДВА участка и переключать их. ТУТ САМЫЙ БОЛЬШОЙ ПРИОРИТЕТ !!!
4) Генерирование этой одной строки из памяти используя палитру - тут уже получается всё просто - имеем диапазон адресов и читаем из 2 памятей и пишем в третью. ТУТ ПРИОРИТЕТ ЧУТЬ НИЖЕ :) А дальше уже как получится.
5) Запись данных в основную память - тут надо только следить чтобы небыла занята.
6) Запись самой палитры - тоже что и в 5.

И также думаю что Вам надо уже переходить на HDL язык - потому что дальнейшие исправлекния схемы уже будут забирать больше времени чем нарисовать снова.

P.S. Заметил что пишете для MAX II - нужно будет конкретно проработать работу с памятью :) Сделать приоритеты. А дальше все части остаются теже. Просто для отдельных участков памяти свои регионы отделить.


Спасибо за совет. :-) Насчет доступа к видеопамяти: что, если мультиплексировать шину от видеопамяти между ЦП и ПЛИС с высокой частотой(выше, чем скорость вывода пикселей) ? - тем самым, и ПЛИС, и МК будут иметь постоянный доступ к информации. Тогда, если частота вывода пикселей 25.175MHz(640x480@60), то отправлять изображение в видеопамять ЦП нужно в периоды Vertical Porch и т.п., где ограничение по времени ~1,429990069513 Мс. В этом случае, ЦП должен "пулять" байты, при разрешении 272x208 изображения с частотой ~39,56391111112242MHz.
Из всего этого: частота мультиплексирования будет: ~79,12782222224484MHz.
Все верно?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: VGA 10 года 7 мес. назад #2123

У Вас есть ещё обратный ход луча - там тоже много времени для записи. :) Вообще так и делается если память конешно будет успевать и ненадо записывать быстрей чем читается.. Сколько регистров занимает Ваш проэкт?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: VGA 10 года 7 мес. назад #2124

  • Alucard
  • Alucard аватар Автор темы
  • Не в сети
  • Завсегдатай
  • Завсегдатай
  • Сообщений: 208
  • Спасибо получено: 20

wowa пишет: У Вас есть ещё обратный ход луча - там тоже много времени для записи. :) Вообще так и делается если память конешно будет успевать и ненадо записывать быстрей чем читается.. Сколько регистров занимает Ваш проэкт?

126 lc. - без системы палитры. Но я не знаю, учитывается ли в этом количестве неиспользуемые элементы.

PS: Скорость памяти 10ns.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: VGA 10 года 7 мес. назад #2125

Ну это значит память может завестись на 100 МГц. Проблема в том что использовано больше 50% кристала.. Боюсь на палитру нехватит.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Время создания страницы: 0.292 секунд
Работает на Kunena форум