Вложений: 7
LEN2PENT: как доработать тайминги ?
"Сказка про велосипед" или "изобретение белого бычка". Это вроде бы уже много раз было, я пытался найти решение среди готовых, но те, что находил - не совсем полноценны.
А интерес в том, чтоб из Ленинграда-1 сделать машину для демок, совместимую по таймингам с пентагоном. Цель, скорее, академическая - ибо демо-пентагонов в том или ином виде у нас у всех навалом. Но хочется разобраться и получить не "что-то близкое", а точно повторяющее.
Итак, ленинград-1 128к, кварц 14,0 Мгц, включение счетчика D4 - выв.1,9,15 - GND, выв.10 - +5v; счетчик D5 - выв.9 - GND.
Память 41256, /WAIT отключен.
В таком виде имеем 320 строк и 71680 тактов/INT - уже почти пентагон.
Вложение 74872
Пытался переключать INT (вход на C2) на сигнал /КС (кадровый синхроимпульс), получается начало INT примерно по концу КС, как у фирменной машины, но это не то, что нам надо. Полистал темы на предмет доработок INT, например, эту, нашел там вариант формирователя INT на триггере ТМ2 по подобию Скорпиона, где INT начинается по началу кадрового синхроимпульса, а заканчивается по активному уровню /H6.
Вложение 74875
Попробовал реализовать его на остатках имеющейся в ленине ПЛИСки epm3032 вот таким образом:
Вложение 74876
Сигнал INT с инверсного выхода триггера еще раз инвертируем на DD1.6 (подключаем к выв.13 DD1) - это чтобы не резать дорожки. Можно, конечно, с прямого выхода сразу процессору сигнал отдать.
Инвертор на тактовом входе триггера нужен для переключения именно по фронту начала КС (назовем это "началом", чтобы не путаться между передним и задним фронтом у инверсного сигнала). В результате имеем очередное очень близкое "почти":
Вложение 74873Вложение 74874
Но глядя в демки обнаруживается, что начало INT запаздывает на ~17 знакомест (или на 136 пиксельных интервалов или на 68 тактов).
Вложение 74877Вложение 74878
В связи с чем вопрос: что его задерживает, ведь нет же никаких RC-цепочек ? Или у ленинграда КС чем-то сдвинут ? Ткните носом, где я ошибаюсь, pls.
И второй вопрос: если действительно задерживается и это какая-то особенность ленинграда, может можно формировать INT в следующем кадре ? Т.е. ловить начало КС, отсчитывать нужное число тактов (хоть пиксельклока, хоть другого, менее частого сигнала) и формировать начало и конце INT в совершенно точный момент времени ? (как это сделано у всех CPLD-клонов, но там свои счетчики).
У ПЛИСки после схемы расширения памяти и нескольких корректировок дешифрации осталось 5 свободных ног и 20 макроячеек - вроде должно хватить на достаточно большой по разрядности счетчик и схемы контроля.
Такой велосипед уже кто-то изобретал ? К чему лучше привязаться и как посчитать моменты начала/конца INT ?