Table des matières:
- Étape 1: Matériaux
- Étape 2: Configuration des entrées et des sorties
- Étape 3: fabrication d'horloges
- Étape 4: Compter jusqu'à dix
- Étape 5: Affichage des nombres
- Étape 6: Comment afficher le chronomètre
- Étape 7: Tout rassembler
- Étape 8: Contraintes
- Étape 9: Tester
Vidéo: Chronomètre de base utilisant VHDL et carte Basys3 : 9 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:08
Bienvenue dans l'instructable sur la façon de construire un chronomètre à l'aide de la carte VHDL de base et Basys 3. Nous sommes ravis de partager notre projet avec vous! Il s'agissait d'un projet final pour le cours CPE 133 (Design numérique) à Cal Poly, SLO à l'automne 2016. Le projet que nous avons construit est un simple chronomètre qui démarre, se réinitialise et met le temps en pause. Il prend trois boutons poussoirs sur la carte Basys3 comme entrées, et l'heure est affichée sur l'affichage à sept segments à quatre chiffres de la carte. Le temps écoulé est affiché au format secondes: centisecondes. Il utilise l'horloge système de la carte comme entrée pour suivre le temps écoulé et affiche l'heure sur les quatre chiffres de l'affichage à sept segments.
Étape 1: Matériaux
Le matériel dont vous aurez besoin pour ce projet:
- 1 ordinateur avec Vivado Design Suite WebPack installé depuis Xilinx (préférer la version 2016.2)
- 1 carte FPGA Digilent Basys3 Xilinx Artix-7
- 1 câble USB
Étape 2: Configuration des entrées et des sorties
La figure ci-dessus montre un schéma fonctionnel de niveau supérieur du module de chronomètre principal. Le chronomètre prend les entrées « CLK » (horloge), « S1 » (bouton de démarrage), « S2 » (bouton de pause) et « RST » (réinitialisation) et a une sortie « Anodes » 4 bits, un sortie « segment » et une sortie à un seul bit « DP » (point décimal). Lorsque l'entrée "S1" est au niveau haut, le chronomètre commence à compter le temps. Lorsque "S2" est bas, le chronomètre met le temps en pause. Lorsque "RST" est élevé, le chronomètre s'arrête et réinitialise l'heure. Il y a quatre sous-modules dans le circuit: le diviseur d'horloge, le compteur de chiffres, le pilote d'affichage à sept segments et le codeur d'affichage à sept segments. Le module principal du chronomètre relie tous les sous-modules entre eux et aux entrées et sorties.
Étape 3: fabrication d'horloges
Le module diviseur d'horloge prend une horloge système et utilise une entrée diviseur pour créer une horloge dont la vitesse ne dépasse pas celle de l'horloge système. Le chronomètre utilise deux modules d'horloge différents, l'un qui crée une horloge à 500 Hz et l'autre qui crée une horloge à 100 Hz. Le schéma du diviseur d'horloge est illustré dans la figure ci-dessus. Le diviseur d'horloge comprend une entrée à un seul bit "CLK", et une entrée à 32 bits "Divisor" et la sortie à un seul bit "CLKOUT". "CLK" est l'horloge système et "CLKOUT" est l'horloge résultante. Le module comprend également une porte NON, qui bascule le signal "CLKTOG" lorsque le compte atteint la valeur du diviseur.
Étape 4: Compter jusqu'à dix
Le compteur de chiffres compte chaque chiffre de 0 à 10 et crée une autre horloge pour que le chiffre suivant fonctionne à partir de celle qui oscille lorsque le compte atteint 10. Le module prend 3 entrées à bit unique "S", "RST" et "CLK " et se traduit par une sortie à un seul bit "N" et une sortie à 4 bits "D". L'entrée "S" est l'entrée d'activation. L'horloge s'allume lorsque "S" est haut et s'éteint lorsque "S" est bas. "RST" est l'entrée de réinitialisation de sorte que l'horloge se réinitialise lorsque "RST" est haut. "CLK" est l'entrée d'horloge pour le compteur de chiffres. "N" est la sortie d'horloge qui devient l'horloge d'entrée pour le chiffre suivant. La sortie "D" présente la valeur binaire du chiffre auquel se trouve le compteur.
Étape 5: Affichage des nombres
L'encodeur d'affichage à sept segments codera le nombre binaire reçu du module pilote d'affichage à sept segments et le transformera en un flux de bits qui sera interprété comme des valeurs « 1 » ou « 0 » pour chaque segment de l'affichage. Le nombre binaire est reçu par le module en tant que "chiffre" d'entrée à 4 bits et donne lieu à des "segments" de sortie à 7 bits. Le module se compose d'un seul bloc de traitement de cas qui attribue un flux de 7 bits spécifique pour chaque valeur d'entrée possible de 0 à 9. Chaque bit des flux de sept bits représente l'un des sept segments des chiffres affichés. L'ordre des segments dans le flux est « abcdefg » avec des « 0 » représentant les segments qui s'allument pour le nombre donné.
Étape 6: Comment afficher le chronomètre
Dans le module pilote d'affichage à sept segments, il y a quatre entrées à 4 bits "D0", "D1", "D2" et "D3", chacune représentant les quatre chiffres à afficher. L'entrée "CLK" est l'entrée d'horloge du système. La sortie à un bit "DP" représente le point décimal sur l'affichage à sept segments. La sortie 4 bits "Anodes" détermine quel chiffre sur l'affichage à sept segments est affiché et la sortie 4 bits "temp" dépend de l'état de l'entrée de commande 2 bits "SEL". Le module utilise 4 multiplexeurs pour l'entrée de contrôle « SEL » et les trois sorties; "Anodes", "temp" et "DP".
Étape 7: Tout rassembler
Un bloc de processus « if » fonctionnant à partir de l'horloge 500 Hz est utilisé pour créer les boutons de démarrage et de pause. Reliez ensuite tous les sous-modules dans le module principal du chronomètre en déclarant les composants de chaque sous-module individuel et en utilisant divers signaux. Les sous-modules numériques prennent en charge la sortie d'horloge du sous-module numérique précédent, le premier prenant en charge l'horloge à 100 Hz. Les sorties "D" des sous-modules digitaux deviennent alors les entrées "D" du module pilote d'affichage à sept segments. Et enfin, la sortie "temp" du module de pilote d'affichage à sept segments devient l'entrée "temp" du module d'encodeur à sept segments.
Étape 8: Contraintes
Utilisez 3 boutons-poussoirs (W19, T17 et U18) pour les entrées "RST", "S1" et "S2". W19 est le bouton de réinitialisation, T17 est le bouton de démarrage (S1) et U18 est le bouton de pause (S2). Une contrainte pour l'entrée d'entrée d'horloge est également requise à l'aide du port W5. N'oubliez pas non plus d'ajouter cette ligne à la contrainte d'horloge:
create_clock -add -name sys_clk_pin -period 10.00 -waveform {0 5} [get_ports {CLK}]
Reliez également les anodes et les segments à la carte afin que le chronomètre s'affiche sur l'affichage à sept segments comme indiqué dans le fichier de contraintes.
Étape 9: Tester
Assurez-vous que votre appareil fonctionne en jouant avec les trois boutons: appuyez et maintenez-les dans tous les ordres possibles afin de trouver d'éventuels problèmes avec votre code.
Conseillé:
Système de présence basé sur les empreintes digitales et RFID utilisant Raspberry Pi et la base de données MySQL : 5 étapes
Système de présence basé sur les empreintes digitales et RFID utilisant Raspberry Pi et la base de données MySQL : vidéo de ce projet
Chronomètre Arduino utilisant l'écran LCD I2C : 5 étapes
Chronomètre Arduino utilisant l'écran LCD I2C : Dans ce projet, je vais vous apprendre à utiliser un écran LCD et un Arduino comme chronomètre interactif. Lorsque votre projet est terminé avec le code fourni, il devrait ressembler à la photo ci-dessus. Passez à l'étape suivante pour savoir par où commencer
Chronomètre utilisant Pic18f4520 dans Proteus avec 7 segments : 6 étapes
Chronomètre utilisant Pic18f4520 dans Proteus avec 7 segments : je viens de commencer à travailler avec le contrôleur pic, un de mes amis m'a demandé de construire un chronomètre à partir de celui-ci. Je n'ai donc pas d'image matérielle à partager, j'ai écrit du code et l'ai simulé sur le logiciel Proteus. Ici, j'ai partagé le schéma pour le même.t
Chronomètre d'une minute VHDL : 5 étapes
Chronomètre d'une minute VHDL : il s'agit d'un didacticiel sur la façon de créer un chronomètre d'une minute à l'aide de VHDL et d'une carte Basys 3. Un tel appareil est idéal pour les jeux où chaque joueur dispose d'une minute maximum pour jouer son rôle. Le chronomètre affiche avec précision les secondes et les millisecondes o
Chronomètre VHDL : 8 étapes (avec photos)
Chronomètre VHDL : il s'agit d'un tutoriel sur la façon de créer un chronomètre à l'aide de VHDL et d'une carte de circuit imprimé FPGA, comme une carte Basys3 Atrix-7. Le chronomètre est capable de compter de 00,00 secondes à 99,99 secondes. Il utilise deux boutons, un pour le bouton marche/arrêt et un autre pour le