Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1 Commit
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

⏰ VLSI Digital Clock With Alarm Functionality

Project Banner


πŸ“– Overview

The VLSI Digital Clock With Alarm Functionality is a Verilog HDL-based RTL design that implements a real-time digital clock with configurable alarm support, snooze control, PWM-based buzzer generation, and seven-segment display interfacing.

The project demonstrates essential VLSI and FPGA design concepts including hierarchical RTL development, finite state machine (FSM) design, digital counters, alarm scheduling, display multiplexing, and functional verification through simulation.

The architecture follows a modular design methodology, making it scalable, reusable, and suitable for FPGA implementation and academic RTL design projects.


✨ Features

  • Real-Time HH:MM:SS Timekeeping
  • 24-Hour Clock Format
  • Alarm Scheduling and Activation
  • Snooze Functionality
  • PWM-Based Buzzer Control
  • Seven-Segment Display Interface
  • Modular RTL Architecture
  • FSM-Based User Control Logic
  • Self-Checking Verification Environment
  • GTKWave Waveform Analysis
  • FPGA-Oriented Design Methodology

πŸ—οΈ System Architecture

The Digital Clock with Alarm Functionality follows a modular RTL architecture consisting of multiple interconnected modules responsible for timekeeping, user interaction, alarm management, display control, and buzzer generation.

Major Modules

Module Description
UI FSM Handles user interaction and mode selection
Time Core Maintains hour, minute, and second counters
Alarm FSM Performs alarm comparison and activation
Buzzer PWM Generates PWM output for alarm indication
Seven Segment Driver Controls multiplexed display output
Debounce Synchronizer Filters mechanical button noise
Clock Enable Generator Produces timing pulses

Design Hierarchy

Top Module
β”œβ”€β”€ UI FSM
β”œβ”€β”€ Time Core
β”œβ”€β”€ Alarm FSM
β”œβ”€β”€ Buzzer PWM
β”œβ”€β”€ Seven Segment Driver
β”œβ”€β”€ Debounce Synchronizer
└── Clock Enable Generator

πŸ”„ System Flow

System Flow Diagram

Operational Flow

  1. System Reset
  2. Clock Initialization
  3. Normal Timekeeping
  4. User Configuration Mode
  5. Alarm Configuration
  6. Time Comparison
  7. Alarm Trigger Detection
  8. Buzzer Activation
  9. Snooze Handling
  10. Continuous Operation

πŸ“‚ Repository Structure

VLSI-Digital-Clock-With-Alarm-Functionality/
β”‚
β”œβ”€β”€ docs/
β”‚   β”œβ”€β”€ Architecture.md
β”‚   β”œβ”€β”€ FPGA_Implementation.md
β”‚   └── Verification.md
β”‚
β”œβ”€β”€ images/
β”‚   β”œβ”€β”€ project_banner.png
β”‚   └── system_flow.png
β”‚
β”œβ”€β”€ reports/
β”‚   └── Digital_Clock_Project_Report.md
β”‚
β”œβ”€β”€ rtl/
β”‚   β”œβ”€β”€ alarm_fsm.v
β”‚   β”œβ”€β”€ buzzer_pwm.v
β”‚   β”œβ”€β”€ clk_enable.v
β”‚   β”œβ”€β”€ debounce_sync.v
β”‚   β”œβ”€β”€ seg_mux.v
β”‚   β”œβ”€β”€ time_core.v
β”‚   β”œβ”€β”€ top.v
β”‚   └── ui_fsm.v
β”‚
β”œβ”€β”€ tb/
β”‚   β”œβ”€β”€ assertions.sv
β”‚   └── tb_top.sv
β”‚
β”œβ”€β”€ waveforms/
β”‚   β”œβ”€β”€ 01_timekeeping_engine.png
β”‚   β”œβ”€β”€ 02_seconds_rollover.png
β”‚   β”œβ”€β”€ 03_minute_rollover.png
β”‚   β”œβ”€β”€ 04_hour_rollover.png
β”‚   β”œβ”€β”€ 05_day_rollover.png
β”‚   └── 06_alarm_trigger.png
β”‚
β”œβ”€β”€ README.md
β”œβ”€β”€ LICENSE
└── .gitignore

