FINAL PROJECT: DIGITAL TUNER ROSHNI COOPER, LINDA FANG MASSACHUSETTS INSTITUTE OF TECHNOLOGY 6.111 INTRODUCTION TO DIGITAL SYSTEMS LABORATORY PROFS: TERMAN AND CHUANG TA: JAVIER CASTRO DECEMBER 14, 2005ABSTRACT This final project has built a digital tuner. It has a variety of independent functions and modules, utilizing a microphone, speaker, keyboard, mouse and FPGA. It can record audio input and play the most recently recorded audio sample back to the user. It can also play a pure tone selected by the user with either the switches, mouse, or keyboard connected to an FPGA. At the same time, the tuner can display the note information (location on the staff, note name, note number, and frequency) of the user selected tone on the VGFA display. iTABLE OF CONTENTS Abstract................................................................................................................................ i Table of Contents................................................................................................................ ii List of Figures..................................................................................................................... ii List of Tables ..................................................................................................................... iii Overview..............................................................................................................................1 Description...........................................................................................................................3 Testing and Debugging......................................................................................................32 Conclusion .........................................................................................................................38 Appendices.........................................................................................................................41 Appendices A – W (By Roshni Cooper)................................................................41 Appendices 1-3 (By Linda Fang)...........................................................................74 LIST OF FIGURES Figure 1: Block Diagram of Digital Tuner .........................................................................1 Figure 2: Input/Output Audio/Video Module Block Diagram ...........................................3 Figure 3: Speaker Module Block Diagram.........................................................................7 Figure 4: Video Module Block Diagram ..........................................................................10 Figure 5: Note2 Module Block Diagram ..........................................................................11 Figure 6: Get_y Module Block Diagram ..........................................................................12 Figure 7: Note Module Block Diagram ............................................................................13 iiFigure 8: Sharp Module Block Diagram...........................................................................14 Figure 9: Mouse_disp Module Block Diagram ................................................................15 Figure 10: Staff_disp Module Block Diagram..................................................................15 Figure 11: Get_strings Module Block Diagram................................................................16 Figure 12: Get_letter Module Block Diagram..................................................................17 Figure 13: Note Number Finder Block Diagram..............................................................19 Figure 14: Filter Block Diagram.......................................................................................20 Figure 15: Version 1 Matlab Ouput..................................................................................21 Figure 16: Version 1 Convolution FSM ...........................................................................23 Figure 17: Version 2 Matlab Output.................................................................................25 Figure 18: Version 2 & 3 Note Number FSM ..................................................................26 Figure 19: Version 2 & 3 Algorithm Read/Write FSM....................................................27 Figure 20: Version 3 Matlab Output.................................................................................29 Figure 22: Sine Waves in Version 2.................................................................................35 LIST OF TABLES Table 1: Signals to Be Convolved ....................................................................................24 Table 2: Convolution Output............................................................................................24 iiiOVERVIEW This project implements a digital tuner. It’s basically used for people who want to tune instruments or their voices. It has three major functions – record, playback and play a tone (see Figure 1). The user will select the functions via the buttons on the FPGA. Record takes a user microphone input and stores it in a BRAM. Playback plays back the last recorded tone and display its position on a music staff, its frequency and its note number (the numeric value corresponding to the key of the tone on a piano). Play tone takes one of three user inputs (switches[6:0], mouse, or keyboard) and generates a tone using a DDS, outputting it on the video display same as if it were a playback. A typical piano has 88 keys, ranging in frequency from 27.5Hz to 4.186KHz. These are the values that will be stored into the tonecheck ROM and will be the valid range for testing. Figure 1: The block diagram that this project implements. 1The filter FSM and filter are the modules that will find the frequency of the input tone. It generates signals using the frequencies prestored into the tonecheck ROM, and compares those with the input signal until it finds one it matches with. These were implemented using three different methods, none of which worked. DESCRIPTION LABKIT (BY ROSHNI COOPER) The labkit is the top level module for the digital tuner. It assigns all of the inputs and outputs of the FPGA, and within it the submodules which make up the digital tuner are instantiated. The entire digital tuner is run using a 65MHz clock, which needs to be defined in the Labkit module
View Full Document