А так хорошо начинал, а по факту даже РК-86 не смог ….
- - - Добавлено - - -
Вот же блин жизнь. Нежданчик вылупился и ушел в закат, а я тут с банном и бананом остался :D
Вид для печати
А так хорошо начинал, а по факту даже РК-86 не смог ….
- - - Добавлено - - -
Вот же блин жизнь. Нежданчик вылупился и ушел в закат, а я тут с банном и бананом остался :D
Я про формирование из уже готовых пикселей:
Здесь - 99% асинхронности. Это тот участок, который в оригинале был реализован на КП12/КП11 и мелкой логике.Код:ps <= ps1 when (video_mode(3) = '1') else ps2;
-- video modes manage
vm14 <= video_mode(1) or video_mode(4);
vm12 <= not (video_mode(1) and video_mode(2) and (not video_mode(4)));
vm_ps <= vm12 or (not vblank_n);
vm_st <= vm14 or (not vblank_n);
vm_pr <= not ((not vblank_n) or (vm14 and vm12));
sel16 <= (not vblank_n) or (not video_mode(4));
-- video data switchers
RR <= (video_mode(0) and pxls(0)) when ((vm_st='0') and (pxls(1)='0'))
else (not pxls(0)) when ((vm_st='0') and (pxls(1)='1'))
else ps(6) when ((vm_ps='0') and ((pxls(0)='0')))
else ps(2) when ((vm_ps='0') and ((pxls(0)='1')))
else pxls(2) when ((vm_pr='0') and ((sel16='0')))
else '0';
GG <= (video_mode(0) or pxls(0)) when ((vm_st='0') and (pxls(1)='0'))
else '0' when ((vm_st='0') and (pxls(1)='1'))
else ps(5) when ((vm_ps='0') and ((pxls(0)='0')))
else ps(1) when ((vm_ps='0') and ((pxls(0)='1')))
else pxls(0) when ((vm_pr='0') and ((sel16='0')))
else '0';
BB <= (video_mode(0) and (not pxls(0))) when ((vm_st='0') and (pxls(1)='0'))
else pxls(0) when ((vm_st='0') and (pxls(1)='1'))
else ps(4) when ((vm_ps='0') and ((pxls(0)='0')))
else ps(0) when ((vm_ps='0') and ((pxls(0)='1')))
else pxls(3) when ((vm_pr='0') and ((sel16='0')))
else '0';
II <= '0' when ((vm_st='0') and (pxls(1)='0'))
else '0' when ((vm_st='0') and (pxls(1)='1'))
else ps(7) when ((vm_ps='0') and ((pxls(0)='0')))
else ps(3) when ((vm_ps='0') and ((pxls(0)='1')))
else pxls(1) when ((vm_pr='0') and ((sel16='0')))
else '0';
Решил всё-таки вернуться к железу, благо время появилось, спустя столько-то времени.
Поднял платку 18-ого года, нарастил "мясо" для тестов - на платке с STM32 выполнил генератор сигналов для системной шины с терминальным интерфейсом.
Пока что смог проверить только формирование видеосигнала - некоторые режимы некорректно работают, надо смотреть прошивку PLD'шки, формирующую выходной сигнал.
Результат на экране, 4-х битный режим.
Вид стенда.
Взглянув на твою фотку, категорически рекомендую обратить внимание на "подводный камешек".
По логике - надо пин BUSY завести на GAL'ку и в зависимости от её состояния разрешать защёлкивание видеоданных. Ну и сам процесс делать дважды, для перестраховки. По схеме - это ИР'ки, которые стоят между памятью и сдвиговыми регистрами видео.
ATF22V10C-15PC
Блин, andreil, что же ты "на ровном месте" проблему-то создал?
При чём здесь разрешение защёлкивания видеоданных??? :v2_dizzy_facepalm: У тебя на правом порту сидит видеоконтроллер, он только читает данные, и достоверные данные ему доступны всегда! Здесь все чики-пуки.
А вот на левом порту у тебя сидит процик, и он не только читает, но и пишет данные в видеопамять. И вот здесь при записи в те же адреса, где в данный момент идёт сканирование видеоконтроллером, возможны артефакты на экране из-за асинхронизма одновременного доступа к памяти двух потребителей. Арбитр просто блокирует запись, а когда коллизия по адресам устраняется, то происходит не совсем корректная запись по не совсем корректным адресам. AlexBel натурально это обнаружил в своём проекте. И я тоже в своём. У тебя же просто еще нет записи... Будь уверен - будет абсолютно так же. Если же не веришь - ты сначала запусти ориончик с тестом памяти, а потом и последуй совету:
Обходится этот "подводный камешек" элементарно - на вход Master/Slave подать постоянный нолик, а на вход левого Busy подать постоянную единичку.
Ты, наверное, сговорился с MM - ничего не видите ни в даташитах, ни в аппликухах... ;)
А вот это уже я лопухнулся... На фотке же видно, что 15 нс.
Просто вполне доступны и 7 нс чипы, и в видяхе они особенно были бы уместны.
Да пребудет с тобой Сила! ;)