DRUM MACHINE ABSTRACT This document describes the design, implementation, testing, and final results of a digital drum machine. The drum machine allows the user to compose percussive rhythms from a sound bank of audio samples. The user can determine which sounds to play at which points in time by using a series of switches to program a drum loop. This drum loop is played through the labkit speakers and visualized on a Video Graphics Array (VGA) display. The drum machine was coded in verilog in a Xilinx Integrated Software Environment and implemented on a Xilinx Field Programmable Gate Array (FPGA). MASSACHUSETTS INSTITUTE OF TECHNOLOGY 6.111 INTRODUCTORY DIGITAL SYSTEMS LABORATORY SPRING 2006 HANA L. ADANIYA SHIRLEY S. FUNG MAY 18, 20066.111 Final Project DRUM MACHINE Adaniya, Fung Page i CONTENTS Abstract ...................................................................................................................................................................................... 1 1 Design Overview ............................................................................................................................................................. 1 2 Design Strategy................................................................................................................................................................. 2 3 Module Description and Implementation ................................................................................................................... 3 3.1 Synchronizer/Debouncer......................................................................................................................................... 4 3.2 Digital Clock Manager (DCM) ................................................................................................................................ 4 3.3 Beats Per Minute (BPMenable) ............................................................................................................................... 4 3.4 Parameters................................................................................................................................................................... 6 3.5 Display – VGACount, Displaynames, Letterdisplay, Letterselect, Binary8toBCD, Playstopdisplay, Blocks, and FFT Display..................................................................................................................................................... 7 3.5.1 VGAcount.v ..................................................................................................................................................... 8 3.5.2 Displaynames.v................................................................................................................................................. 8 3.5.3 Letterdisplay.v................................................................................................................................................... 8 3.5.4 Letterselect.v..................................................................................................................................................... 8 3.5.5 Binary8toBCD.v............................................................................................................................................... 8 3.5.6 Playstopdisplay.v .............................................................................................................................................. 9 3.5.7 Blocks.v ............................................................................................................................................................. 9 3.5.8 FFTdisplay.v ..................................................................................................................................................... 9 3.6 Major FSM – enableminors.v................................................................................................................................... 9 3.7 Audio – Minor FSMs/memory interface (snarefsm.v, countersnare.v) & Audio.v........................................ 9 3.7.1 SnareFSM.v.....................................................................................................................................................10 3.7.2 Countersnare.v ...............................................................................................................................................10 3.7.3 Snare ROM .....................................................................................................................................................10 3.7.4 Audio.v ............................................................................................................................................................11 3.8 Audio Mixer – mixer.v ............................................................................................................................................11 3.9 Fast Fourier transform (FFTcontroller.v)............................................................................................................12 4 Testing and Debugging.................................................................................................................................................12 4.1 Simulated Waveforms .............................................................................................................................................12 4.2 Audio Debugging.....................................................................................................................................................12 4.3 Clock Syncrhonization Bug....................................................................................................................................12 4.4 Display Glitches .......................................................................................................................................................13 4.5 FFT Bug ....................................................................................................................................................................13 4.6 VGA (vgacount.v, hcount.v and vcount.v)..........................................................................................................13 5 Future Work
View Full Document