Zadanie 2: Stoper

Data ogłoszenia: 24.10.2018

Termin oddania: 05.12.2018

Napisać prosty stoper.

Stoper wyświetla aktualny stan (liczbę dziesiętną 0-9999) na wyświetlaczu 7-segmentowym. Po uruchomieniu, stoper ma pokazywać 0 i być zatrzymany. Przyciski mają następujące funkcje:

  • btn[3]: resetuje stoper do stanu początkowego.

  • btn[2]: zatrzymuje stoper.

  • btn[1]: uruchamia stoper w trybie odliczania w górę.

  • btn[0]: uruchamia stoper w trybie odliczania w dół.

Gdy stoper jest uruchomiony, przełączniki sw[4:0] wybierają szybkość odliczania: stoper powinien zwiększać lub zmniejszać swój licznik o 1 z częstotliwością oscylator / 2 ** sw[4:0]. Przełącznik sw[7] wybiera źródło sygnału zegarowego: przełączony w dół wybiera zegar mclk (oscylator 50MHz na płytce), a przełączony w górę wybiera zegar uclk (oscylator zewnętrzny włożony w gniazdko).

Jeśli stoper jest w trybie odliczania w dół i jego obecną wartością licznika jest 0, powinien się zatrzymać. Analogicznie powinien się zatrzymać, jeśli wartością licznika jest 9999 i jest w trybie odliczania w górę.

Diody powinny wyświetlać następujące informacje kontrolne:

  • led[0]: świeci, jeśli stoper jest w trybie odliczania w dół.

  • led[1]: świeci, jeśli stoper jest w trybie odliczania w górę.

  • led[2]: świeci, jeśli odliczanie zatrzymało się przez osiągnięcie minimalnej bądź maksymalnej wartości licznika (naciśnięcie któregokolwiek przycisku powinno wyczyścić ten stan).

Należy pamiętać o zastosowaniu synchronizatorów na wejściach od użytkownika i odpowiedniego modułu do przełączania sygnału zegarowego.