Electrical Engineering - Computer Vision Enthusiast
Piano++ | |
---|---|
![]() | |
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.
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.
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.