Πίνακας περιεχομένων:

CPE 133 Τελικό έργο Δεκαδικό σε δυαδικό: 5 βήματα
CPE 133 Τελικό έργο Δεκαδικό σε δυαδικό: 5 βήματα

Βίντεο: CPE 133 Τελικό έργο Δεκαδικό σε δυαδικό: 5 βήματα

Βίντεο: CPE 133 Τελικό έργο Δεκαδικό σε δυαδικό: 5 βήματα
Βίντεο: How to Do SDXL Training For FREE with Kohya LoRA - Kaggle - NO GPU Required - Pwns Google Colab 2024, Νοέμβριος
Anonim
CPE 133 Τελικό έργο Δεκαδικό σε δυαδικό
CPE 133 Τελικό έργο Δεκαδικό σε δυαδικό

Οι δυαδικοί αριθμοί είναι ένα από τα πρώτα πράγματα που έρχονται στο μυαλό όταν σκεφτόμαστε την ψηφιακή λογική. Ωστόσο, οι Δυαδικοί Αριθμοί μπορεί να είναι μια δύσκολη ιδέα για τους νέους σε αυτήν.

Αυτό το έργο θα βοηθήσει όσους είναι νέοι και έμπειροι με τον κύριο δυαδικούς αριθμούς να μετατρέπουν δεκαδικούς αριθμούς. Μέσα από τη δημιουργία ενός παιχνιδιού θα δοκιμάσουμε τους χρήστες στην ικανότητα μετατροπής τους. Αυτό το παιχνίδι θα εκτελεστεί σε ένα Basys3 Board και θα προγραμματιστεί στο Verilog.

Βήμα 1: Απαιτούνται υλικά

Χρειαζονται ΥΛΙΚΑ
Χρειαζονται ΥΛΙΚΑ

Τα ακόλουθα υλικά χρειάζονται για να γίνει αυτό το δεκαδικό σε δυαδικό παιχνίδι μετατροπής:

  • Λογισμικό Xilinx Vivado Design Suite
  • Digilent Basys3 FPGA Board
  • Καλώδιο USB σε Micro USB

Βήμα 2: Ρύθμιση του LFSR (Μητρώο αλλαγής γραμμικής ανάδρασης)

Ρύθμιση του LFSR (Μητρώο αλλαγής γραμμικής ανάδρασης)
Ρύθμιση του LFSR (Μητρώο αλλαγής γραμμικής ανάδρασης)
Ρύθμιση του LFSR (Μητρώο αλλαγής γραμμικής ανάδρασης)
Ρύθμιση του LFSR (Μητρώο αλλαγής γραμμικής ανάδρασης)

Το LFSR (Linear Feedback Shift Register) είναι μια ενότητα που χρησιμοποιείται για τη δημιουργία «τυχαίων» αριθμών.

Ένα LFSR δεν είναι εντελώς τυχαίο καθώς δημιουργεί ψευδοτυχαίους αριθμούς που είναι μια διαδικασία παραγωγής αριθμών που εμφανίζονται τυχαία αλλά δεν είναι.

Ένα LFSR είναι ένας καταχωρητής μετατόπισης του οποίου το bit εισόδου είναι μια γραμμική συνάρτηση της προηγούμενης κατάστασής του, πράγμα που σημαίνει ότι το LFSR θα περνάει από έναν πεπερασμένο σύνολο αριθμών. Συγκεκριμένα για αυτό το παιχνίδι, το LFSR θα χρησιμοποιήσει μόνο 8 bit για να περιορίσει τον δεκαδικό αριθμό που μπορεί να δημιουργήσει σε 255.

Το κουμπί L (btnL) χρησιμοποιείται για την επαναφορά του αριθμού στο LFSR.

Αυτή η ενότητα LFSR δεν δημιουργήθηκε από τους κατασκευαστές αυτού του παιχνιδιού. Η ενότητα LFSR δημιουργήθηκε από τον καθηγητή του Πανεπιστημίου Carleton, John Knight. Ο σύνδεσμος για την ενότητα του περιλαμβάνεται παρακάτω.

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

Βήμα 3: Ρύθμιση της οθόνης επτά τμημάτων

Ρύθμιση της οθόνης επτά τμημάτων
Ρύθμιση της οθόνης επτά τμημάτων

Μια οθόνη επτά τμημάτων χρησιμοποιείται στον πίνακα Basys3 και σε πολλά άλλα κομμάτια υλικού για την εμφάνιση αλφαριθμητικών χαρακτήρων.

