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.
- 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
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.
| 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 |
Top Module
βββ UI FSM
βββ Time Core
βββ Alarm FSM
βββ Buzzer PWM
βββ Seven Segment Driver
βββ Debounce Synchronizer
βββ Clock Enable Generator
- System Reset
- Clock Initialization
- Normal Timekeeping
- User Configuration Mode
- Alarm Configuration
- Time Comparison
- Alarm Trigger Detection
- Buzzer Activation
- Snooze Handling
- Continuous Operation
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
- Mode Selection
- Time Configuration
- Alarm Configuration
- Snooze Management
- Seconds Counter
- Minutes Counter
- Hours Counter
- Counter Rollover Logic
- Alarm Time Matching
- Alarm State Management
- Alarm Trigger Generation
- PWM Signal Generation
- Alarm Sound Control
- Display Multiplexing
- Segment Encoding
- Real-Time Display Updates
| Tool | Purpose |
|---|---|
| Verilog HDL | RTL Design |
| Icarus Verilog | Simulation |
| GTKWave | Waveform Analysis |
| VS Code | Development Environment |
| Git & GitHub | Version Control |
iverilog -g2012 -o sim.out rtl/*.v tb/tb_top.svvvp sim.outgtkwave digital_clock.vcdObjective: Verify normal HH:MM:SS counting operation.
Result: PASS β
Objective: Verify 59 β 00 second rollover behavior.
Result: PASS β
Objective: Verify minute counter rollover and carry propagation.
Result: PASS β
Objective: Verify correct hour increment operation.
Result: PASS β
Objective: Verify transition from 23:59:59 to 00:00:00.
Result: PASS β
Objective: Verify alarm activation when current time matches programmed alarm time.
Result: PASS β
| 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 |
- 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
Detailed project documentation is available in:
- π docs/Architecture.md
- π docs/Verification.md
- π docs/FPGA_Implementation.md
- π reports/Digital_Clock_Project_Report.md
- Multiple Alarm Support
- Stopwatch Mode
- Countdown Timer
- RTC Integration
- UART Configuration Interface
- OLED/LCD Display Support
- Bluetooth Connectivity
- Mobile Application Integration
Vaishnava Devi
π GitHub: https://github.com/VaishnavaDevi-R
π LinkedIn: https://www.linkedin.com/in/vaishnava-devi-141142321/
π Instagram: https://www.instagram.com/_vaishforge_/
If you found this project useful:
β Star the repository
π΄ Fork the repository
π’ Share it with fellow VLSI and FPGA enthusiasts
This project is licensed under the MIT License.







