ROM с фотографии 80386 оживил FPGA-процессор и загрузил Doom
Сначала пришлось прочитать память, которую Intel никогда не публиковала: на детальной фотографии кристалла 80386 исследователи выделили и проверили 94 720 бит control ROM. Затем этот массив из 2 560 слов по 37 бит оказался в FPGA. После загрузки DOS 6 и DOS 7 новая схема запускает protected-mode расширители, Doom и Cannon Fodder. Старая последовательность микроопераций действительно командует железом, которого в оригинальном 386 никогда не существовало.
Старая внутренняя программа ищет новый процессор
Микрокод здесь служит внутренней программой процессора. Каждое его слово выбирает пересылки между внутренними регистрами, действие ALU или shifter, обращение к шине и переход sequencer. Поэтому одной расшифровки ROM недостаточно: FPGA должна предоставить те же смысловые точки подключения, ожидаемые этими 37-битными словами. Именно эту стыковку сделал проект z386.
SystemVerilog-логика собирает prefetch и decode, sequencer, регистровый тракт, ALU, сегментацию, проверку защиты, paging и путь памяти. Авторы не переносили транзисторную схему 80386 и не пытались повторить его netlist. Datapath спроектирован заново под FPGA, а в нём сохранены наблюдаемые микрокодом операции и состояния. Для умножения используются DSP-блоки FPGA; задержку внешней SDRAM маскирует кэш. В майской конфигурации это был 16 KB четырёхканальный unified L1 с 16-байтными строками и буфером записи — решение, которого у настоящего 80386 на кристалле не было.
Datapath собрали вокруг ожиданий ROM
На DE10-Nano автор получил 85 MHz, 18K ALUT, 5K регистров и 116K BRAM. В той же сборке 3DBench показал 34 FPS, исходный Doom при максимальной детализации — 16.5 FPS. Эти результаты относятся к конкретному RTL, кэшу и плате; они не доказывают полную i386-совместимость. Windows пока не загружается, покрытие protected mode остаётся неполным, а опубликованные FPS и частота принадлежат разработчику, без независимого бенчмарка.
Кэш и FPGA меняют характер 386
Самый сильный результат z386 лежит глубже ретрокомпьютерной демонстрации. Микрокод оказался частичной исполнимой спецификацией: он раскрывает, какие примитивы должен иметь процессор, и сразу проверяет их реальными программами. Такой подход может оживлять и другие закрытые архитектуры, если из изображения кристалла удалось надёжно извлечь ROM и понять формат его команд.
Открыт исходный RTL-проект под Apache-2.0, включая тесты и ROM-интерфейс. На сам recovered image микрокода эта лицензия явно не распространяется. Это существенная граница для тех, кто воспринимает z386 как полностью свободный IP-блок.