Spisu treści:

Podstawowy stoper z płytą VHDL i Basys3: 9 kroków
Podstawowy stoper z płytą VHDL i Basys3: 9 kroków

Wideo: Podstawowy stoper z płytą VHDL i Basys3: 9 kroków

Wideo: Podstawowy stoper z płytą VHDL i Basys3: 9 kroków
Wideo: Jak łowić na SPŁAWIK na JEZIORACH ? Budowa PROSTEGO ZESTAWU SPŁAWIKOWEGO - PORADNIK 2024, Lipiec
Anonim
Image
Image

Witamy w instrukcji, jak zbudować stoper przy użyciu podstawowej płytki VHDL i Basys 3. Cieszymy się, że możemy podzielić się z Tobą naszym projektem! To był ostatni projekt kursu CPE 133 (Digital Design) w Cal Poly, SLO jesienią 2016. Zbudowany przez nas projekt to prosty stoper, który uruchamia, resetuje i zatrzymuje czas. Jako wejścia przyjmuje trzy przyciski na płycie Basys3, a czas jest wyświetlany na czterocyfrowym siedmiosegmentowym wyświetlaczu płyty. Upływający czas jest wyświetlany w formacie sekund: centysekund. Wykorzystuje zegar systemowy płyty jako wejście do śledzenia upływu czasu i wyświetla czas w postaci czterech cyfr na siedmiosegmentowym wyświetlaczu.

Krok 1: Materiały

Ustawianie wejść i wyjść
Ustawianie wejść i wyjść

Materiały, których będziesz potrzebować do tego projektu:

  • 1 komputer z zainstalowanym pakietem Vivado Design Suite WebPack firmy Xilinx (preferowana wersja 2016.2)
  • 1 karta FPGA Digilent Basys3 Xilinx Artix-7
  • 1 kabel portu USB

Krok 2: Ustawianie wejść i wyjść

Powyższy rysunek przedstawia schemat blokowy najwyższego poziomu głównego modułu stopera. Stoper przyjmuje wejścia „CLK” (zegar), „S1” (przycisk start), „S2” (przycisk pauzy) i „RST” (reset) oraz posiada 4-bitowe wyjście „Anody”, 7-bitowe wyjście „segment” i jednobitowe wyjście „DP” (przecinek dziesiętny). Gdy wejście „S1” jest w stanie wysokim, stoper rozpoczyna odliczanie czasu. Gdy „S2” jest niskie, stoper zatrzymuje czas. Gdy „RST” jest wysokie, stoper zatrzymuje się i resetuje czas. W obwodzie znajdują się cztery podmoduły: dzielnik zegara, licznik cyfr, sterownik wyświetlacza siedmiosegmentowego i koder wyświetlacza siedmiosegmentowego. Główny moduł stopera łączy wszystkie podmoduły ze sobą oraz z wejściami i wyjściami.

Krok 3: Tworzenie zegarów

Robienie zegarów
Robienie zegarów

Moduł dzielnika zegara pobiera zegar systemowy i wykorzystuje wejście dzielnika do utworzenia zegara o dowolnej prędkości nie większej niż zegar systemowy. Stoper wykorzystuje dwa różne moduły zegarowe, jeden, który tworzy zegar 500 Hz, a drugi, który tworzy zegar 100 Hz. Schemat dzielnika zegara pokazano na powyższym rysunku. Dzielnik zegara przyjmuje jednobitowe wejście „CLK”, 32-bitowe wejście „Divisor” i jednobitowe wyjście „CLKOUT”. „CLK” to zegar systemowy, a „CLKOUT” to zegar wynikowy. Moduł zawiera również bramkę NOT, która przełącza sygnał „CLKTOG”, gdy licznik osiągnie wartość dzielnika.

Krok 4: Liczenie do dziesięciu

Liczenie do dziesięciu
Liczenie do dziesięciu

