Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
FPGA Piano
Rating: 5.0 out of 5(1 rating)
15 students

FPGA Piano

analysis, coding, simulation and run on board
Created byHUI HU
Last updated 11/2022
English

What you'll learn

  • FPGA coding and debug skill
  • FPGA system analysis skill
  • FPGA key press processing skill by using different solutions
  • FPGA audio tone generate skill
  • How to drive buzzer by FPGA
  • How to drive led by FPGA

Course content

1 section19 lectures4h 58m total length
  • System Target3:12

    Explore the FPGA piano system target, a seven-key FPGA board with a buzzer that plays notes when keys are pressed and supports simultaneous input, with a future speaker upgrade.

  • Make Buzzer Buzzing26:28

    This lecture explains selecting a passive buzzer for an FPGA piano, and demonstrates how a 50 megahertz clock is divided to make buzzing tones, tested with ModelSim and wiring.

  • System Analysis10:02

    Analyze the FPGA piano system architecture, outlining the buzzer, key, and led modules and their gpi/gpo interfaces. Describe how clock and reset signals synchronize key presses, releases, and tone playback.

  • Buzzer Module Status Machine6:33

    Explore the buzzer module status machine for the FPGA piano, detailing idle and pressed states, key-driven buzzer control, and a clock divider that generates distinct frequencies for different keys.

  • Buzzer Module Coding22:28

    Develop a buzzer module by implementing a clock divider and a two-state buzzer controller driven by seven key inputs to generate frequencies.

  • Buzzer Module Simulation24:56

    This lecture guides you through building a buzzer test bench, configuring a 50 megahertz clock (20 ns), defining key signals, and simulating key presses and releases to verify frequency outputs.

  • Key Module Status Machine11:33

    Explore a seven-key status machine in an FPGA piano that reads key values from the key GPL interface, uses 3.3 V pull-ups, and models idle, field zero, and press/release transitions.

  • One Key Module Coding37:29

    Design and implement a one key module for the FPGA piano, using a clocked state machine with idle, field, and done states, and synchronized age signals and a 20-minute timer.

  • One Key Module Simulation24:42

    Design and simulate a one key module for the FPGA piano with a test bench, defining timescale, clock generation, and GPIO signals, including bouncing and on/off outputs.

  • Key Module Solution1 Coding15:10

    Develop and test a seven-key FPGA module (keys zero to six) that decodes the key value and outputs key-on and key-off signals with a single always block and case statement.

  • Key Module Solution1 Simultion19:42

    Explore the key module solution simulation, defining timescale, clock, and interface signals, and validate key on, key off, and key release through a test bench.

  • Key Module Solution2 Coding17:15

    Modify the key module to form key module two from solution one, update seven-bit inputs, and implement a decode task in Visual Studio Code to interpret key presses.

  • Key Module Solution2 Simulation10:15

    Explore key module solution 2 simulation using a test bench, configure clock and reset signals, analyze key press and release, compare with solution 1, and set up a ModelSim project.

  • LED Module Status Machine3:45

    Explore a simple LED module status finite state machine with an LCD interface, handling key on/off signals and transitions between idle, pressed, and release states.

  • LED Module Coding10:57

    Set up a verilog led module in an fpga project using visual studio code, define clock and reset, and implement a simple finite state machine with idle and active states.

  • LED Module Simulation17:16

    Simulate the led module using a test bench, define timescale and clock, implement a reset and key-press signals, and verify clocked signal transitions during timed presses.

  • Top Module Coding11:25

    Learn to implement the FPGA piano top module by defining the interface, clock and reset, building the key module with input/output signals, and setting up a test bench.

  • Top Module Simulation11:12

    Explore top module simulation for the FPGA piano by building a key module test bench to verify clocks, resets, key events, and generated tone frequencies.

  • Run on Board14:30

Requirements

  • basic FPGA knowledge

Description

Audio processing is one very important subject of the FPGA application. I like to start with this “FPGA Piano” project. For this project, I specially design one FPGA daughter board. On this board, it has one buzzer, seven keys and one LED. If we press anyone of the keys, the LED will turn on and the buzzer will play one of the piano tone: do, re, mi, fa, so, la ti. If you play it according certain rhythm, you can play a simple song. In the end of the series, we demo how to play one “twinkle, twinkle, little star” song. It can be a very simple version of “electrical piano”. It is a very fun project.


For the software, it includes four main modules: buzzer module, key module, led module and top module. I type every piece of code from scratch and analyze the whole system from the whole picture in every detail. Also, I simulate every module of the system and demo how to fix the bugs in the software. You can not only learn the coding skill and also the debug technique, also you can learn how to begin one new system design from the very beginning, how to match the software interfaces with the hardware design, achieve the system requirement.

Who this course is for:

  • FPGA learner