User Tools

Site Tools


2014:fpga_guitar

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
2014:fpga_guitar [2014/12/16 03:29]
svaughan
2014:fpga_guitar [2014/12/16 03:35] (current)
svaughan
Line 1: Line 1:
-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. 
-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 
-This should all be in zip file(s) on your wiki page 
- 
- 
 === Abstract === === Abstract ===
 For our final project in Computer Architecture we decided to build an Field Programmable Gate Array Guitar. We used 8 switches on the FPGA, and defined the first seven as notes, each one corresponding to different frequencies,​ and the eighth button being the "​strum"​ button, that triggers the corresponding notes one want to play. The frequencies varied from approximately 200Hz to 440Hz (note "​A"​). For our final project in Computer Architecture we decided to build an Field Programmable Gate Array Guitar. We used 8 switches on the FPGA, and defined the first seven as notes, each one corresponding to different frequencies,​ and the eighth button being the "​strum"​ button, that triggers the corresponding notes one want to play. The frequencies varied from approximately 200Hz to 440Hz (note "​A"​).
Line 33: Line 17:
 === How to Repeat Our Work === === How to Repeat Our Work ===
  
-Download our code from https://​github.com/​runnersaw/​FPGAGuitar. Many of the files in this repository are for testing; you can ignore these. The only file responsible for FPGA operation is topLevel.v.  +1. Download our code from https://​github.com/​runnersaw/​FPGAGuitar. Many of the files in this repository are for testing; you can ignore these. The only file responsible for FPGA operation is topLevel.v.  
-Open Xilinx’s ISE Design Suite, and click New Project. Name this project anything you would like and save to any location on your computer.  + 
-Specify that this is for the Spartan3 family and XC3S1000 device and click Next. Then click Finish.  +2. Open Xilinx’s ISE Design Suite, and click New Project. Name this project anything you would like and save to any location on your computer.  
-Right click in your project heirarchy and click Add Source… Then navigate to where you saved our topLevel.v file. Then click OK to import it.  + 
-Right click on topLevel.v and click Add Source… again. Then navigate to the directory containing topLevel.v and choose topLevel.ucf. Choose this. Make sure that topLevel.ucf appears in the dropdown below topLevel.v. +3. Specify that this is for the Spartan3 family and XC3S1000 device and click Next. Then click Finish.  
-Double click Configure Target Device. This will synthesize, implement design, and generate programming file. If it throws any warnings at this point, ignore them. Then click Okay to open iMPACT.  + 
-Double click Boundary Scan. Make sure that the FPGA is plugged into the computer and then right click inside the window. Click on Initialize Chain. +4. Right click in your project heirarchy and click Add Source… Then navigate to where you saved our topLevel.v file. Then click OK to import it.  
-Click Yes to continue, and navigate to the folder you chose at the beginning. Double click toplevel.bit,​ then click Bypass on the next window. Then click OK.  + 
-Right click on the portion that says “toplevel.bit” and click program. You’re good to go!+5. Right click on topLevel.v and click Add Source… again. Then navigate to the directory containing topLevel.v and choose topLevel.ucf. Choose this. Make sure that topLevel.ucf appears in the dropdown below topLevel.v. 
 + 
 +6. Double click Configure Target Device. This will synthesize, implement design, and generate programming file. If it throws any warnings at this point, ignore them. Then click Okay to open iMPACT.  
 + 
 +7. Double click Boundary Scan. Make sure that the FPGA is plugged into the computer and then right click inside the window. Click on Initialize Chain. 
 + 
 +8. Click Yes to continue, and navigate to the folder you chose at the beginning. Double click toplevel.bit,​ then click Bypass on the next window. Then click OK.  
 + 
 +9. Right click on the portion that says “toplevel.bit” and click program. You’re good to go!
  
 Notes about using the FPGA guitar. When on manual mode, use switches 7 through 1 to select your note. Only one of these switches can be on, otherwise the guitar will not play a note. Then, “strum” on switch 0 to change the note. Operation should move like: choose note, strum, repeat. To switch to and from “Sweet Child O’ Mine” mode, press button 0.  Notes about using the FPGA guitar. When on manual mode, use switches 7 through 1 to select your note. Only one of these switches can be on, otherwise the guitar will not play a note. Then, “strum” on switch 0 to change the note. Operation should move like: choose note, strum, repeat. To switch to and from “Sweet Child O’ Mine” mode, press button 0. 
Line 51: Line 43:
  
 Our work flowed well. Our simplest iteration, which was just a strummable sound maker, was achievable. Luckily, we worked quickly enough that we were able to achieve one of our reach deliverables,​ which was an automated playing mode. This consisted of allowing users to press a button so that the FPGA would play a preset song.  Our work flowed well. Our simplest iteration, which was just a strummable sound maker, was achievable. Luckily, we worked quickly enough that we were able to achieve one of our reach deliverables,​ which was an automated playing mode. This consisted of allowing users to press a button so that the FPGA would play a preset song. 
 +
 +=== Schematic ===
 +
 +{{:​2014:​guitarschematic.jpg?​200|}}
  
  
2014/fpga_guitar.1418718582.txt.gz · Last modified: 2014/12/16 03:29 by svaughan