← На главную

STEPLA-1: 8-битный CPU из вентилей без чёрных ящиков

15.06.2026 20:22 · hackernews

STEPLA-1 — это 8-битный процессор с гарвардской архитектурой, собранный целиком из отдельных логических вентилей в симуляторе Logisim-Evolution. Никаких чёрных ящиков: каждый регистр, дешифратор, ALU и блок управления построен из элементарных 74-серийных вентилей. Любой сигнал можно отследить и пощупать виртуальным мультиметром.

Главная фишка — жёстко проводное управление. Вместо EEPROM с микрокодом, как в популярных образовательных проектах вроде SAP-1 от Бена Итера, тут используется gate-level матрица из вентилей AND/OR. Это делает работу CPU полностью прозрачной: каждый управляющий сигнал — физический вентиль.

Архитектура: 8-бит, 16 инструкций с 4-битным опкодом, 4 регистра общего назначения (RA–RD), отдельная память команд и данных по 256 байт. Есть Bootstrap Control Unit (BCU) для холодной загрузки — копирует прошивку из ROM в RAM при старте.

Инструкции выполняются за 3–5 тактов. Условные переходы (JZ, JC) используют ранний выход — это даёт 25% снижения задержки. Средний IPC — 0.263, целевая частота на реальной breadboard-сборке — 4 МГц, что даёт пропускную способность около 1 MIPS. Для сравнения: SAP-1 выдаёт ~0.17 MIPS на 1 МГц.

Проект спроектирован для физической сборки на 74HCT-логике. В спецификации перечислены конкретные микросхемы: 74HCT377 для регистров, 74HCT283 для ALU (два каскадом), AS6C62256 SRAM и AT28C64B EEPROM. Критический путь — 101 нс, что укладывается в полутактовый бюджет 125 нс для 4 МГц.

В репозитории лежат главный файл симуляции, подцепи блоков управления, BCU, примеры программ (фибоначчи, счётчик) и 43-страничная спецификация. В планах на v2.5 — флаги переполнения и знака, поддержка знаковой арифметики, новые условные прыжки. В v3.0 — 16-битная команда, 16 регистров, аппаратный стек с PUSH/POP/CALL/RET, префетч-буфер почти до 1 CPI.

Проект распространяется под лицензией MIT. Автор благодарит Бена Итера, Леона Николаса, а также классиков — Мальвино, Паттерсона, Хеннесси и Чарльза Петцольда.

Читать оригинал →