Ask Question, Ask an Expert

+1-415-315-9853

info@mywordsolution.com

Ask Programming Language Expert

Assignment 01: turn your FPGA into a (simple) music box

1. PROJECT STATEMENT

You are required to create a finite-state machine design to turn your FPGA development board into a simple programmable music box. The requirements are as follows:

The system should be able to generate melodies, i.e., a sequence of notes. Notes can be selected from a bank of 16 possible sounds: 15 notes and a pause (no sound). A note is generated by a vibration of a definite frequency as shown:

170_Frequency of music.jpg

The overall aim of the project is to create a machine capable of four functions of increasing complexity. The functions are listed below:

2.1 Level 1

Your system should take in a slide switch combination and give out the notes listed above as a square wave output fed to a speaker as the Figure give below.

697_Square wave output.jpg

2.2 Level 2

As the next feature, your system should play a melody based on a given sequence of notes (in appendix 1 you will find some sequences, or you can make up your own). You will need to create a module which can be initialised to contain the desired sequence of notes. Upon pressure of a push button, these notes will be read by your machine and played out through the speaker. Notes should be played out in a "static" manner, i.e., all notes should be sounded for 0.4 seconds followed by a 0.1 second period of silence. This is simple but makes for a rather boring melody!

The four push buttons on the board should have the roles play and pause.

• Play plays the melody from the beginning
• Pause pauses the melody from playing and if pressed again playing will resume from where it stopped

2.3 Level 3

Create a system which can be programmed to make music with a customised melody. Notes can be entered as a slide switch input (as in function 1) and saved into a register one at a time, by pressing a button. Then, when a second button is pressed, the music will be played back to you, in the same "static" manner presented in function 2 (0.4s sound followed by 0.1s silence for each note). Allow for at least 64 notes.

The four push buttons on the board should act as save note, play, pause and reset:

• Play plays the melody from the beginning
• Pause pauses the melody from playing and if pressed again playing will resume from where it stopped
• Save note saves the note in your machine's memory
• Reset clears the memory ready for a new input to be stored

2.4 Level 4

Now the most difficult of all. Create a system which will record your own musical performance with the slide switches (you will start the recording by pressing a push button, play a melody with your slide switches, and finally stop recording by pressing a second push button). Then, the system will play your performance back to you when another button is pressed. Both the notes and the timing must be the same as in your performance.
The four push buttons on the board should act as start recording, stop recording, play from the beginning and reset:

• Start recording tells the machine to commence storing your actions into memory
• Stop recording tells the machine that you have finished playing music
• Play from the beginning plays the sounds from the start
• Reset clears the memory ready for a new performance to be memorised

2.5 Level 5: the overall state machine

The four functions can be implemented as separate designs, but you will get extra marks for creating a single machine which can switch between the different functions. Since most of your buttons are taken up by the four functions, you can consider using the central button [V16] (it has a dial on it, but it also works as a push button if you press down on it) to switch between functions. I also recommend using an informative LED output to make the user aware of what function they are using.

ADDITIONAL problem

Imagine we were to implement this design using an assembly of multiple hardware components instead of a FPGA chip. In a short exposition (500 words or less), discuss whether memory components such as those you have learned about in the lectures (ROM and RAM) could feature in this state machine and whether they could improve the capability of the design. Consider in particular any limitations of the FPGA approach which could arise if the system were to be interfaced to a real keyboard (up to 96 notes), were to manage melodies of much greater length / timing complexity, and it were required to undergo power on/off cycles.

Programming Language, Programming

  • Category:- Programming Language
  • Reference No.:- M9795

Have any Question? 


Related Questions in Programming Language

Operating systems assignment-1 binary record sorting in

Operating Systems Assignment- 1. Binary Record Sorting in Ascending Order| You will write a simple sorting program. This program should be invoked as follows: shell% ./fastsort -i inputfile -o outputfile The above line m ...

Consider the following three programswhere i k l are low

Consider the following three programs: where i, k, l are low variables and a, b, c, d, h, n are high variables. Assume db is a database with two columns (shown as array, where the index represents the row), lookup and is ...

Pair programming phase 1talent agency user stories1 user

Pair Programming Phase 1 Talent Agency User Stories 1. User Story 1 As a head office administrator I want to be able to produce formatted output of all the information about our talent agencies so that I can easily incor ...

The briefyour small development team of ideally three

The Brief Your small development team of (ideally) three people has been asked to implement and test the Human Resource Information System desktop application. Your software product will be a database- backed desktop app ...

1 implement dfs by using prolog2 implement bfs by using

1. Implement DFS by using PROLOG. 2. Implement BFS by using PROLOG. 3.  Solve the problem of Question 3 in Assignment 1 by using your PROLOG programs of DFS and BFS, respectively. Question 3 from Assignment 1 to Solve wi ...

Object oriented system analysis and design1non-functional

Object Oriented System Analysis and Design 1. Non-Functional Requirements a) Analysis of NFRs Analyse the Case Study documents and determine the non-functional requirements (NFRs) or system quality attributes necessary t ...

Cp1404cp5632 2016 sp22252 assignment 1 - shopping list

CP1404/CP5632 2016 SP2/22/52 Assignment 1 - Shopping List 1.0 Task: You are to plan and then code a console-based program in Python 3, as described in the following information and sample output. This assignment will hel ...

Purposethe purpose of this assignment is to practice using

Purpose: The purpose of this assignment is to practice using loops, selections, and other basic features of Java in order to solve a real-world problem. Program Description: The Jeddah Broker Company is one of the compan ...

1 loops the greatest and the least- write a program with a

1. Loops: The greatest and the least- Write a program with a loop that lets the user to enter a series of integers. The use should enter -99 to signal the end of the series. After all the numbers have been entered, the p ...

Write a program to test for the case of a math equation

Write a program to test for the case of a math equation entered via the keyboard using the SWITCH-CASE operator. Types of equations to test for: x + y  x / y   x * y and x - y. The program is to ask for the following: 1. ...

  • 4,153,160 Questions Asked
  • 13,132 Experts
  • 2,558,936 Questions Answered

Ask Experts for help!!

Looking for Assignment Help?

Start excelling in your Courses, Get help with Assignment

Write us your full requirement for evaluation and you will receive response within 20 minutes turnaround time.

Ask Now Help with Problems, Get a Best Answer

A cola-dispensing machine is set to dispense 9 ounces of

A cola-dispensing machine is set to dispense 9 ounces of cola per cup, with a standard deviation of 1.0 ounce. The manuf

What is marketingbullwhat is marketing think back to your

What is Marketing? • "What is marketing"? Think back to your impressions before you started this class versus how you

Question -your client david smith runs a small it

QUESTION - Your client, David Smith runs a small IT consulting business specialising in computer software and techno

Inspection of a random sample of 22 aircraft showed that 15

Inspection of a random sample of 22 aircraft showed that 15 needed repairs to fix a wiring problem that might compromise

Effective hrmquestionhow can an effective hrm system help

Effective HRM Question How can an effective HRM system help facilitate the achievement of an organization's strate