Загорелся я сделать проект "ево-БК" по типу ZX-evo - то есть берем ретро-процессор и делаем к нему обвязку ПЛИС. Поскольку сейчас достаточно много недорогих отладочных ПЛИС-плат, то на первом этапе решил не возиться с повторением ПЛИС-части, а сделать простой и недорогой съемный процессорный модуль, подключаемый к такой готовой отладочной плате.
На модуле размещается собственно оригинальный процессор и схема сопряжения с 3-вольтовыми уровнями ПЛИС отладочной платы. Для начала предполагается разработка двух экспериментальных ретро-процессорных модулей:
1) на 1801ВМ1. Чтобы было веселее и интереснее этим заниматься, на модуле устанавливается два процессора с задействованием механизма конкуренции за шину. Поскольку память и реализованная на современной ПЛИС шина МПИ предполагаются быстрыми (относительно даже работающего на 6МГц процессора ВМ1), то будет любопытно посмотреть как оно работает;
2) на 1801ВМ2, тут банально предполагается один микропроцессор на модуле;
В качестве базовых ПЛИС-китов выбраны киты от Terasic на основе микросхем Altera, подключение модуля осуществляется к стандартизованному 40-пиновому разъему "GPIO" на плате кита. Сейчас у меня есть DE2-115, и заказан более дешевый DE0 (не nano), аналогичный разъем имеет и кит DE1. На базе ожидаемого DE0 планируется повторение БК-001x с оригинальным процессором ВМ1 и "апгрейды" - 2xВМ1 и на базе ВМ2. Также не исключается повторение MC1202.01/02. На упомянутых китах имеется SDRAM-память, VGA-выход, SD-карта и PS-2 разъем.
В данном сообщении я хотел бы представить первый вариант схемы модуля 2xВМ1. Второй процессор может быть отключен (отсоединением перемычками от общих DMR/SACK и подачей нулевого уровня) для реализации однопроцессорного варианта.
Обработка векторных прерываний предполагается только одним из процессоров, запросы коммутируемые, точную схему распределения прерываний можно будет установить в ходе экспериментов.
Также предполагается режим когда внешняя (по отношению к модулю) схема осуществляет доступ к внутренним регистрам процессоров (через общий DMR/DMGO/SACK) и/или процессор осуществляет доступ к внутренним регистрам парного процессора.
Ссылки на исходники текущего проекта для платы DE0:
Версия 1.0a