|   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'