
Explore FPGA design with VHDL by building an alarm clock, covering processes, counters, multiplexers, combinational and sequential circuits. Interface a four-digit seven-segment display and buzzer, simulate, and test on board.
Design alarm clock on FPGA with VHDL by defining objective and requirements and translating them into a technical specification for set clock, set alarm, buzzer, and four-digit seven-segment display modes.
The lecture lists tools and hardware for the fpga alarm clock, including iac 14.7 for synthesis, modelsim for simulation, and v2 fpga board with a four-digit seven-segment display and buzzer.
Wire a Spartan-6 FPGA board for a simple alarm clock using three switches, a reset button, and a four-digit seven-segment display with a buzzer, detailing the pin usage and connections.
Drive a buzzer with an FPGA using PWM to generate tones. The demonstration uses a 1-second period, 0.5 seconds on/off, and a 20 ms tone to mimic an alarm clock.
Explore the four digit seven segment display and its multiplexed control using an external peripheral, highlighting common cathode configuration, selector pins, and lighting segments A to J and the dot.
connect a four-digit seven-segment display to an fpga via a breadboard to prototype without soldering, using i/o pins and a constraints file to map signals.
Analyze the input/output ports of the alarm clock design, focusing on clock and negative reset, set time/alarm signals, push-button inputs, and seven-segment, digit selector, buzzer outputs.
Implement debounced button input by registering the input multiple times with a slow clock to produce a single-cycle pulse, removing bounce and metastability so increments and decrements respond reliably.
Learn how a 100 MHz clock feeds a clock divider that generates one second, 500 ms, and 10 ms pulses using five 32-bit counters for buzzer, display, and demonstration.
Examine how a single sequential process drives the current time counters (seconds, minutes, hours). Include the alarm counter, debounced push buttons, and wrap-around for hours and minutes.
Convert binary to bcd to display decimal digits on digital clocks and calculators, using a six-bit input and two four-bit digits per hour and minute via a shift-and-add-three double-dabble approach.
Explains the buzzer controller at the alarm clock top level, triggering a 10-second buzzer when the current time matches the alarm time, using buzzer state, pulse enable, and pulse tone.
Control a four-digit seven-segment display with a multiplexed eight-segment bus and four-bit selector, cycling digits 0–3 using a bcd to seven-seg decoder, with 2.5 ms timing.
Design an alarm clock in VHDL by wiring a clock divider, debounce modules, binary-to-bcd converters, and a seven-segment display, enabling current or alarm time display, increment/decrement functionality, and buzzer control.
Build and run a VHDL testbench to visualize alarm clock signals in simulation, including clock, reset, debounce, and current time versus alarm time displayed via binary-to-bcd seven-segment outputs.
Synthesize the alarm clock design for the FPGA, place gates, and route connections. Map inputs and outputs to physical pins using a manufacturer reference constraint file.
Create and configure an FPGA project in ISC Project Navigator, selecting the correct target device and constraint file. Generate the bitstream and program the FPGA, noting a preference for Vivado.
Demonstrates an FPGA-based alarm clock in VHDL, showing time counting, display, alarm activation, and internal time keeps counting while configuring alarms with switches.
Celebrate completing the course as the alarm clock project demonstrates digital design and hardware design concepts.
This course is designed to immerse you in the world of hardware engineering. The course will guide you through the process of converting requirements and needs into practical and efficient designs. You will explore the basic concepts of digital circuits and VHDL coding rules and syntax. Furthermore, the course will cover the use of constraints files, synthesis and simulation of HDL designs, enabling you to verify the correctness of your circuits before physical implementation. By the end of the course, you will have a comprehensive skill set to design, implement, and test digital systems.
To achieve all of the above, we will design in VHDL an Alarm Clock on FPGA. One external 4 digits 7-segments display will be connected to the FPGA via wires to display the time in HH:MM format. This is ideal to learn about FPGA PMODs and IO pins. The design will allow the user thanks to switches to set either the current time or the alarm. In "SET" mode, the configuration of the clock and alarm will be done by pressing push buttons to either increment minutes or hours. When the current time reaches the configured alarm set by user, a buzzer connected to FPGA will buzz for one minute.
By the end of the course, students will have the practical skills and experience required to design, implement, and verify their own fully functional digital alarm clock system on an FPGA, providing a solid foundation for further FPGA and digital design projects.