🧩 RTL Modules

πŸ”Ή UI FSM

  • Mode Selection
  • Time Configuration
  • Alarm Configuration
  • Snooze Management

πŸ”Ή Time Core

  • Seconds Counter
  • Minutes Counter
  • Hours Counter
  • Counter Rollover Logic

πŸ”Ή Alarm FSM

  • Alarm Time Matching
  • Alarm State Management
  • Alarm Trigger Generation

πŸ”Ή Buzzer PWM

  • PWM Signal Generation
  • Alarm Sound Control

πŸ”Ή Seven Segment Driver

  • Display Multiplexing
  • Segment Encoding
  • Real-Time Display Updates

πŸ› οΈ Tools Used

Tool Purpose
Verilog HDL RTL Design
Icarus Verilog Simulation
GTKWave Waveform Analysis
VS Code Development Environment
Git & GitHub Version Control

▢️ Simulation Flow

Compile Design

iverilog -g2012 -o sim.out rtl/*.v tb/tb_top.sv

Run Simulation

vvp sim.out

Open Waveforms

gtkwave digital_clock.vcd

πŸ“Š Verification Results

1️⃣ Timekeeping Engine Verification

Objective: Verify normal HH:MM:SS counting operation.

Result: PASS βœ…


2️⃣ Seconds Rollover Verification

Objective: Verify 59 β†’ 00 second rollover behavior.

Result: PASS βœ…


3️⃣ Minute Rollover Verification

Objective: Verify minute counter rollover and carry propagation.

Result: PASS βœ…


4️⃣ Hour Rollover Verification

Objective: Verify correct hour increment operation.

Result: PASS βœ…


5️⃣ Day Rollover Verification

Objective: Verify transition from 23:59:59 to 00:00:00.

Result: PASS βœ…


6️⃣ Alarm Trigger Verification

Objective: Verify alarm activation when current time matches programmed alarm time.

Result: PASS βœ…


πŸ“ˆ Verification Summary

Test Case Description Status
TC-01 Timekeeping Engine βœ… PASS
TC-02 Seconds Rollover βœ… PASS
TC-03 Minute Rollover βœ… PASS
TC-04 Hour Rollover βœ… PASS
TC-05 Day Rollover βœ… PASS
TC-06 Alarm Trigger Verification βœ… PASS

🎯 Key Design Highlights

  • Hierarchical RTL Architecture
  • FSM-Based Control Logic
  • Counter-Based Timekeeping Engine
  • Alarm Scheduling and Triggering
  • PWM-Based Buzzer Generation
  • Seven-Segment Display Multiplexing
  • Modular and Reusable RTL Components
  • Comprehensive Verification Methodology
  • FPGA Deployment Ready

πŸ“š Documentation

Detailed project documentation is available in:

  • πŸ“„ docs/Architecture.md
  • πŸ“„ docs/Verification.md
  • πŸ“„ docs/FPGA_Implementation.md
  • πŸ“„ reports/Digital_Clock_Project_Report.md

πŸš€ Future Enhancements

  • Multiple Alarm Support
  • Stopwatch Mode
  • Countdown Timer
  • RTC Integration
  • UART Configuration Interface
  • OLED/LCD Display Support
  • Bluetooth Connectivity
  • Mobile Application Integration

πŸ‘©β€πŸ’» Author

Vaishnava Devi

Connect With Me

πŸ”— GitHub: https://github.com/VaishnavaDevi-R

πŸ”— LinkedIn: https://www.linkedin.com/in/vaishnava-devi-141142321/

πŸ”— Instagram: https://www.instagram.com/_vaishforge_/


🌟 Support

If you found this project useful:

⭐ Star the repository

🍴 Fork the repository

πŸ“’ Share it with fellow VLSI and FPGA enthusiasts


πŸ“œ License

This project is licensed under the MIT License.

About

Parameterizable VLSI-Based Digital Clock with Alarm Functionality featuring real-time HH:MM:SS timekeeping, alarm scheduling, snooze support, 12/24-hour operation, debounced inputs, FSM-driven control architecture, seven-segment display interfacing, comprehensive waveform verification, and FPGA-ready RTL development workflow.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages