Железо и архитектура
Проект m9b демонстрирует, как на отладочной плате Sipeed Tang Nano 9K (чип Gowin GW1NR-9) можно развернуть вычислительную систему общего назначения. В основе лежит ядро VexiiRiscv, работающее на частоте 36 МГц. Ключевая особенность — отсутствие аппаратного процессора в кристалле: вся логика, включая контроллеры USB, HDMI и память, реализована программно в логических ячейках (LUT4).
Система оснащена 8 МБ PSRAM (расположенной на двух кристаллах в одном корпусе) и 52 КБ встроенной блочной памяти. Из-за высокой задержки внешней памяти значительная часть внутренней памяти выделена под кэш (24 КБ), что критично для производительности.
Сравнение моделей Tang Nano
Выбор платы обусловлен балансом между стоимостью и ресурсами. В таблице приведены характеристики семейства:
| Модель платы | Чип ПЛИС | LUT4 (ячейки) | Блочная память | Внешняя память | Аппаратный CPU |
|---|---|---|---|---|---|
| Tang Nano 1K | GW1NZ-1 | 1 152 | 8 КБ | нет | нет |
| Tang Nano 4K | GW1NSR-4C | 4 608 | 20 КБ | 8 МБ HyperRAM | Cortex-M3 |
| Tang Nano 9K | GW1NR-9 | 8 640 | 52 КБ | 8 МБ PSRAM | нет |
| Tang Nano 20K | GW2AR-18 | 20 736 | 92 КБ | 8 МБ SDRAM | нет |
Периферия и интерфейсы
Компьютер поддерживает полноценный ввод-вывод, реализованный через логику ПЛИС:
- Видео: HDMI 720×480 при 60 Гц (режим VESA) со стереозвуком 48 кГц. Используется кодировщик TMDS, собранный из логических элементов.
- USB: Два порта USB 1.1 (Full Speed) для клавиатуры и мыши. Протокол обрабатывается микрокодом в ПЛИС.
- Хранилище: Поддержка SD-карт через интерфейс SPI для файловой системы.
- Тактирование: Все подсистемы синхронизированы от единственного кварца 27 МГц. Частоты 36, 72 и 144 МГц получены делением/умножением для минимизации задержек при передаче данных между доменами.
Результаты тестирования
Автор проекта портировал на систему несколько классических игр, используя исходный код на C/C++. Несмотря на скромные ресурсы, системы работают стабильно:
- Doom — играбельная скорость, корректная работа таймдемо.
- System Shock и Ultima VII — успешный запуск, сохранение визуального и звукового стиля оригинала.
- Descent и Tyrian — работают на полной скорости.
Проект доказывает, что даже на дешевых ПЛИС без аппаратного ускорителя можно реализовать сложную вычислительную систему, если грамотно оптимизировать использование кэшей и пропускной способности памяти (пиковая пропускная способность PSRAM заявлена как 664 МБ/с, хотя реальная доступность для CPU ниже).
Источник: Habr ↗
