Audio Driven Laser Tetris 6.111 Final Project Presentation Cameron Lewis and Xin Sun 1 Overview Variant of the classic arcade game VGA display provides all game info Music drives the block movement Laser projects the playing field 2 Tetris Game Background Please see any image of Tetris pieces, such as http://upload.wikimedia.org/wikipedia/ commons/9/9a/Tetrominoes_letter_oriented.png The seven possible Tetris pieces: I, T, O, L, J, S, and Z. (courtesy of Wikipedia) Snapshot of a Tetris game on right Courtesy Jason D. Clinton and Thomas H. P. Andersen. Used with permission. 3 4 button_reset button_up button_down button_left button_right Debouncer and Synchronizer reset_sync (global) up_sync down_sync left_sync right_sync pixel_clock (31.5 MHz) – to all modules labkit clock (27 MHz) DCM Signal Register clean_update coord_update game_update signal_reset speed [2] rotate drop left right Game Engine Unit (Contains Major and Minor FSMs) score disp_type i [6] [3] [5] Display Counter pixel_count [10] update_frame j [4] rgb [24] line_count [10] VGA VGA signals 5 drop_type [3] drop_type [3] Randomizer i0 [5] i1 [5] i2 [5] i3 [5] pixel_clock reset_sync rotate drop left right coord_update Minor FSM Dropping Piece j0 [4] j1 [4] j2 [4] j3 [4] pixel_clock reset_sync Major FSM Map Controller map [25][10][3] clean_update game_update score [6] i [5] j [4] disp_type [3] 6 Audio Processing Module Audio signal digitized by AC97 codec Sampled at 48khz, 18 bit resolution Fed through FFT module Triggers changes in block speed upon detection of certain frequency intensities 7 audio_data [realtime] Audio Supervisory FSM digitized_ audio_data AC97 Codec audio_freq_data [255] audio_intensity_data [255] reset_ clean [1] reset [1] Frequency Extractor Module Event Detector ac97_clock (12.288 MHz) labkit_clk (27 Mhz) [1] pixel_clk (31.5 Mhz) [1] DCM Laser Tetris Status Speed LEDs Output [2] [4] 8 Laser Projection Module Laser light shines onto a 10-sided spinning mirror head assembly Infrared pulses synchronize the display with the labkit Verilog code modulates the laser accordingly 9 display_pixel_data [250] Laser Supervisory FSM laser_img_data [250] seg_sync_clean [1] head_sync head_sync_clean[1] reset pixel_clk (31.5 Mhz) [1] Debouncer / Synchronizer seg_sync reset_clean [1] Image Feeder Laser Control FSM Laser Status LEDs [4] Laser Modulation Output [1] 10