Table des matières:

Chronomètre d'une minute VHDL : 5 étapes
Chronomètre d'une minute VHDL : 5 étapes

Vidéo: Chronomètre d'une minute VHDL : 5 étapes

Vidéo: Chronomètre d'une minute VHDL : 5 étapes
Vidéo: COMMENT UTILISER UN PROGRAMMATEUR ÉLECTRIQUE 2024, Novembre
Anonim
Image
Image

Ceci est un tutoriel sur la façon de construire un chronomètre d'une minute en utilisant VHDL et 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 sur l'affichage à sept segments, à partir de 0 seconde et 0 milliseconde, jusqu'à 60 secondes et 0 milliseconde. Deux boutons sont également utilisés: le bouton central, utilisé pour démarrer, arrêter et continuer le chronomètre, et le bouton de droite, utilisé pour redémarrer le chronomètre. Lorsque l'appareil est comparé côte à côte avec le chronomètre intégré d'un téléphone intelligent, la précision de l'horloge est perceptible.

Étape 1: Obtenir le matériel/logiciel

Diagramme
Diagramme

1. Carte d'entraînement FPGA Basys 3 Artix-7 de Digilent avec câble Micro-USB vers USB

2. Vivado 2016.2 Design Suite de Xilinx

Étape 2: Schéma fonctionnel

Ce circuit est construit de manière comportementale et utilise des composants Xilinx intégrés, mais peut également être décrit structurellement, comme le montre le schéma structurel général ci-dessus. Sur le schéma, on peut voir que le circuit est piloté par deux diviseurs de fréquence. L'un des diviseurs de fréquence fonctionne à 1 centiseconde et entraîne le compteur cathodique qui est utilisé comme nombre affiché sur l'affichage à sept segments. Le deuxième diviseur de fréquence fonctionne à 240 Hz et est utilisé pour piloter le compteur d'anodes qui tourne à travers les anodes afin que tous les chiffres s'affichent correctement sur l'affichage à sept segments. L'encodeur prend la logique cathodique du compteur cathodique et la logique anodique du compteur anodique, et l'encode vers la cathode et l'anode de sortie qui exécutent l'affichage à sept segments. La fonction de cet encodeur est que la sortie cathodique change à chaque fois que la sortie anode change. La sortie cathodique ne peut pas être exécutée indépendamment du compteur car les anodes doivent tourner à travers les 4 chiffres séparés.

Étape 3: Module de projet

Tout d'abord, un bloc de processus pour le CEN est créé de sorte que lorsqu'un appui sur un bouton est détecté, l'ACTIVATION bascule. Cela sert d'arrêt/démarrage du compteur cathodique.

Dans le bloc de processus suivant, les signaux d'horloge centiseconde et 240 Hz sont réglés de sorte que leurs compteurs respectifs augmentent de 1 chaque fois que l'horloge interne à 100 mHz atteint un front montant. Une fois que le compteur centiseconde atteint 500000, il se réinitialise à 0. Pendant ce temps, le compteur 240Hz se réinitialise une fois que le compte atteint 41667.

Pour la section cathode du code, si ENABLE est '0', le comptage de cathode s'arrêtera. Si le bouton de réinitialisation est enfoncé pendant ce temps, tous les comptes sont réinitialisés à "0000". Pendant ce temps, si ENABLE est à '1', le comptage de cathode continuera jusqu'à ce que le comptage de cathode atteigne 60,00, auquel cas il déclenche le signal d'arrêt à '1'. Le signal d'arrêt est renvoyé au bloc de processus CEN et fait que ENABLE est à « 0 » tandis que le signal d'arrêt est à « 1 » et ne changera pas tant que le bouton de réinitialisation n'est pas enfoncé.

Enfin, l'affichage à sept segments est configuré en ayant les 4 anodes correctement connectées à chacune de leurs 8 cathodes pour afficher leurs chiffres respectifs 0-9 simultanément.

Étape 4: Contraintes

Contraintes
Contraintes

Ce fichier de contraintes connecte les entrées et sorties spécifiées de VHDL dans les parties physiques nécessaires de la carte Basys. Pour ce projet, les composants comprennent les quatre anodes et chacune de leurs huit cathodes pour l'affichage à sept segments, l'horloge interne à 100 mHz, le bouton central et le bouton droit.

Étape 5: Tester

Une fois que vous avez terminé le code, vous pouvez maintenant programmer le FPGA via le câble USB. L'affichage à sept segments doit indiquer 0.00. Testez pour voir si les boutons fonctionnent en appuyant sur le bouton central pour démarrer la minuterie jusqu'à ce qu'elle atteigne 60,00 et s'arrête; à tout moment entre les deux, vous pouvez appuyer à nouveau sur le bouton central pour le mettre en pause. Une fois qu'il est en pause, vous pouvez appuyer sur le bouton droit pour réinitialiser la minuterie à 0,00. Si tout fonctionne correctement, félicitations, vous venez de construire une minuterie d'une minute !

Conseillé: