DekatronPC эмулятор
Материал из DekatronPC
Версия от 20:14, 22 мая 2021; Radiolok (обсуждение | вклад)
Описание
Проект по созданию эмулятора лампового компьютера на ПЛИС. Аппаратная часть сделана на базе отладочной платы Altera De0 Nano и дисплея МС6205
Работа панели эмулятора
Панель эмулятора представляет собой блок индикации и управления.
К ПЛИС подключается плата демультиплексора, на которой располагаются сделающие каналы:
- 4-бит катодный регистр. В нем хранится номер текущего отображаемого столбца на блоке ИН12.
- Объединенный 8-бит анодный регистр. Старший и младший и младший октеты соотверствуют верхнему и нижнему индикатору в отображаемом столбце. Значение кодируется в формате 8-4-2-1.
- 8-бит регистр опроса клавиатуры. Клавиатура является матрицей 9х4 кнопок, их назначение описано в таблице ниже.
- Информация о нажатых кнопках поступает непосредственно на вход ПЛИС через параллельную 7-бит интерфейсную шину.
Цель проекта
- На ПЛИС создается полная копия будущей ламповой машины. которая позволяет упростить процесс разработки микроархитектуры лампового компьютера, а также отладить взяимодействие всех ключевых элементов.
- Укрупненные блоки:
- Блок счетчика IP - 6 декатронов, работающих в восьмеричной системе. Счетчик умеет делать +1 и -1, а также,
- При сигнале IP_READY=1 - на выходе счетчика его текущее значение.
- Можно сбросить счетчики в нуль.
- Максимальное число 0777777 - или 263143. для 7 декатронов - 07777777 или 2097151
- Блок памяти программ
- Блок декодера инструкций
- Блок счетчика Loop на базе двух декатронов умеет считать +1 и -1 от 0 до 99 в десятичном режиме.
- При сигнале LOOP_READY=1 разрешается считать состояние сигнала LOOP_ZERO
- Сигнал LOOP_ZERO=1 показывает что счетчик пуст
- Сигнал LOOP_OVERFLOW=1 показывает, что счетчик переполнился - критическое состояние, вызывает SYSTEM_HALT
- Блок счетчика AP - 5 декатронов, работающих в восьмеричной системе. Счетчик умеет делать +1 и -1
- При сигнале AP_READY=1 - на выходе счетчика его текущее значение
- Сигнал MEMORY_LOCK=1 - означает, что данные по данному адресу выгружены в счетчик данных и перед изменением состояния счетчика их необходимо записать обратно. Запрещает операции +1 и -1.
- Максимальное число 077777 - или 32767.
- Блок памяти данных
- Блок счетчика данных - 3 декатрона в восьмеричной системе. Счетчик умеет делать +1 и -1, а также в него можно записать новые данные извне
- При сигнале DATA_READY=1 - декатроны находятся в устойчивом состоянии
- Сигнал MEMORY_LOCK=0 означает, что данных в счетчике еще нет и перед операциями +1 и -1 необходимо прочитать данные из ОЗУ
- Блок ввода/вывода
- Блок счетчика IP - 6 декатронов, работающих в восьмеричной системе. Счетчик умеет делать +1 и -1, а также,
- Впоследствии, программные блоки реализуются физически и замещают программные блоки. В итоге при наличии эмулятора компьютер всегда работает.
- Данный подход позволяет своевременно находить аппаратные проблемы и устранять их.
Блок индикации
Прогресс
- С апреля потихоньку пилится модель компьютера с помощью System Verilog.
- Реализована модель декатронного счетчика
- (15/11/2020) Заказал корпус 5U 360мм глубиной.
- Рисую схему блока индикации. Представляет собой дисплей мс6205, блок индикаторов ИН12 и клавиатуру.
Ссылки
- https://github.com/radiolok/dekatronpc - Общий репозиторий проекта
- http://www.construc-tiv.ru/19-rack-box.html - тут достаточно бюджетные корпуса 19"