The basics-graphics-music (BGM) repository introduces a multi-level abstraction system to facilitate running digital circuit projects on various FPGA development boards. This approach allows educators to use diverse hardware without modifying project source code for each specific device.

The architecture consists of three layers. The board_specific_top file handles hardware-specific details like pin names and peripheral configurations. The lab_top module acts as a contract, mapping project ports to available board resources, while the project itself remains independent of the underlying hardware.

BGM also standardizes the build process across different operating systems and CAD software using a set of redirect scripts. These scripts provide a uniform interface for tasks such as cleaning, simulation, synthesis, and programming, regardless of the specific FPGA board in use.

The system was recently tested by integrating an external RISC-V processor core from the MIET university. This single-cycle rv32i_zicsr core was originally designed for the Nexys A7-100T board using Vivado. Integration required adapting the core's Harvard architecture to the BGM interface.

Due to timing constraints in the single-cycle design, the processor system's clock frequency was capped at 10 MHz. This ensures stability across various student designs and memory configurations, allowing the projects to function consistently on different hardware platforms.