jle-santos

Electrical Engineering - Computer Vision Enthusiast

Digital Piano Project

Piano++
PSU
Date January 2019 - March 2019
Language SystemVerilog
Board DE0 Nano SoC Cyclone V
Program Quartus Prime Lite 18.0, ModelSim
Peripherals 16x2 Serial Display
Github Piano Project

Piano++ is a 13-key digital piano that was created using the DE0-Nano-SoC board. It was programmed using exclusively SystemVerilog as the programming language and was compiled and synthesized using Quartus Prime Lite 18.0. The piano was designed with the frequencies that produces the C major scale of an actual piano.

Videos

Overview

It has the ability to play multiple tones at once and can be scaled using a button that increases the scale factor as high as 5 times the original frequency. The scale factor in use is displayed for the user’s knowledge onto the screen. Furthermore, the user will have the option to adjust the volume using a potentiometer.

Program Flow

The Quartus project is comprised of five modules which consists of the piano, tone, key, screen, and the scale module. The flowchart below shows the overview of the program flow in detail. Each of the modules are instantiated in the “Piano” module. It is also here where the modules communicate with each other.

Flowchart