← На главную

ao486 на Verilog запускает Linux 3.13 и Windows 95 на Terasic DE2-115

02.08.2026 04:53 · hackernews

Проект ao486 — это x86-совместимое ядро на Verilog, которое реализует все функции процессора 486 SX. Модель ядра основана на программной реализации x86 из проекта Bochs. Вместе с процессором ao486 содержит SoC, способный загружать ядро Linux 3.13 и Microsoft Windows 95.

В процессоре четырёхступенчатый конвейер: декодирование, чтение, выполнение и запись. Реализованы все инструкции 486, есть CPUID, 16 КБ кэша инструкций, 16 КБ write-back кэша данных, TLB на 32 записи, интерфейсы Altera Avalon для памяти и ввода-вывода.

В состав SoC входят сам процессор ao486, IDE-диск, перенаправленный на HDL-драйвер SD-карты, флоппи-контроллер тоже работает через SD-карту, контроллеры 8259 PIC и 8237 DMA, Sound Blaster 2.0 с DSP и OPL2 (FM-синтез полностью не работает), звук выводится на аудиокодек WM8731, таймер 8254 PIT, контроллер клавиатуры и мыши 8042, RTC и стандартная VGA. Все компоненты оформлены как модули Altera Qsys; Qsys соединяет их и предоставляет контроллер SDRAM.

Проект работает только на плате Terasic DE2-115 и синтезируется для чипа Altera Cyclone IV E EP4CE115F29C7. Использование ресурсов: 91 256 логических элементов из 114 480 (80%), 2 993 408 бит памяти (75%), максимальная частота 39 МГц, рабочая тактовая частота 30 МГц.

В бенчмарках Dhrystone из пакета DosTests производительность ядра составила от 1.00 до 4.58 VAX MIPS в зависимости от версии теста и оптимизации.

ao486 успешно запускает Microsoft MS-DOS 6.22, Microsoft Windows for Workgroups 3.11, Microsoft Windows 95 и Linux 3.13.1.

В проекте используется BIOS из Bochs версии 2.6.2 с небольшими изменениями для поддержки жёсткого диска. VGA BIOS взят из проекта VGABIOS версии 0.7a без изменений; расширения VBE отключены.

Для управления компонентами и вывода On Screen Display используется процессор Altera NIOS2. OSD позволяет вставлять и извлекать флоппи-диски.

Файлы ao486 распространяются под лицензией BSD. Файлы, взятые из Bochs Project, — под LGPL. Загрузочный образ sd/fd_1_44m/fdboot.img взят из FreeDOS, а бинарные BIOS — из Bochs и vgabios.

Для компиляции SoC нужен Altera Quartus II и NIOS II Software Build Tools for Eclipse. Verilog-компоненты SoC, особенно сам процессор ao486, можно компилировать любым Verilog-компилятором, но проектные файлы подготовлены только для Quartus II. В текущей версии пути в некоторых проектных файлах могут быть битыми.

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