Ocean 240 on FPGA — это проект по реализации ретрокомпьютера «Океан 240» на FPGA (ПЛИС). Проект создан «по фану» и не является точной такт-в-такт реализацией, а выполнен функционально. Автор предупреждает, что многое может не работать.
Архитектура и память
| Компонент | Реализация |
|---|---|
| Процессор | HDL-модель КР580ВМ80А от vslav (GitHub) |
| ОЗУ и ПЗУ | Микросхема SRAM 512K×16 (младший байт D[7:0] — ROM, старший D[15:8] — RAM) |
| SPI Flash | Прошивка ПЗУ хранится во флеш-памяти 25-й серии, при старте переписывается в SRAM |
| Банки ПЗУ | 4 банка по 64 КБ (ROM-диски с «Монитором» и CP/M), выбор банков — двумя джамперами/переключателями SW0, SW1 |
| Прошивки | Из репозитория Алексея Морозова (https://github.com/alemorf/retro_computers) |
Видеовыход (HDMI)
| Режим | Разрешение | Особенности |
|---|---|---|
| Цветной | 800×600 (скандаблер, 512×512 с бордюром) | Палитры можно править в массиве palette. Цвета подбирались автором, не все соответствуют оригиналу |
| Монохромный | 640×480 (512×256 + бордюр) | Цвета не подбирались |
| Скроллинг | Только вертикальный | Горизонтальный не проверялся |
Клавиатура
| Тип | Описание |
|---|---|
| USB клавиатура | Через переходник на STM32F411CEU («black pill», кварц 25 МГц). Поддерживаются прошивки REL5 (ASCII) и REL8 (матрица 7×11) |
Другие интерфейсы
| Интерфейс | Статус |
|---|---|
| Звук | Одноканальный, выводится на биппер |
| UART | Tx работает точно, Rx толком не тестировался (один байт принимается, дальше не проверялось) |
Поддерживаемая ПЛИС
Реализация выполнена для Altera Cyclone 10LP (достаточно Cyclone IV EP4CE6). Для переноса на другие ПЛИС потребуется:- Сгенерировать IP-блоки PLL (main_pll) и блочной памяти (VRAM)
- Возможно, доработать модуль HDMI (используются ALTDDIO для вывода TMDS по фронту и спаду такта)
Файлы для загрузки
| Название файла / Папка | Описание | GitHub | Yandex.Диск |
|---|---|---|---|
| firmware (папка) | Прошивки ПЗУ (Монитор, CP/M, ROM-диски) | Ссылка на GitHub | Ссылка на Яндекс.Диск |
| software (папка) | Программное обеспечение | Ссылка на GitHub | Ссылка на Яндекс.Диск |
| usb_keyboard (папка) | Переходник для USB-клавиатуры на STM32F411CEU | Ссылка на GitHub | Ссылка на Яндекс.Диск |
| Скачать все файлы | Все файлы находятся в одном архиве | Ссылка на GitHub | Ссылка на Яндекс.Диск |
Полезные ссылки проекта:
- HDL-модель КР580ВМ80А (vslav) — https://github.com/1801BM1/vm80a
- Прошивки и утилита для сборки ROM-диска (Алексей Морозов) — https://github.com/alemorf/retro_computers
- Репозиторий проекта — GitHub