Prosty stoper

Zadanie: Układ ma mierzyć czas z dokładnością do setnych części sekundy. Kolejne naciśnięcia przycisku BTNC (start_stop_button_i) wywołują następujące działanie:


Rys.1  Działanie stopera po kolejnych naciśnięciach przycisku.

Czas wyświetlany ma być na wyświetlaczu LED w postaci: SS.DD, gdzie: SS=sekundy, DD=setne części sekundy. Przekroczenie czasu 59.99 sekund należy zasygnalizować wyświetleniem specjalnego symbolu oznaczającego przepełnienie, np. ("--.--").

Przycisk BTNR (rst_i) to dodatkowy reset asynchroniczny (powinien zresetować stoper – wyświetlić „00.00” i oczekiwać na start).

Uwaga: Układ należy zabezpieczyć przed drganiami przycisku BTNC. Dobrze jest założyć, że po naciśnięciu przycisku jego styki mogą drgać jeszcze przez około 50 ms.

 

Rys.2  Przykładowy przebieg napięcia podczas naciskania przycisku.

 

W układzie należy osadzić, jako component, blok sterowania wyświetlaczem z poprzedniego ćwiczenia.

 

Należy wykonać symulację funkcjonalną oraz zweryfikować układ praktycznie poprzez zaprogramowanie płytki testowej.

 

Minimalne wymagania dotyczące symulacji i weryfikacji na płytce: wykonać symulację i weryfikację tak, aby pokazać start, zatrzymanie (dla weryfikacji po dowolnym czasie – dla symulacji powinien to być czas równy 1,xy sekund; gdzie xy to dwie ostatnie cyfry numeru indeksu studenta lub jednego ze studentów zaliczających ćwiczenie) oraz reset stopera (za pomocą start_stop_button_i). Weryfikacja na płytce powinna także zademonstrować przepełnienie i kasowanie przepełnienia (za pomocą start_stop_button_i). Na zakończenie weryfikacji pokazać działanie wejścia resetu asynchronicznego (rst_i) podczas pracy stopera. Częstotliwość zegara w symulacji – 100 MHz.

 

Fragment głównego pliku projektowego VHDL z deklaracją sygnałów:

 

entity top is

    Port ( clk_i : in STD_LOGIC;

           rst_i : in STD_LOGIC;

           start_stop_button_i : in STD_LOGIC;

           led7_an_o : out STD_LOGIC_VECTOR (3 downto 0);

           led7_seg_o : out STD_LOGIC_VECTOR (7 downto 0));

end top;

 


Plik z ograniczeniami projektowymi dla płytki Basys 3 (układ FPGA xc7a35tcpg236-1):  iup7.xdc