-
Alucard
-
Автор темы
-
Не в сети
-
Завсегдатай
-
-
Сообщений: 208
-
Спасибо получено: 20
-
-
-
-
|
Заработал вывод содержимого видеопамяти. :woohoo: 800x600@72Hz. (Адресация закольцована, 128кб все же...)
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
Alucard
-
Автор темы
-
Не в сети
-
Завсегдатай
-
-
Сообщений: 208
-
Спасибо получено: 20
-
-
-
-
|
Переделал проект
по всем правилам хорошего тона. Полоски стали уже в одну линию - это совсем запутало, но зато вывод ОЗУ на экран работает замечательно.
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Последнее редактирование: от Alucard.
|
-
Alucard
-
Автор темы
-
Не в сети
-
Завсегдатай
-
-
Сообщений: 208
-
Спасибо получено: 20
-
-
-
-
|
Доделал схему. Чисто теоретически - все должно работать. Я обеспечил асинхронный доступ микроконтроллера к видеопамяти.(он разрешается во время Vertical Front porch, Sync pulse...)
Но очень серьезные проблемы с передачей данных от микроконтроллера. Контроллер посылает во все адреса нули, а изображение покрывается черным не полностью. Такое чувство, что просто отсутствуют некоторые биты адреса.(и данных) Хотя резисторы на шину, от звонов фронтов, ставил. Частота передачи данных ~84MHz. Если пальцем провести по всем дорожкам шины адреса, то экран полностью заполняется как надо.
PS: Не одни сутки уже бьюсь с одной и той же проблемой, а теперь все сломал :) даже синхроимпульсы не работают - теперь бонус-проблема в железе...
--
Проект
(рабочий)
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Последнее редактирование: от Alucard.
|
-
Alucard
-
Автор темы
-
Не в сети
-
Завсегдатай
-
-
Сообщений: 208
-
Спасибо получено: 20
-
-
-
-
|
Еще, попутно, делал вывод пикселей через палитру. В видеопамяти хранится изображение 256 цветов и к нему палитра 12бит(4бита на красный, зеленый и синий). Так как разрядность видеопамяти 8бит, то одновременно можно считать 2 цвета. А вся схема синхронная и по clock импульсу она не успеет потоково "подставить" нужный цвет. Затык.
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
wowa
-
-
Не в сети
-
Давно я тут
-
-
Сообщений: 157
-
Спасибо получено: 37
-
-
-
-
|
Вы всё никак не можете себе представить схему целиком - это Ваша проблема. Если не получается - розделяйте на блоки. Если не получается дробите ещё на более меньшие блоки!!!
Я думаю что Вам надо для начала розделить проэкт на 6 частей:
1) Интерфейс с ЦПУ - тут должно уметь передать команду для записи в основную память или в память палитры.
2) Интерфейс с памятью - тут надо научиться работать с памятью - палитру лучше сделать отдельной памятью или как блок регистров внутри ПЛИС.
3) Вывод на экран одной строки - тоже желательно сделать отдельно от всего остального. И желательно иметь ДВА участка и переключать их. ТУТ САМЫЙ БОЛЬШОЙ ПРИОРИТЕТ !!!
4) Генерирование этой одной строки из памяти используя палитру - тут уже получается всё просто - имеем диапазон адресов и читаем из 2 памятей и пишем в третью. ТУТ ПРИОРИТЕТ ЧУТЬ НИЖЕ :) А дальше уже как получится.
5) Запись данных в основную память - тут надо только следить чтобы небыла занята.
6) Запись самой палитры - тоже что и в 5.
И также думаю что Вам надо уже переходить на HDL язык - потому что дальнейшие исправлекния схемы уже будут забирать больше времени чем нарисовать снова.
P.S. Заметил что пишете для MAX II - нужно будет конкретно проработать работу с памятью :) Сделать приоритеты. А дальше все части остаются теже. Просто для отдельных участков памяти свои регионы отделить.
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
Последнее редактирование: от wowa.
|
-
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.
Все верно?
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
wowa
-
-
Не в сети
-
Давно я тут
-
-
Сообщений: 157
-
Спасибо получено: 37
-
-
-
-
|
У Вас есть ещё обратный ход луча - там тоже много времени для записи. :) Вообще так и делается если память конешно будет успевать и ненадо записывать быстрей чем читается.. Сколько регистров занимает Ваш проэкт?
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
Alucard
-
Автор темы
-
Не в сети
-
Завсегдатай
-
-
Сообщений: 208
-
Спасибо получено: 20
-
-
-
-
|
wowa пишет: У Вас есть ещё обратный ход луча - там тоже много времени для записи. :) Вообще так и делается если память конешно будет успевать и ненадо записывать быстрей чем читается.. Сколько регистров занимает Ваш проэкт?
126 lc. - без системы палитры. Но я не знаю, учитывается ли в этом количестве неиспользуемые элементы.
PS: Скорость памяти 10ns.
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
wowa
-
-
Не в сети
-
Давно я тут
-
-
Сообщений: 157
-
Спасибо получено: 37
-
-
-
-
|
Ну это значит память может завестись на 100 МГц. Проблема в том что использовано больше 50% кристала.. Боюсь на палитру нехватит.
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
Время создания страницы: 1.105 секунд