Kanto: FPGA Audio Player and Visualizer Kavita Jain-Cocks Zhehao - - PowerPoint PPT Presentation

kanto fpga audio player and visualizer
SMART_READER_LITE
LIVE PREVIEW

Kanto: FPGA Audio Player and Visualizer Kavita Jain-Cocks Zhehao - - PowerPoint PPT Presentation

Kanto: FPGA Audio Player and Visualizer Kavita Jain-Cocks Zhehao Mao Amrita Mazumdar Darien Nurse Jonathan Yu May 16, 2013 Project Overview Objective: Design and implement an audio player with frequency visualization. Hardware:


slide-1
SLIDE 1

Kanto: FPGA Audio Player and Visualizer

Kavita Jain-Cocks Zhehao Mao Amrita Mazumdar Darien Nurse Jonathan Yu May 16, 2013

slide-2
SLIDE 2

Project Overview

◮ Objective: Design and implement an audio player with

frequency visualization.

◮ Hardware: Handles audio output and frequency visualization ◮ Software: Handles user interaction and system initialization

slide-3
SLIDE 3

High-Level Overview

NIOS II VGA Display Avalon Visualizer FFT SD Card Controller Audio Buffer Speaker Output PLL Conductor SD Card SD Buffer everywhere PS2 Keyboard

slide-4
SLIDE 4

SD Controller

CMD0 CMD8 illegal? Error ACMD41 ready? CMD58 Ready CMD17 no yes yes no start? yes no

slide-5
SLIDE 5

Audio Buffer

Audio RAM WM8731 Interface From SD Card To Audio Codec

slide-6
SLIDE 6

FFT Equations

Xk =

N−1

  • n=0

xne− 2πj

N nk

(1) Xk =

  • Ek + e− 2πj

N kOk

if k < N/2 Ek−N/2 − e− 2πj

N (k−N/2)Ok−N/2

if k ≥ N/2. (2)

slide-7
SLIDE 7

FFT Top-Level

DFT DFT Recomb Time Domain RAM MUX MUX Frequency Domain RAM Controller Recomb ROM-32 Recomb ROM-64 Recomb ROM-128 Recomb ROM-16 MUX DFT ROM

slide-8
SLIDE 8

DFT Unit

  • u

t p u t n +1 ROM x x + +

Sum

k +1 F S M c

  • n

t r

  • l

l e r i n p u t

slide-9
SLIDE 9

Recombination Unit

ROM +1 Complex Add Complex Subtract N write addr low high Frequency Domain RAM = FSM k write done Complex Mult even

  • dd
slide-10
SLIDE 10

Complex Multiplier

ax bx ay by x x x x

ax * ay bx * by ay * bx

  • +

ax * by

az bz

slide-11
SLIDE 11

Visualizer

data 31:0 clk_50 clk_25 red green blue data_req_addr reset_data FSM Data Array of size 16 19:0 Draw to VGA

slide-12
SLIDE 12

Conductor

initial cpuctrl trigger_sd wait_sd resume playing fft_end block_end sd_ready = 1 / fft_counter <= 11 nios_play = 1 / blockaddr++ nios_readblock = 1 / blockaddr <= nios_addr sd_ready = 1 / ~ nios_play = 0 / ~ ab_swapped = 1 / fft_counter++ blockaddr++ fft_done_last = 0 fft_done = 1 / ~ ~ / fft_counter <= 00 ~ / ~ ~ / ~ ~ / ~

slide-13
SLIDE 13

Software — Track Selection

Track 1 Address Track 1 Title track_table[0] track_titles[0] track_table[1] track_titles[1] Track 1 Address Track 1 Title Audio End track_table[N]

slide-14
SLIDE 14

The Hard Parts

◮ Interfacing to external hardware (SD card, audio codec,

visualizer)

◮ Reducing Hardware Usage ◮ Timing Issues

slide-15
SLIDE 15

Design Changes

◮ Removal of SRAM ◮ Adding Software Control ◮ Display Changes

slide-16
SLIDE 16

Lessons Learned

◮ Connect components early ◮ Implement modularized design ◮ Testbench everything ◮ Clearly define milestones ◮ Communicate often and clearly with each other and the adviser