Licznik cyfr zlicza każdą cyfrę od 0 do 10 i tworzy kolejny zegar dla następnej cyfry, która oscyluje, gdy liczba osiągnie 10. Moduł przyjmuje 3 wejścia jednobitowe „S”, „RST” i „CLK” i daje jednobitowe wyjście „N” i 4-bitowe wyjście „D”. Wejście „S” to zezwolenie na wejściu. Zegar włącza się, gdy „S” jest wysokie i wyłącza, gdy „S” jest niskie. „RST” to wejście resetujące, więc zegar resetuje się, gdy „RST” jest wysoki. „CLK” to wejście zegara dla licznika cyfr. „N” to wyjście zegara, które staje się zegarem wejściowym dla następnej cyfry. Wyjście „D” przedstawia binarną wartość cyfry, na której znajduje się licznik.

Krok 5: Wyświetlanie liczb

Wyświetlanie liczb
Wyświetlanie liczb

Koder wyświetlacza siedmiosegmentowego zakoduje liczbę binarną otrzymaną z modułu sterownika wyświetlacza siedmiosegmentowego i zamieni ją w strumień bitów, które będą interpretowane jako wartości „1” lub „0” dla każdego segmentu wyświetlacza. Liczba binarna jest odbierana przez moduł jako 4-bitowa „cyfra” wejścia i powoduje powstanie 7-bitowych „segmentów” wyjścia. Moduł składa się z pojedynczego bloku przetwarzania przypadku, który przypisuje określony 7-bitowy strumień dla każdej możliwej wartości wejściowej od 0 do 9. Każdy bit w siedmiobitowych strumieniach reprezentuje jeden z siedmiu segmentów cyfr na wyświetlaczu. Kolejność segmentów w strumieniu to „abcdefg”, gdzie „0” oznaczają segmenty, które zapalają się dla podanej liczby.

Krok 6: Jak wyświetlić stoper

Jak wyświetlić stoper
Jak wyświetlić stoper

W siedmiosegmentowym module sterownika wyświetlacza znajdują się cztery 4-bitowe wejścia „D0”, „D1”, „D2” i „D3”, z których każde reprezentuje cztery wyświetlane cyfry. Wejście „CLK” to wejście zegara systemu. Wyjście jednobitowe „DP” przedstawia kropkę dziesiętną na wyświetlaczu siedmiosegmentowym. 4-bitowe wyjście „Anody” określa, która cyfra na siedmiosegmentowym wyświetlaczu jest pokazywana, a 4-bitowe wyjście „temp” zależy od stanu 2-bitowego wejścia sterującego „SEL”. Moduł wykorzystuje 4 multipleksery dla wejścia sterującego „SEL” i trzech wyjść; „Anody”, „temp” i „DP”.

Krok 7: Połącz wszystko razem

Do utworzenia przycisków startu i pauzy używany jest blok procesowy 'if' działający w oparciu o zegar 500Hz. Następnie połącz wszystkie submoduły razem w głównym module stopera, deklarując składowe każdego submodułu i używając różnych sygnałów. Cyfrowe podmoduły przejmują wyjście zegara poprzedniego podmodułu cyfrowego, przy czym pierwszy z nich przyjmuje zegar 100Hz. Wyjścia „D” podmodułów cyfrowych stają się następnie wejściami „D” modułu sterownika wyświetlacza siedmiosegmentowego. I wreszcie, wyjście „temp” modułu sterownika wyświetlacza siedmiosegmentowego staje się wejściem „temp” siedmiosegmentowego modułu enkodera.

Krok 8: Ograniczenia

Ograniczenia
Ograniczenia

Użyj 3 przycisków (W19, T17 i U18) dla wejść "RST", "S1" i "S2". W19 to przycisk resetowania, T17 to przycisk start (S1), a U18 to przycisk pauzy (S2). Wymagane jest również ograniczenie wejścia zegara przy użyciu portu W5. Pamiętaj też, aby dodać tę linię do ograniczenia zegara:

create_clock -add -name sys_clk_pin -okres 10.00 -przebieg {0 5} [get_ports {CLK}]

Połącz również anody i segmenty z płytką, aby stoper był wyświetlany na wyświetlaczu siedmiosegmentowym, jak widać w pliku ograniczeń.

Krok 9: Testowanie

Testowanie
Testowanie

Upewnij się, że Twoje urządzenie działa, bawiąc się trzema przyciskami: naciskając i przytrzymując je w każdej możliwej kolejności, aby znaleźć ewentualne problemy z kodem.

Zalecana: