Inhaltsverzeichnis:

CPE 133 Endgültiges Projekt Dezimal zu Binär - Gunook
CPE 133 Endgültiges Projekt Dezimal zu Binär - Gunook

Video: CPE 133 Endgültiges Projekt Dezimal zu Binär - Gunook

Video: CPE 133 Endgültiges Projekt Dezimal zu Binär - Gunook
Video: CPE 133 project - 10 bit computer 2024, November
Anonim
CPE 133 Endgültiges Projekt Dezimal zu Binär
CPE 133 Endgültiges Projekt Dezimal zu Binär

Binärzahlen sind eines der ersten Dinge, die einem in den Sinn kommen, wenn man an digitale Logik denkt. Binärzahlen können jedoch für Neulinge ein schwieriges Konzept sein.

Dieses Projekt wird denjenigen helfen, die sowohl neu als auch erfahren mit binären Zahlen sind, die Umwandlung von Dezimalzahlen zu meistern. Durch die Erstellung eines Spiels werden wir Benutzer auf ihre Konvertierungsfähigkeiten testen. Dieses Spiel wird auf einem Basys3-Board ausgeführt und in Verilog programmiert.

Schritt 1: Benötigte Materialien

Benötigte Materialien
Benötigte Materialien

Die folgenden Materialien werden benötigt, um dieses Dezimal-zu-Binär-Konvertierungsspiel zu erstellen:

  • Xilinx Vivado Design Suite-Software
  • Digilent Basys3 FPGA-Board
  • USB-zu-Micro-USB-Kabel

Schritt 2: Einrichten des LFSR (Linear Feedback Shift Register)

Einrichten des LFSR (Linear Feedback Shift Register)
Einrichten des LFSR (Linear Feedback Shift Register)
Einrichten des LFSR (Linear Feedback Shift Register)
Einrichten des LFSR (Linear Feedback Shift Register)

Ein LFSR (Linear Feedback Shift Register) ist ein Modul zur Erzeugung von „zufälligen“Zahlen.

Ein LFSR ist nicht vollständig zufällig, da es Pseudo-Zufallszahlen erzeugt, bei denen Zahlen generiert werden, die zufällig erscheinen, aber nicht zufällig sind.

Ein LFSR ist ein Schieberegister, dessen Eingangsbit eine lineare Funktion seines vorherigen Zustands ist, was bedeutet, dass das LFSR eine endliche Anzahl von Zahlen durchläuft. Speziell für dieses Spiel verwendet das LFSR nur 8 Bit, um die Dezimalzahl, die es generieren kann, auf 255 zu begrenzen.

Taste L (btnL) wird verwendet, um die Nummer auf dem LFSR zurückzusetzen.

Dieses LFSR-Modul wurde nicht von den Machern dieses Spiels erstellt. Das LFSR-Modul wurde von John Knight, Professor an der Carleton University, entwickelt. Der Link zu seinem Modul ist unten enthalten.

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

Schritt 3: Einrichten der Siebensegmentanzeige

Einrichten der Siebensegmentanzeige
Einrichten der Siebensegmentanzeige

Auf dem Basys3-Board und vielen anderen Geräten wird eine Sieben-Segment-Anzeige verwendet, um alphanumerische Zeichen anzuzeigen.

Das Sieben-Segment-Anzeigemodul, das in diesem Spiel verwendet wird, wandelt eine Binärzahl in eine Dezimalzahl um und zeigt sie als Dezimalzahl an.

Bei Verwendung des zuvor besprochenen LFSR-Moduls wird eine zufällig generierte Zahl auf der Sieben-Segment-Anzeige ausgegeben.

Das Sieben-Segment-Display-Modul wurde nicht von den Machern dieses Spiels entwickelt. Das Sieben-Segment-Anzeigemodul wurde von Joseph Callenes-Sloan, Professor der California Polytechnic State University, bereitgestellt. Das pdf zum Modul ist unten angehängt.

Schritt 4: Erstellen des Spielmoduls

Erstellen des Spielmoduls
Erstellen des Spielmoduls
Erstellen des Spielmoduls
Erstellen des Spielmoduls
Erstellen des Spielmoduls
Erstellen des Spielmoduls
Erstellen des Spielmoduls
Erstellen des Spielmoduls

Spiel erstellen (Haupt-) Modul.

Dieses Modul verwendet das LFSR-Modul, um eine Zufallszahl zu generieren und diese dann auf der Sieben-Segment-Anzeige auszugeben.

Das Modul verwendet dann einen Always-Block, der die Zufallszahl zurücksetzt. Dies funktioniert auf der positiven Flanke von Button R (btnR), was bedeutet, dass es nur funktioniert, wenn Button R gedrückt wurde.

Der Block Second Always arbeitet auf der positiven Flanke des Takts (clk). Wenn Taste C (btnC) gedrückt wird, wird überprüft, ob die Nummer auf der Sieben-Segment-Anzeige mit der von den Schaltern (sw) eingegebenen Nummer übereinstimmt. Dieser Block setzt ein Flag (setze das Flag-Register (Flag) auf 1) und ändert die MessageVal-Leitung, je nachdem, ob der Benutzer gewonnen oder verloren hat.

Der Dritte-immer-Block arbeitet auch auf der positiven Flanke des Takts. Wenn das Flag gesetzt ist, wird ssegInputVal auf den Draht messageVal auf der Sieben-Segment-Anzeige gesetzt. Wenn das Flag nicht gesetzt ist, wird weiterhin die Zufallszahl (randomVal) ausgegeben.

Schritt 5: Das Spiel spielen

Das Spiel spielen!
Das Spiel spielen!
Das Spiel spielen!
Das Spiel spielen!
Das Spiel spielen!
Das Spiel spielen!

Anweisungen:

  • Der Benutzer wird die Taste R drücken, um ein neues Spiel zu erstellen oder die Zahl auf der Sieben-Segment-Anzeige zu ändern.
  • Der Benutzer wird die ersten 8 Schalter nach oben (1) oder unten (0) umlegen, um die Binärzahl einzugeben.
  • Schaltfläche C wird verwendet, um zu überprüfen, ob der Benutzer gewonnen oder verloren hat.
  • Wenn der Benutzer gewonnen hat, wird '111' auf dem Sieben-Segment-Display angezeigt.
  • Wenn der Benutzer verloren hat, wird auf der Sieben-Segment-Anzeige „0“angezeigt.
  • Um ein neues Spiel zu starten, kann jederzeit die Taste R gedrückt werden.

Empfohlen: