User Tools

Site Tools


projects:fpga_piano

This is an old revision of the document!


FPGA Piano

Made by: Mason del Rosario, Evan Dorsky, Rahil Dedhia, Jamie Gorson, Jack Fan

What did you do?

This is a catchy sentence followed by a paragraph or two. The intended audience should include people that aren’t necessarily versed in Computer Architecture, but are technically competent. Even the MechEs should be able to understand this portion.

For our final project, we built simple keyboard using an FPGA. A user can turn on multiple notes at the same time using seven of the switches on the FPGA

Why did you do it?

A paragraph or so about why the project you chose is worthwhile and interesting.

How did you do it?

This portion can assume an audience that has taken Computer Architecture, but don’t get burdened by buzzwords. A sure sign of a bad engineer is over reliance on acroynms.

How can someone else build on it?

Include everything necessary to pick up where you left off. This should include:

  • Code
  • Schematics
  • build instructions
  • A list of difficulties and ‘gotchas’ while doing this project
  • Work Plan reflection
  • A possible TODO to extend the depth of the project

Build Instructions: Quickstart

1. Download Xilinx ISE design tools at http://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/design-tools.html.

2. Clone github repo: https://github.com/mdelrosa/cafinalproject

3. Create a new project in Xilinx (follow instructions from http://tinyurl.com/ca-fpga-13; these next steps outline the process described in the tutorial)

4. Add piano.v as a source

5. Right click on piano.v, click on add source, and add piano.ucf

6. Click on the Green arrow that says “Implement Top Module”; this should synthesize your top level module and implement the design constraints set by the ucf file

7. Double click on “Configure Target Device”

Analog Circuit

In order to have all of our GPIO pins play their notes through the same speaker, we needed to construct a circuit that added the signals together. To accomplish this, we created a simple analog signal-adding circuit. This circuit uses an inverting amplifier to amplify the summed signal.

The seven GPIO pins which generate the notes' frequencies are each attached to a 1kΩ resistor. These seven resistors are all attached to the noninverting input of the op amp. Note that the op amp pictured is not the one which we opted to use; while we used a TL081, it is fine to use most any op amp.

This should all be in zip file(s) on your wiki page.

projects/fpga_piano.1387488629.txt.gz · Last modified: 2013/12/19 16:30 by mdelrosa