Table des matières:

CPE 133 Projet Final Décimal à Binaire : 5 Étapes
CPE 133 Projet Final Décimal à Binaire : 5 Étapes

Vidéo: CPE 133 Projet Final Décimal à Binaire : 5 Étapes

Vidéo: CPE 133 Projet Final Décimal à Binaire : 5 Étapes
Vidéo: CPE 133 Final Project Verification 2024, Juillet
Anonim
CPE 133 Projet Final Décimal à Binaire
CPE 133 Projet Final Décimal à Binaire

Les nombres binaires sont l'une des premières choses qui viennent à l'esprit lorsque l'on pense à la logique numérique. Cependant, les nombres binaires peuvent être un concept difficile pour ceux qui ne le connaissent pas.

Ce projet aidera ceux qui sont à la fois nouveaux et expérimentés avec les nombres binaires à maîtriser la conversion des nombres décimaux. Grâce à la création d'un jeu, nous testerons les utilisateurs sur leurs compétences de conversion. Ce jeu sera exécuté sur une carte Basys3 et programmé en Verilog.

Étape 1: Matériel nécessaire

Les matériaux nécessaires
Les matériaux nécessaires

Les matériaux suivants sont nécessaires pour créer ce jeu de conversion décimal en binaire:

  • Logiciel Xilinx Vivado Design Suite
  • Carte FPGA Digilent Basys3
  • Câble USB vers Micro USB

Étape 2: Configuration du LFSR (Linear Feedback Shift Register)

Configuration du LFSR (Linear Feedback Shift Register)
Configuration du LFSR (Linear Feedback Shift Register)
Configuration du LFSR (Linear Feedback Shift Register)
Configuration du LFSR (Linear Feedback Shift Register)

Un LFSR (Linear Feedback Shift Register) est un module utilisé pour générer des nombres « aléatoires ».

Un LFSR n'est pas complètement aléatoire car il génère des nombres pseudo-aléatoires qui est un processus de génération de nombres qui semblent aléatoires mais ne le sont pas.

Un LFSR est un registre à décalage dont le bit d'entrée est une fonction linéaire de son état précédent, ce qui signifie que le LFSR parcourra un ensemble fini de nombres. Spécifiquement pour ce jeu, le LFSR n'utilisera que 8 bits pour limiter le nombre décimal qu'il peut générer à 255.

Le bouton L (btnL) est utilisé pour réinitialiser le numéro sur le LFSR.

Ce module LFSR n'a pas été créé par les créateurs de ce jeu. Le module LFSR a été créé par le professeur de l'Université Carleton, John Knight. Le lien pour son module est inclus ci-dessous.

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

Étape 3: Configuration de l'affichage à sept segments

Configuration de l'affichage à sept segments
Configuration de l'affichage à sept segments

Un affichage à sept segments est utilisé sur la carte Basys3 et sur de nombreux autres composants matériels pour afficher des caractères alphanumériques.

Le module d'affichage à sept segments utilisé dans ce jeu convertit un nombre binaire en nombre décimal et l'affiche sous forme de nombre décimal.

En utilisant le module LFSR discuté précédemment, un nombre généré aléatoirement sera affiché sur l'affichage à sept segments.

Le module d'affichage à sept segments n'a pas été créé par les créateurs de ce jeu. Le module d'affichage à sept segments a été fourni par le professeur de la California Polytechnic State University, Joseph Callenes-Sloan. Le pdf du module est joint ci-dessous.

Étape 4: Création du module de jeu

Création du module de jeu
Création du module de jeu
Création du module de jeu
Création du module de jeu
Création du module de jeu
Création du module de jeu
Création du module de jeu
Création du module de jeu

Créer un module de jeu (principal).

Ce module utilisera le module LFSR pour générer un nombre aléatoire, puis le sortira sur l'affichage à sept segments.

Le module utilise alors un bloc always qui réinitialise le nombre aléatoire. Cela fonctionne sur le front positif du bouton R (btnR), ce qui signifie qu'il ne fonctionnera que lorsque le bouton R a été enfoncé.

Le bloc Second fonctionne toujours sur le front montant de l'horloge (clk). Si le bouton C (btnC) est enfoncé, cela vérifiera si le numéro sur l'affichage à sept segments est le même que le numéro d'entrée des commutateurs (sw). Ce bloc lèvera un drapeau (définira le registre du drapeau (drapeau) à 1) et changera le fil messageVal selon que l'utilisateur a gagné ou perdu.

Le troisième bloc toujours fonctionne également sur le front positif de l'horloge. Si le drapeau est levé, il définira le ssegInputVal sur le fil messageVal sur l'affichage à sept segments. Si le drapeau n'est pas levé, il continuera à produire le nombre aléatoire (randomVal).

Étape 5: jouer au jeu

Jouer le jeu !
Jouer le jeu !
Jouer le jeu !
Jouer le jeu !
Jouer le jeu !
Jouer le jeu !

Instructions:

  • L'utilisateur appuiera sur le bouton R pour créer un nouveau jeu ou modifiera le numéro sur l'affichage à sept segments.
  • L'utilisateur fera basculer les 8 premiers commutateurs vers le haut (1) ou vers le bas (0) pour saisir le nombre binaire.
  • Le bouton C sera utilisé pour vérifier si l'utilisateur a gagné ou perdu.
  • Si l'utilisateur a gagné, '111' s'affichera sur l'affichage à sept segments.
  • Si l'utilisateur a perdu '0' s'affichera sur l'affichage à sept segments.
  • Pour démarrer une nouvelle partie, le bouton R peut être enfoncé à tout moment.

Conseillé: