omercury, плюнул на это гиблое дело.
Надо было сразу делать на внутреней RAM , отладить и лишь потом внешнюю подключать.
Ну и вопросы...
800x600x8bit влезет ли?
Можно ли встроенную память инициализировать рандомным значением в визарде?
omercury, плюнул на это гиблое дело.
Надо было сразу делать на внутреней RAM , отладить и лишь потом внешнюю подключать.
Ну и вопросы...
800x600x8bit влезет ли?
Можно ли встроенную память инициализировать рандомным значением в визарде?
ZXM-Phoenix 1024+PROF ROM+SMUC+VGA
Profi 1024+CF+CPM+VGA
ATARI 800XL+SIO2PC+SIO2SD
RK86@Maximite
EP4CE22 имеет 66 блоков M9K, условно 66 килобайт.
800 x 600 x 8 bit = 480000 байт
Никак не влезет. 1 бит, и то целиком займёт.
320 x 240 x 4 bit = 37.5 килобайт. Так влезетЭто 640x480 с удвоенными пикселями и строками.
Рандомным значением инициализировать по-моему нельзя, только нулями или из файла. Кажется.
А файл можно и рандомом заполнить.
Леш, ты предупреждай, на каком языке пишешь, а то я тебе на VHDL подсказывал...
- - - Добавлено - - -
1 бит с извращениями.
Для начала на VGA потренируйся с даблингом.
- - - Добавлено - - -
Откусываешь от любого видеофайла нужное количество байт, переименовываешь в .bin, а дальше бинтухекс.
Ну или скрипт какой...
omercury, да хрен с ним.
Я вообще-то говорил что пока еще пишу левой ногой.
Вытираю, копирую части в исходнике. Иногда думаю и что то пишу.)))
Вообще почти полный ноль.
Счас буду пробовать создать блок памяти и сканер под него , ну или скандаблер...
Такс, понял. 800x600 бум делать даблинг, т.е. 800x600 плавно трансформируются в 400x300 или что там ближе к стандарту, но hdmi будет 800x600.
- - - Добавлено - - -
Чего надумалось.
Сделать окно в верхней части дисплея, может даже не половине а трети. А остальное добивать константой.
Потом , когда сдрам прикручу будет проще на весь экран развернуть.
Последний раз редактировалось dosikus; 18.09.2019 в 19:47.
ZXM-Phoenix 1024+PROF ROM+SMUC+VGA
Profi 1024+CF+CPM+VGA
ATARI 800XL+SIO2PC+SIO2SD
RK86@Maximite
Ага, 400*300=120 килобайт...
Делай с четырёхкратным (так проще) даблингом, 200*150=30000 байт, подразумеваем матрицу 256х256=64К.
Можешь у меня подсмотреть, там (когда понимаешь) вообще просто.
Или для тренировки повтори спек какой.
48 у тебя полностью в BRAM влезет.
https://cloud.mail.ru/public/kdLw/2ba9DDq4V
Ну дык , полный растр 800x600,
выкусываем треть , а лучше четверть - 200x600.
И вот это окно даблим, триблим, квадриблим.
Вообщем короче делаем аналог LCD дисплея для выхлопа дебаг инфы с 8051.
В том числе и при отладке SDRAM ..
Завтра буду осознавать твои исходники видеогенератора , переваривая с изучением верилога...
Вообщем веселуха, есть чем заняться...
И да, не хочу я спек...
Последний раз редактировалось dosikus; 18.09.2019 в 20:34.
ZXM-Phoenix 1024+PROF ROM+SMUC+VGA
Profi 1024+CF+CPM+VGA
ATARI 800XL+SIO2PC+SIO2SD
RK86@Maximite
Дык, у 8051 XRAM незарелизина, так что с нуля.
А экран (окно)200x150 => реальное 200 x600.
ZXM-Phoenix 1024+PROF ROM+SMUC+VGA
Profi 1024+CF+CPM+VGA
ATARI 800XL+SIO2PC+SIO2SD
RK86@Maximite
Ага, то есть Гарвардская архитектура - отдельно память программ, отдельно память данных, так?
Поскольку ты упорно хочешь 800х600, то пиксельклок 40МГц, но так как готов на 8 битный цвет, то видеопамяти надо 600 килобайт.
Поскольку BRAM у тебя столько нет, а SRAM нет на плате остаётся SDRAM.
Так как в сингл-доступе она стопроцентно не успеет, остаётся поточное обращение к памяти.
Поскольку видеосканер и память надо делать синхронными, то у нас остаётся линейка из кратных 40 мегагерцам частот - 80-120-160-200МГц.
Так как 160МГц потянет не каждая память, остаётся 120МГц.
Контроллер SDRAM будем делать двухпортовый, чтоб избежать коллизий между запросами ЦПУ и видеоадаптером.
Поскольку SDRAM 16-битная, то чтение видеоданных будет целыми словами.
Теперь немного расчётов, в странных попугаях, но они дадут нам представление - получится у нас что-либо или нет:
Так как ты упорно хочешь 800х600 @8 бит, то пиксельклок получается 40МГц, но так как чтение видеоданных будет по 16 бит, то условно получаем 20МГц.
SDRAM наиболее эффективна при поточных операциях чтения/записи, на 120МГц Cas Latency=3 и минимальное время чтения 1 слова - 8 тактов, то есть 120/8=15МГц.
На чтение 4 слов уходит всего на 3 такта больше, чем на 1 слово, то период запросов контроллера SDRAM будет 8+3=11 тактов, а на самом деле 12 тактов или 10МГц.
При пиксельклоке (условном) в 20МГц и длине бюрста 4 получаем условную частоту запросов 20/4=5МГц, но так как контроллер у нас двухпортовый, то за 1 цикл запроса видеоданных он должен успевать делать по 2 обращения к памяти, то есть 10/2=5МГц, что впритык перекрывает необходимое.
Пока что проходим.
Вроде бы...
Если не будем успевать, то попробуем либо увеличить тактовую памяти, либо удлиним поток вдвое. А лучше и то и другое, если получится.
Осталось решить, какой ширины будем делать доступ к памяти со стороны процессора.
Вероятно 8 бит.
Теперь по организации памяти, я предлагаю такую -![]()
Последний раз редактировалось omercury; 18.09.2019 в 23:09.
Да у процессора 2 8ми битных порта чисто вход и 2 чисто выход.
ZXM-Phoenix 1024+PROF ROM+SMUC+VGA
Profi 1024+CF+CPM+VGA
ATARI 800XL+SIO2PC+SIO2SD
RK86@Maximite
Эту тему просматривают: 4 (пользователей: 0 , гостей: 4)