
Разработчик и преподаватель Пётр Советов представил учебную игровую приставку «Брус-16», спроектированную с нуля вместе со студентами РТУ МИРЭА. У системы есть собственные 16-битный процессор, графический и звуковой ускорители, язык программирования, компилятор и аппаратная реализация на FPGA.
Консоль создавалась прежде всего как учебный проект, который должен заинтересовать студентов компьютерными архитектурами и системным программированием. Готовые промышленные решения слишком сложны и обросли историческими особенностями, а простые учебные машины вроде CHIP-8 уже сильно устарели. Поэтому Пётр решил разработать наглядную, но полноценную систему, которую можно изучить целиком — от языка программирования до работающего устройства. Игры при этом должны сделать обучение заметно увлекательнее обычных примеров из учебников.
По возможностям приставка ближе к Mattel Intellivision, чем к более поздним Sega Mega Drive и TurboGrafx-16. В основе системы лежит двухстековый процессор с раздельной памятью для кода и данных. Он выполняет команды за один такт, а вся консоль помещается внутри недорогой FPGA и не требует внешней оперативной памяти.
Главной особенностью проекта стал графический ускоритель. Вместо полноценного кадрового буфера он использует список из 64 команд для рисования закрашенных прямоугольников. Из этих фигур разработчики собирают персонажей, декорации и интерфейс. Изображение выводится в разрешении 640 × 480 с 16-битным цветом и частотой 60 кадров в секунду. Возникший из-за ограничений визуальный стиль авторы назвали «брус-артом».
Игры создаются на встроенном в Python предметно-ориентированном языке (DSL). Его синтаксис представляет собой подмножество Python, а сам учебный компилятор занимает меньше 200 строк кода. Систему намеренно сделали достаточно простой, чтобы студент мог написать виртуальную машину или небольшую игру за вечер, компилятор — за неделю, а реализацию для FPGA — за несколько недель.
Для приставки уже подготовили больше десяти игр. Среди них — оригинальный проект Gerion от Петра Косых и глубоко переработанный порт знакомый всем спектрумистам головоломки Alter Ego, созданный Василием Литвиненко. Поиграть в проекты можно с помощью браузерного эмулятора.
Архитектуру, виртуальную машину, компилятор и аппаратную версию разработали примерно за полтора месяца. Реализацию для FPGA выполнил студент Кирилл Павлов. Её уже проверили на платах Tang Nano 9K, Tang Nano 20K и Tang Primer 25K, а также на чипе Xilinx XC7A200T.
Сам Пётр выражает осторожную надежду, что «Брус-16» когда-нибудь будет выпущен и на заводе, но верится в это с трудом. Хотя, казалось бы, интересный проект — простой, российский и в изрядной степени уникальный. Минпросвещения, ау!
Исходный код опубликован на GitHub, а подробный рассказ об устройстве процессора, графического ускорителя и компилятора можно прочитать в блоге компании YADRO на Хабре.
Solo los usuarios autorizados pueden dejar comentarios