Strona główna
|
Katedra Systemów Mikroelektronicznych,
Wydział Elektroniki,
Telekomunikacji i Informatyki, Politechnika Gdańska
|
|
Zegar czasu rzeczywistego
Zadanie: Zaprojektować i wykonać układ zegara
czasu rzeczywistego, wyświetlającego czas w postaci : HH.MM. Kropka powinna
migać z częstotliwością 1 Hz.
- Przycisk BTN1 - ustawianie godzin.
- Przycisk BTN0 - ustawianie minut.
- Przycisk BTN2 - przycisk testowy, powodujący przyspieszone (np. 1000 razy) działanie zegara
w celu sprawdzenia działania zegara na laboratorium.
- Przycisk BTN3 - reset asynchroniczny.
Uwaga: Układ należy zabezpieczyć przed drganiami przycisków (nie dotyczy BTN3)! Założyć, że
po naciśnięciu przycisku, styki przycisku mogą drgać przez czas do 50 ms.
Napisać testbench.
Przed implementacją wykonać symulację układu z wykorzystaniem pliku testbench.
Plik ucf do zadania, płytka Digilent Spartan-3, układ Spartan-3 3S200 FT256-4:
#########################################################################################
# Clock:
NET "clk_i" LOC = "T9" ; # 50 MHz clock
#########################################################################################
#########################################################################################
NET "led7_an_o<3>" LOC = "E13" ; # leftmost digit, active low
NET "led7_an_o<2>" LOC = "F14" ; # active low
NET "led7_an_o<1>" LOC = "G14" ; # active low
NET "led7_an_o<0>" LOC = "d14" ; # rightmost digit, active low
#
NET "led7_seg_o<7>" LOC = "E14" ; # segment 'a', active low
NET "led7_seg_o<6>" LOC = "G13" ; # segment 'b', active low
NET "led7_seg_o<5>" LOC = "N15" ; # segment 'c', active low
NET "led7_seg_o<4>" LOC = "P15" ; # segment 'd', active low
NET "led7_seg_o<3>" LOC = "R16" ; # segment 'e', active low
NET "led7_seg_o<2>" LOC = "F13" ; # segment 'f', active low
NET "led7_seg_o<1>" LOC = "N16" ; # segment 'g', active low
NET "led7_seg_o<0>" LOC = "P16" ; # segment 'dp', active low
#########################################################################################
#########################################################################################
# Push-buttons:
# @ @ @ @
# btn3 btn2 btn1 btn0
NET "btn_i<0>" LOC = "M13" ; # active high
NET "btn_i<1>" LOC = "M14" ; # active high
NET "btn_i<2>" LOC = "L13" ; # active high
NET "btn_i<3>" LOC = "L14" ; # active high
#########################################################################################

Rys. 1 Opis podłączeń poszczególnych segmentów wyświetlacza.
Przykład wyświetlenia cyfry '2'