Репозиторий basics-graphics-music (BGM) внедряет систему абстракций для запуска проектов цифровых схем на различных отладочных платах ПЛИС. Это решение позволяет преподавателям использовать зоопарк устройств без необходимости переписывать код под каждую конкретную плату.

Архитектура включает три уровня. Файл board_specific_top описывает особенности конкретной платы, модуль lab_top выступает контрактом, связывающим порты проекта с ресурсами устройства, а сам проект остается независимым от аппаратной части. Адаптеры позволяют корректно работать даже при нехватке физических кнопок или переключателей.

Для унификации процесса сборки в BGM используется набор скриптов-редиректов. Они обеспечивают единый интерфейс для очистки, симуляции, синтеза и прошивки, абстрагируясь от используемой ОС и САПР. Вся логика сборки сосредоточена в одном месте, что упрощает поддержку множества примеров.

Система прошла проверку интеграцией стороннего RISC-V ядра, разработанного в НИУ МИЭТ. Процессор rv32i_zicsr изначально проектировался под плату Nexys A7-100T и САПР Vivado. Интеграция потребовала адаптации интерфейсов ядра к стандартам BGM без внесения существенных правок в исходный код.

Из-за особенностей однотактной архитектуры процессора и задержек в памяти инструкций тактовую частоту системы ограничили до 10 МГц. Это гарантирует работоспособность проектов на различных платах, независимо от сложности дизайна студента или объема используемой памяти.