Its a simple FSM with 3 states (Idle, Waiting and Alarm) and counters regarding clk_cycles, seconds and minutes...
Set the clock to 10kHz, set the wait time you want (in minutes) by setting io_in[7:3], set the start switch to 1, the timer should be running, the dot of the 7segment display should toggle each second. If the time is expired, an A for alarm should be displayed. You can stop the alarm by setting the start switch to 0 again.
no external hw requrired
| # | Input | Output |
|---|---|---|
| 0 | clock | segment a |
| 1 | reset | segment b |
| 2 | start | segment c |
| 3 | wait time in minutes [0] | segment d |
| 4 | wait time in minutes [1] | segment e |
| 5 | wait time in minutes [2] | segment f |
| 6 | wait time in minutes [3] | segment g |
| 7 | wait time in minutes [4] | dot |