This project is a Verilog implementation of a digital alarm clock. It includes multiple modules working together to provide time display, alarm functionality, and time setting capabilities. The clock is designed to show current time on a basic LCD display, sound an alarm when the set time is reached, and allow the user to set both the current time and alarm time using specific buttons.
The project is structured into six main modules:
- Timer Generator: Manages the timing signals and generates clock pulses.
- Alarm Controller: Handles the alarm settings and triggers the alarm sound.
- Key Register: Registers and processes input from the key button.
- Counter: Counts time and manages the display of hours and minutes.
- Alarm Register: Stores and manages the alarm time.
- Display Driver: Controls the LCD display to show time and alarm settings.
- clk: Clock signal.
- reset: Resets the clock and alarm settings.
- stopwatch: Activates stopwatch mode.
- alarm button: Sets or toggles the alarm time.
- time button: Sets or toggles the current time.
- key: Used to input time values.
- sound: Buzzer sound output when the alarm time is reached.
- LCD Display:
- 1st LCD segment: Most Significant Hour (MS_Hour)
- 2nd LCD segment: Least Significant Hour (LS_Hour)
- 3rd LCD segment: Most Significant Minute (MS_Minute)
- 4th LCD segment: Least Significant Minute (LS_Minute)
The digital alarm clock performs several functions:
- Displaying Current Time: Shows the current time on the LCD display.
- Alarm Functionality: Activates a buzzer sound when the current time matches the alarm time.
- Time and Alarm Setting: Allows users to set the current time and alarm time.
- Display Time: The current time is continuously displayed on the LCD.
- Set Time:
- Press the
time button. - Use the
keyto input the desired time value.
- Press the
- Set Alarm:
- Press the
alarm button. - Use the
keyto input the desired alarm time.
- Press the
- Activate Stopwatch: Press the
stopwatchbutton to start the stopwatch mode.
- Clone the Repository:
git clone https://github.com/username/digital-alarm-clock.git
- Navigate to the Project Directory:
cd digital-alarm-clock - Compile and Simulate:
- Use a Verilog simulator like ModelSim or XSIM to compile and simulate the design.
Contributions are welcome! To contribute to this project:
- Fork the repository.
- Create a new branch:
git checkout -b feature/your-feature-name
- Make your changes.
- Commit your changes:
git commit -am 'Add new feature' - Push to the branch:
git push origin feature/your-feature-name
- Create a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
For questions or feedback, please contact:
- Email: pramothGIT@gmail.com
- GitHub: PRAMOTHs-Repository
