Toronto ECE 532 - Karaoke Machine - Group Report

Unformatted text preview:

ECE 532: Digital Hardware Karaoke Machine Group Report Jen Pollock (991 855 738) Frances Lau (991 654 900) May 20052Table of Contents 1. Overview………………………………………………………………… 3 2. Outcome…………………………………………………………………. 4 3. Description of Blocks…………………………………………………… 5 a) Existing Components……………………………………………… 5 b) Modified Components…..………………………………………… 7 c) Custom Components…….………………………………………… 8 4. Design Tree……………………………………………………………… 10 Appendix A: README: Instructions on how to add the volume_buttons Verilog core to your XPS project…………………………………………….. 1131. Overview The goal of this project was to create a karaoke machine using the MP3 player from the modules. The project needed to play an MP3 file mixed with the input from the microphone, at the same time as displaying lyrics synchronized to the music on the serial port. As well, it needed to respond to playback and volume controls implemented through buttons and switches. A system block diagram is shown in Figure 1. Figure 1: System block diagram In addition to the MP3 player, which was heavily modified to perform the other tasks needed, several other IP blocks were used. The ZBT memory controller contained in the MP3 Player was unchanged. The GPIO, UARTlite, Interrupt Controller and Timer/Counter supplied by Xilinx were added and used without modifications. The AC97 controller provided with the MP3 player was modified slightly. A custom hardware block was created, based on the push button example from Xilinx, to interface with the volume buttons.42. Outcome The final project satisfies most of the original objectives and has almost all the fundamental features of a Karaoke Machine. It plays music, mixes microphone input with the music, displays synchronized lyrics, and has volume and playback controls. The only feature that was not implemented was the reading of the music and lyrics file from compact flash. Although we started investigation for this milestone four weeks before schedule, due to poor documentation, we decided that it was not wise to spend an excessive amount of time on this extra feature, and we decided to concentrate on the core functions of this Karaoke Machine instead. We originally intended to have one push button that functioned as “volume up”, and one push button that functioned as “volume down”, similar to traditional volume control buttons. However, after reviewing the documentation for the push buttons, we discovered that the push buttons were controlled by the CPLD. Push button status was only transmitted to the FPGA when the ENTER push button was pressed, so it was not possible to have “volume up” and “volume down” buttons. Therefore, we decided to implement a workaround by requiring that the user enter the volume level in a binary format. As shown in Figure 2 below, the user must choose one of the two yellow buttons (PB1 and PB2) on the left to indicate whether the volume of the song or the microphone is to be changed. Then, the user needs to enter the volume level in a binary format using PB8 to PB10 buttons. To send this selection to the FPGA, the user needs to press the Enter button. Figure 2: Push buttons for volume control PB1 PB2 PB3 PB4 PB5 PB6 PB7 PB8 PB11PB10PB9PB0Reload EnterMic SongVolume Level (binary format)Unused We also decided to use the user switches (SW0 and SW1) to control playback (pause and restart) instead of using the push buttons. This was done because we originally thought that there would not be enough push buttons to control both the volume and the playback. There were six unused push buttons in the final project, so in the future, the project could be modified to use push buttons for both playback and volume control if desired. This project could be improved by implementing the feature to read the music and lyrics file from the compact flash. This would enable larger music files to be played and would shorten the time needed to download the music and lyrics file into the system. Also, video mode could be used for the push buttons so that the user would be restricted to only be able to select either PB1 (microphone) or PB2 (song), not both. This would prevent invalid input. More push buttons could be used to indicate the volume level so that all five volume control bits in the AC97 could be changed.53. Description of Blocks The components of this project can be divided into existing (unmodified), modified, and custom components. a) Existing components These components were used without modifications. - Microblaze processor o Version: 2.00.a o From the MP3 Player project, unmodified - AC97 Controller o Version: 1.00.a o From the MP3 Player project, unmodified - OPB_GPIO o 3 instances of this block were created.  Instance #1: to connect to the User Switches and User LEDs  Instance #2: to connect to the port in the custom Volume Buttons hardware block that output the microphone volume  Instance #3: to connect to the port in the custom Volume Buttons hardware block that output the song volume A separate instance was needed for connecting to the User Switches and User LEDs because a different C_GPIO_WIDTH was needed. Separate instances were needed to connect to the microphone volume and song volume ports to eliminate the error “multiple drivers found for connector”. o Instance #1:  Version: v3.01.a  Parameters: • C_GPIO_WIDTH = 4  Ports: • GPIO_IO (External; Net name: opb_gpio_0_GPIO_IO; Range set to [0:3] in the External Ports Connections list). In the system .ucf file, the following code was added to connect this port to the switches and LEDs: # User LED1 Net opb_gpio_0_GPIO_IO<0> LOC=B27; # User INPUT1 Net opb_gpio_0_GPIO_IO<1> LOC=F14; # User LED0 Net opb_gpio_0_GPIO_IO<2> LOC=B22; # User INPUT0 (can use this now, b/c not used for reset anymore)6Net opb_gpio_0_GPIO_IO<3> LOC=D10; In the C program the following code was added to refer to the switches and LEDs. Note that the system is big endian. #define LED1 0x8 #define SWITCH1 0x4 #define LED0 0x2


View Full Document

Toronto ECE 532 - Karaoke Machine - Group Report

Documents in this Course
Load more
Download Karaoke Machine - Group Report
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Karaoke Machine - Group Report and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Karaoke Machine - Group Report 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?