
Four-Voice, 12-Bit Stereo Music Synthesizer Core
This design represents a large portion of my contribution to my senior design capstone project at the University of Michigan-Dearborn, for which I and three other students designed and built a fully automated electronic music generator driven entirely by environmental sensors: camera, temperature, humidity, and ambient sound. Every portion of the FPGA design save for the Clock Wizard was developed in-house using the Verilog hardware design language, and sensor-derived command signals were generated and transmitted to the FPGA over Serial Peripheral Interface (SPI). Final output from the FPGA is 12-bit, uncompressed stereo audio at 96k samples per second.
Built on the Digilent CMOD A7-35T
The CMOD A7-35T from Digilent is a small, low-cost FPGA development board perfect for embedded applications thanks to its tiny footprint and 48 header pins, making it ideal for this application. The board’s Xilinx Artix 7 35T chip has 33,280 logic cells in 5200 slices, and a default main clock speed of 100 MHz, giving it more than enough power for real-time audio digital signal processing.
A brief overview of operation in this application:
- An SPI “target” block clocks in 16-bit commands from a Raspberry Pi; the four highest bits are a command identifier, and the 12 lower bits are a scalar
- The four digital voices are each driven by a simple accumulator, where the scalar is nothing more than the quantity to be added to the sum with each clock cycle; the accumulator eventually overflows, representing one cycle of a sawtooth wave
- Square and triangle waveforms are also generated, derived from the sawtooth waveform using simple logic
- Two of the voices have gain envelopes, and after these are applied, all four channels are mixed before being output to a 12-bit digital-to-analog converter using an SPI “controller” block


Plenty of Room for Expansion
This digital polyphonic synthesizer core was my first significant foray into FPGA design, and it required learning a new hardware design language from the beginning over the course of several months – a challenge when done alongside a full course load, but one I am happy I took on.
Just as important, this design was developed with future expandability in mind; FPGA is a natural fit for audio synthesis applications and could form the basis for a high-quality, commercially viable MIDI synthesizer. Stay tuned for more on that.