Η ενότητα επίδειξης επτά τμημάτων που χρησιμοποιείται σε αυτό το παιχνίδι μετατρέπει έναν δυαδικό αριθμό σε δεκαδικό αριθμό και τον εμφανίζει ως δεκαδικό αριθμό.

Χρησιμοποιώντας την ενότητα LFSR που συζητήθηκε προηγουμένως, ένας τυχαίος αριθμός θα προκύψει στην οθόνη επτά τμημάτων.

Η ενότητα Επίδειξη επτά τμημάτων δεν δημιουργήθηκε από τους κατασκευαστές αυτού του παιχνιδιού. Η ενότητα επίδειξης Seven-Segment παρέχεται από τον καθηγητή του Πολυτεχνικού Πανεπιστημίου της Καλιφόρνιας, Joseph Callenes-Sloan. Το pdf για την ενότητα επισυνάπτεται παρακάτω.

Βήμα 4: Δημιουργία της Ενότητας Παιχνιδιού

Δημιουργία της Ενότητας Παιχνιδιού
Δημιουργία της Ενότητας Παιχνιδιού
Δημιουργία της Ενότητας Παιχνιδιού
Δημιουργία της Ενότητας Παιχνιδιού
Δημιουργία της Ενότητας Παιχνιδιού
Δημιουργία της Ενότητας Παιχνιδιού
Δημιουργία της Ενότητας Παιχνιδιού
Δημιουργία της Ενότητας Παιχνιδιού

Δημιουργία ενότητας παιχνιδιού (κύρια).

Αυτή η ενότητα θα χρησιμοποιήσει τη μονάδα LFSR για να δημιουργήσει έναν τυχαίο αριθμό και στη συνέχεια να τον εξάγει στην οθόνη επτά τμημάτων.

Στη συνέχεια, η μονάδα χρησιμοποιεί ένα μπλοκ πάντα που επαναφέρει τον τυχαίο αριθμό. Αυτό λειτουργεί στο θετικό άκρο του κουμπιού R (btnR), πράγμα που σημαίνει ότι θα λειτουργεί μόνο όταν πατηθεί το κουμπί R.

Το δεύτερο μπλοκ λειτουργεί πάντα στο θετικό άκρο του ρολογιού (clk). Εάν πατηθεί το κουμπί C (btnC) αυτό θα ελέγξει εάν ο αριθμός στην οθόνη επτά τμημάτων είναι ο ίδιος με τον αριθμό εισόδου από τους διακόπτες (sw). Αυτό το μπλοκ θα σηκώσει μια σημαία (ορίστε τον καταχωρητή σημαίας (σημαία) σε 1) και θα αλλάξει το σύρμα messageVal σύμφωνα με το εάν ο χρήστης έχει κερδίσει ή χάσει.

Το τρίτο μπλοκ πάντα λειτουργεί επίσης στο θετικό άκρο του ρολογιού. Εάν η σημαία είναι υψωμένη, θα ορίσει το ssegInputVal στο σύρμα messageVal στην οθόνη επτά τμημάτων. Εάν η σημαία δεν είναι υψωμένη, θα συνεχίσει να εξάγει τον τυχαίο αριθμό (randomVal).

Βήμα 5: Παίζοντας το παιχνίδι

Παίζοντας το Παιχνίδι!
Παίζοντας το Παιχνίδι!
Παίζοντας το Παιχνίδι!
Παίζοντας το Παιχνίδι!
Παίζοντας το Παιχνίδι!
Παίζοντας το Παιχνίδι!

Οδηγίες:

  • Ο χρήστης θα πατήσει το κουμπί R για να δημιουργήσει ένα νέο παιχνίδι ή θα αλλάξει τον αριθμό στην οθόνη επτά τμημάτων.
  • Ο χρήστης θα αναστρέψει τους πρώτους 8 διακόπτες προς τα πάνω (1) ή προς τα κάτω (0) για να εισαγάγει τον αντιπροσωπευτικό δυαδικό αριθμό.
  • Το κουμπί C θα χρησιμοποιηθεί για να ελέγξει εάν ο χρήστης κέρδισε ή έχασε.
  • Εάν ο χρήστης κέρδισε το '111' θα εμφανιστεί στην οθόνη επτά τμημάτων.
  • Εάν ο χρήστης έχασε το '0' θα εμφανιστεί στην οθόνη επτά τμημάτων.
  • Για να ξεκινήσετε ένα νέο παιχνίδι, το κουμπί R μπορεί να πατηθεί ανά πάσα στιγμή.

Συνιστάται: