Spisu treści:

CPE 133 Ostateczny projekt dziesiętny na binarny: 5 kroków
CPE 133 Ostateczny projekt dziesiętny na binarny: 5 kroków

Wideo: CPE 133 Ostateczny projekt dziesiętny na binarny: 5 kroków

Wideo: CPE 133 Ostateczny projekt dziesiętny na binarny: 5 kroków
Wideo: CPE 133 Final Project 2024, Listopad
Anonim
CPE 133 Ostateczny projekt dziesiętny na binarny
CPE 133 Ostateczny projekt dziesiętny na binarny

Liczby binarne to jedna z pierwszych rzeczy, które przychodzą na myśl, gdy myślimy o logice cyfrowej. Jednak liczby binarne mogą być trudną koncepcją dla nowych.

Ten projekt pomoże tym, którzy są zarówno nowi, jak i doświadczeni z liczbami binarnymi, w opanowaniu konwersji liczb dziesiętnych. Tworząc grę przetestujemy użytkowników pod kątem ich umiejętności konwersji. Ta gra zostanie uruchomiona na płycie Basys3 i zaprogramowana w Verilog.

Krok 1: Potrzebne materiały

Potrzebne materiały
Potrzebne materiały

Do przekształcenia tej gry z konwersją dziesiętną na binarną potrzebne są następujące materiały:

  • Oprogramowanie Xilinx Vivado Design Suite
  • Płyta FPGA Digilent Basys3
  • Kabel USB do Micro USB

Krok 2: Konfiguracja LFSR (rejestr przesuwu z liniowym sprzężeniem zwrotnym)

Konfiguracja LFSR (rejestr przesuwu z liniowym sprzężeniem zwrotnym)
Konfiguracja LFSR (rejestr przesuwu z liniowym sprzężeniem zwrotnym)
Konfiguracja LFSR (rejestr przesuwu z liniowym sprzężeniem zwrotnym)
Konfiguracja LFSR (rejestr przesuwu z liniowym sprzężeniem zwrotnym)

LFSR (Linear Feedback Shift Register) to moduł służący do generowania liczb „losowych”.

LFSR nie jest całkowicie losowy, ponieważ generuje liczby pseudolosowe, co jest procesem generowania liczb, które wydają się losowe, ale nie są.

LFSR to rejestr przesuwny, którego bit wejściowy jest funkcją liniową poprzedniego stanu, co oznacza, że LFSR będzie przechodził przez skończone liczby. Specjalnie dla tej gry LFSR użyje tylko 8 bitów, aby ograniczyć liczbę dziesiętną, którą może wygenerować, do 255.

Przycisk L (btnL) służy do resetowania numeru na LFSR.

Ten moduł LFSR nie został stworzony przez twórców tej gry. Moduł LFSR został stworzony przez profesora Uniwersytetu Carleton, Johna Knighta. Link do jego modułu znajduje się poniżej.

www.doe.carleton.ca/~jknight/97.478/97.478_…

Krok 3: Konfiguracja wyświetlacza siedmiosegmentowego

Konfigurowanie wyświetlacza siedmiosegmentowego
Konfigurowanie wyświetlacza siedmiosegmentowego

Wyświetlacz siedmiosegmentowy jest używany na płycie Basys3 i wielu innych elementach sprzętu do wyświetlania znaków alfanumerycznych.

Moduł wyświetlacza siedmiosegmentowego, który jest używany w tej grze, konwertuje liczbę binarną na liczbę dziesiętną i wyświetla ją jako liczbę dziesiętną.

Wykorzystując wcześniej omówiony moduł LFSR, losowo wygenerowana liczba zostanie wyprowadzona na wyświetlacz siedmiosegmentowy.

Moduł wyświetlacza siedmiosegmentowego nie został stworzony przez twórców tej gry. Moduł wyświetlacza siedmiosegmentowego został dostarczony przez profesora California Polytechnic State University, Josepha Callenesa-Sloana. Plik pdf modułu znajduje się poniżej.

Krok 4: Tworzenie modułu gry

Tworzenie modułu gry
Tworzenie modułu gry
Tworzenie modułu gry
Tworzenie modułu gry
Tworzenie modułu gry
Tworzenie modułu gry
Tworzenie modułu gry
Tworzenie modułu gry

Tworzenie gry (główny) moduł.

Ten moduł użyje modułu LFSR do wygenerowania liczby losowej, a następnie wyśle ją na wyświetlacz siedmiosegmentowy.

Następnie moduł używa bloku zawsze, który resetuje liczbę losową. Działa to na dodatniej krawędzi przycisku R (btnR), co oznacza, że będzie działać tylko po naciśnięciu przycisku R.

Drugi blok zawsze działa na dodatnim zboczu zegara (clk). Jeśli przycisk C (btnC) zostanie naciśnięty, sprawdzi się, czy numer na wyświetlaczu siedmiosegmentowym jest taki sam, jak numer wejścia z przełączników (sw). Ten blok podniesie flagę (ustawi rejestr flag (flag) na 1) i zmieni przewód MessageVal w zależności od tego, czy użytkownik wygrał, czy przegrał.

Trzeci blok zawsze działa również na dodatnim zboczu zegara. Jeśli flaga jest podniesiona, ustawi ssegInputVal na przewód messageVal na wyświetlaczu siedmiosegmentowym. Jeśli flaga nie zostanie podniesiona, będzie nadal wyprowadzać liczbę losową (randomVal).

Krok 5: Granie w grę

Grać w gre!
Grać w gre!
Grać w gre!
Grać w gre!
Grać w gre!
Grać w gre!

Instrukcje:

  • Użytkownik naciśnie przycisk R, aby utworzyć nową grę lub zmienić numer na wyświetlaczu siedmiosegmentowym.
  • Użytkownik przestawi pierwsze 8 przełączników w górę (1) lub w dół (0), aby wprowadzić liczbę binarną.
  • Przycisk C posłuży do sprawdzenia, czy użytkownik wygrał, czy przegrał.
  • Jeśli użytkownik wygrał, na wyświetlaczu siedmiosegmentowym zostanie wyświetlone „111”.
  • Jeśli użytkownik stracił „0” zostanie wyświetlone na wyświetlaczu siedmiosegmentowym.
  • Aby rozpocząć nową grę, przycisk R można nacisnąć w dowolnym momencie.

Zalecana: