Тестировал игрушку Алмаз на этом компе. На грани неиграбельности! Я в шоке. В смысле, все события в ней ускорены, и в комнатах с точным расчетом времени не получается пройти, никак! Поэтому, в схему будет введено устройство замедления процессора. Идеальный вариант это "растягивание" сигналов F1 и F2 на один 2,5МГц-вый такт через каждые 4. Это позволит не нарушить синхронизацию с синхрогенератором и получить производительность процессора на эквивалентной не кратной частоте 2МГц. Думаю, этого можно добиться малой кровью (блокировать уровни по счетчику с 5 состояниями, при этом нам не нужен именно ИЕ2, вот здесь можно применить любой). Накидал схемку в симуляторе:
Здесь, верхний кусок схемы - повторен из макетки (только элементы выбраны функциональные а не корпусные). Все эпюры соответствуют ранее указанным. Но введен еще один счетчик, считающий от 0 до 4 (ИЕ2 тоже подойдет, кстати, так как делим мы 2,5МГц всего) и 2 элемента блокировки сигналов F1 и F2.
Отмечу лишь то, что процессор "задерживается" в том состоянии тактовой последовательности, в котором он с шиной ничего не делает, чтобы не поломать ничего. Думаю, он не обидится. :3 Сигнал SLOW можно брать с бита какого-нибудь регистра, причем переключать можно асинхронно: никакого сбоя по шине не будет. :3
Отмечу, что поступало даже такое предложение:
Но вот именно это и есть не наш метод. Этот метод аналогичен синхронизации, применяемой в эмуляторах. Количество команд, отведенное для некоторого эталонного времени крутится на доступной скорости, а если реальное время еще осталось - тупо ждем. Для игр - да, этого достаточно. Но не для других программ, которые завязаны на производительности процессора. Я же предлагаю функционально законченное и изящное решение. При этом джиттер таймингов будет скакать только в пределах 4х тактов @2МГц - это один машинный цикл! Даже если посчитать абсолютное значение времени джиттера, то это будет отрицательный прирост 1/4 такта @2,5MHz на каждый такт внутри группы. Максимальный джиттер - -1 такт @2,5MHz на 4 такте, т.е. всего 1/2,5=400нс!Сообщение от Error404
Еще не пробовал на макетке, на днях займусь, как только немного выкрою времени.
Последний раз редактировалось HardWareMan; 08.07.2011 в 14:25.
Давай соберём и эту схему. Пора уже и в деле попробовать (заказать и спаять печатку).
---------- Post added at 21:44 ---------- Previous post was at 21:39 ----------
Имя Специалист-MX-2 для нового компа утверждено - подписал на печатке. Скоро подниму старую тему про заказы на печатку. С тех пор прошло много времени и комп немного переделан...
Накидал я схемку. Вот:
На радость местным нердам добавляется только 1 счетчик, причем так вами любимый ИЕ5. :3 Правда, при этом теряется синхронность управления и переключать FAST/SLOW на ходу не рекомендуется, желательно его "латчить" по перепаду 1=>0 частоты F2. Замечу, что использую сигнал переноса первого счетчика как запись в атрибуты и свободный триггер ИЕ5 для сдвига F2 в нужную фазу. Строчный счетчик запитывать от 2М5 (по схеме, так как CLK блочится в режиме SLOW). CLK - сигнал тактов для Z80.
Обкатать на макетке попытаюсь на этой неделе, если время позволит...
PS Я придумал как прикрутить DRAM из SIMM72 на пару метров на 16 бит (у меня есть экземпляры на 8МБ как 4Мх16б). Так вот, синхрогенератор читает из нее сразу 16 бит, а процессор имеет ее побайтно. Четные страницы из одного байта, а нечетные - из другого. Так как RAMFOS устанавливает номер страницы от 0, причем специально выделяет только первые 16, то мы имеем возможность "запихать" основную страницу в последние две страницы этого ОЗУ. Имеем: один чип ОЗУ, прямой доступ к атрибутам и тонну памяти в одном корпусе. Реализовывать буду уже на ПЛИСине, хотя не сложно и на россыпе. Это вам так, на затравку.
Последний раз редактировалось HardWareMan; 11.07.2011 в 23:28.
Все выложенные схемы учтены в схеме Специалиста_МХ2. Вот схема с печаткой.
Записываемся в очередь на печатки - http://www.zx.pk.ru/showthread.php?t=14434&page=5.
Пока есть время до прихода плат, хочу задать вопрос кто и что достал из предложенного мною списка микрух.
Я например, заказал такие: ИЕ5, ЛА2, ЛИ1, ЛА4 и ИР16 - у меня их не оказалась в наличии. Ещё нужно флеш ПЗУ надыбать, кстати HardWareMan, ты до сих пор не дал её прошивку со своим Монитором-4.
Для контроллера SD карты ещё нужно: держатель SD карты, ПЛИС и конечно панелька к ПЛИС. Последних, кстати я заказал с десяток - на всех хватит. Ещё б плисины дешёвые найти - я б их прошивал бесплатно...
Последний раз редактировалось fifan; 29.07.2011 в 07:31.
Лично я буду потиху выпаиваю с разных плат мелкую логику, ВВ55 слава богу хватает, толлько вот проблемки с ИР33 наверное будут и ОЗУ-шками. Держатель SD мона будет из какой убитой мобилы взять или накройняк купить кардридер, расположить на передней морде корпуса и шлейфиком распаять на материнку контакты держателя!
Вопрос а мона будет вместо флеш ПЗУ использовать ультрафиолетовую? И подойдут-ли в место указанных ОЗУ-шек микросхемы КЭША от 486...586 РС-ок? Или мона SIMM-ку распаять на проводках?
---------- Post added at 22:43 ---------- Previous post was at 22:38 ----------
fifan, Ты-бы лучше к списку деталей помимо микросхем добавил резисторы и конденсаторы для солидности!
Последний раз редактировалось AlexFantasy; 30.07.2011 в 01:42.
ZXM-Phoenix-1024(rev.02)
KAY-1024turbo(rev.2010)/FDC/NemoIDE/SMUC2.0/GS(512)
БАЙТ(БЭМЗ)/FDC
ZX-Evolution(rev.C)
Sega Dreamcast(PAL)/2xJoypad/Keyboard
A500Plus
___________________________
Идея, брошенная в массы - девка, брошенная в полк
Эту тему просматривают: 2 (пользователей: 0 , гостей: 2)