Comment utiliser Verilog et Basys 3 faire compteur binaire bit 3 (5 / 11 étapes)

Étape 5: Étape 5: créer le module supérieur

Suivez l’étape 4 pour ajouter un module supérieur. Ensuite, nous devons définir entrées et sorties qui se connectent à l’environnement extérieur. L’entrée seule est l’horloge de Basys 3. Il existe trois types de sortie, enable_Dx, cx et dp. L’enable_Dx est le pouvoir de chaque chiffre d’affichage 7 segments. Il y a 4 total dans Basys 3. Cependant, nous avons seulement besoin de 3. La cx est la connexion du segment. Dans chaque chiffre, il y a sept segments de ca au cg. Le dp est la virgule à l’écran. Nous n’avez pas besoin d’utiliser des dp dans le projet.

Entrée :

CLK / / master clock pour Basys 3

Sorties :

enable_D1, / / droite la plupart des chiffres

enable_D2

enable_D3,

enable_D4, / / gauche la plupart chiffre

ca, cb, cc, cd, ce, cf, cg / / segment de connexions

DP / / décimal

Nous devons également les variables suivantes pour instancier le diviseur d’horloge et de contrôler à quelle vitesse le chiffre est sur et en dehors. Elles sont toutes variables nets.

clkout1 ; signal interne pour la sortie d’horloge divisée

clkout2 ; signal interne pour la sortie d’horloge divisée

clkOut ; signal interne pour la sortie d’horloge divisée

Q0, Q1, Q2 ; signal interne pour la sortie du compteur

fil n, o, p ; signal interne pour contrôler la mise sous / hors de 3 chiffres

Ensuite, nous utilisons la fonction level porte au contrôle sur et hors le chiffre. Le chiffre est anode commune. La broche FPGA pour obtenir le chiffre est connectée en sortie, alors qu’une constante 3,3 v est fournie comme entrée dans la LED. Pour activer les chiffres, nous avons besoin piloter l’axe faible (peu actif). Vous trouverez les détails à Basys 3 Manuel de référence. Nous n’utilisons jamais laissé la plupart chiffre enable_D4, donc nous assigner à constant 1' b1. Ensuite, nous utilisons les et et pas porte fonction pour faire le chiffre sous et hors tension basée sur la clk générée à partir de clkdivider

assigner enable_D4 = 1' b1 ; désactiver la gauche de la plupart des chiffres qui est D4

et U1 (n, clkout2, clkout1) ; permet d’allumer ou d’éteindre le chiffre, alors que seulement un chiffre sur à la fois et porte

et U2 (o, clkout2, ~ clkout1) ; permet d’allumer ou d’éteindre le chiffre, alors que seulement un chiffre sur à la fois et porte

et U3 (p, ~ clkout2, clkout1) ; permet d’allumer ou d’éteindre le chiffre, alors que seulement un chiffre sur à la fois et porte

pas (enable_D1, n) ; n = clkout2 & clkout1, enable_D1 est faible (on) lorsque les deux clkout2 et clkout1 est élevée

pas (enable_D2, o) ; o = clkout2 & ~ clkout1, enable_D2 est faible (on) lorsque clkouut2 est élevée et clkcout1 est faible

pas (enable_D3, p) ; p = ~ clkout2 & clkout1, enable_D3 est faible (on) lorsque clkout2 est faible, et clkout1 est élevé

Après cela, nous décidons de la logique pour le segment de sept dans chaque chiffre. Idem qu’enable_Dx, cx est actif signal faible. Nous devons donc, pour mettre en marche le segment, de conduire le FPGA à faible. Voici les tables de vérité pour le Qx (Q0 Q1, Q2) et ca-cg (voir tableaux)

De la table de vérité, nous pouvons avoir la conclusion suivante

CB et cc sont toujours 0

CG est toujours 1

ca, cd, ce et des FC ont toujours le même résultat

valeur de ca est évaluée par Qx

Par conséquent, nous pouvons avoir l’affectation suivante. Pour, cb-cg, c’est assez stragightforward. Pour ca, nous utilisons nid coniditional opérateur pour évaluer l’enable_Dx pour décider de la sortie de l’autorité de certification. Si enable_D1 est activé, ce qui signifie la gauche la plupart chiffre (Q0) est allumé, de la table de vérité, ca sera Q0. Dans le cas contraire, nous devons évaluer l’autre condition (enable_D2 est). Si enable_D2 est activé, puis ca est égal à T2 et ainsi de suite.

assigner ca = (enable_D1 == 0) ? Q0 : ((enable_D2==0) ? Q1 : ((enable_D3==0) ? Q2:1'b1)) ; Utilisez l’opérateur conditionnel

assigner des cb = 1' b0 ; CB est toujours sur

assigner des cc = 1' b0 ; CC est toujours sur

assigner des cd = ca ; sortie du CD est la même que ca

attribuer ce = ca ; ce rendement est le même que ca

assigner des FC = ca ; CF sortie est la même que ca

assigner des cg = 1' b1 ; comme nous avons seulement besoin d’avoir zéro ou un, donc cg est large de tous les temps

assigner des dp = 1' b1 ; désactiver le point décimal

Enfin, nous avons besoin d’instancier le module de compteur et clkdivider.

Vous pouvez trouver le code avec des commentaires dans le fichier projet.

Articles Liés

Comment utiliser Verilog et 3 Basys pour arrêter regarder

Comment utiliser Verilog et 3 Basys pour arrêter regarder

J'ai fait ce projet pour une classe en ligne. Le projet est écrit en Verilog. Le générateur d'horloge, les enable_sr (enable chiffres) et les modules ssd (affichage 7 segments) ont été fournis. Ma tâche consistait à écrire le module supérieur et les
Comment utiliser le graveur Laser pour faire Morris de l’homme 9 (un jeu de plateau médiéval)

Comment utiliser le graveur Laser pour faire Morris de l’homme 9 (un jeu de plateau médiéval)

comment utiliser le Laser Cutter pour faire Morris un jeu de plateau médiéval neuf hommeJe l'ai fait à Techshop.Cela va être vraiment court et simple, je vais mettre sur pied une série de jeux médiévaux pour reinactors et amateurs d'histoire, celle q
Comment utiliser le graveur Laser pour faire un jeu Fox & oies (un jeu de plateau médiéval)

Comment utiliser le graveur Laser pour faire un jeu Fox & oies (un jeu de plateau médiéval)

comment utiliser le Laser Cutter pour faire un jeu de plateau médiéval Fox & oiesJe l'ai fait à Techshop.Cela va être vraiment court et simple, je vais mettre sur pied une série de jeux médiévaux pour rein-acteurs et amateurs d'histoire, celle que je
Comment utiliser la résine pour faire vos propres trucs en plastique

Comment utiliser la résine pour faire vos propres trucs en plastique

Hi mes amisEn fait je suis un concepteur électronique mais depuis l'enfance, j'ai été intérêt en électronique et chimique et je tiens à expliquer sur un de mes cool test chimique à l'aide de cette façon que vos besoinstout d'abord, comme vous le save
Comment utiliser un Buzzer Piezo pour faire du bruit avec Arduino

Comment utiliser un Buzzer Piezo pour faire du bruit avec Arduino

Si vous avez un Arduino, vous pourriez avoir rencontrer un projet qui nécessitait le Conseil d'administration à émettre des sons. Un des moyens moins chers et plus simple d'y parvenir consiste à utiliser un Piezo Buzzer.Buzzers piezo sont extrêmement
Comment utiliser une carte de test

Comment utiliser une carte de test

une maquette, également connu sous le nom protoboard est un type de bâtiment sans soudure de circuit électronique. Vous pouvez construire un circuit électronique sur une maquette sans aucune soudure ! Le meilleur de tous, il est réutilisable. Il a ét
Arduino Insight-débutant LEDs et (16bits compteur binaire)

Arduino Insight-débutant LEDs et (16bits compteur binaire)

Bonjour amis...!!! C'est mon premier tutoriel sur Instructables, dans ce tutoriel que je vais vous montrer* Écrire un programme simple pour LED lumineux* Groupe du programme de LED* Expliquer la sortie analogique (PWM)* Créer un projet simple de (com
Comment utiliser une sonde 500 watt CO2 laser puissance compteur

Comment utiliser une sonde 500 watt CO2 laser puissance compteur

cette vidéo montre comment utiliser la sonde de puissance de laser de Mahoney CO2.  La sonde de puissance de laser de CO2 est un dispositif couramment utilisé et nécessaire pour :1. mesure laser puissance de sortie pour les paramètres laser au fil du
Comment utiliser TinkerCAD pour faire un porte-stylo

Comment utiliser TinkerCAD pour faire un porte-stylo

cet article vous indique comment utiliser TinkerCAD (https://tinkercad.com/) avec Makerbot pour faire un "Vrai" porte-plume, vous pouvez voir le porte-stylo imprimés 3d étonnantes comme la photo ci-jointe. Vous pouvez aussi voir la vidéo ici. ht
Comment utiliser votre rouleau de galette et s’affaisser le moule pour faire un bol

Comment utiliser votre rouleau de galette et s’affaisser le moule pour faire un bol

cela vous montrera comment utiliser mes deux autres instructables (dalle galet et le moule de la crise) pour construire main un bol.Étape 1: Matériaux nécessaires Vous aurez besoin :Argile,Rouleau de dalle,Rouleau à pâtisserie,Moule de marasme,Outil
Comment utiliser le Laser Cutter et ou le Jet d’eau pour faire une jauge de vérifier de rayon pour tôle organinc travail (façonnage du métal, panneau battant, etc.) je l’ai fait à TechShop

Comment utiliser le Laser Cutter et ou le Jet d’eau pour faire une jauge de vérifier de rayon pour tôle organinc travail (façonnage du métal, panneau battant, etc.) je l’ai fait à TechShop

Comment utiliser le Laser Cutter et ou le Jet d'eau pour faire une jauge rayon vérifier pour tôle organiques (façonnage du métal, panneau battant, etc.)Je l'ai fait à Techshop.Cela va être un vraiment court et simple, mais si vous faites tout formage
Comment utiliser gimp, faire du feu texte

Comment utiliser gimp, faire du feu texte

tout d'abord, j'ai fait une Instructable pour texte de feu beaucoup plus réel à la recherche, pour que cliquez sur apple. Dans ce tutoriel, je vais vous montrer comment utiliser gimp pour faire du feu comme texte afin qu'il semble que votre texte est
Comment utiliser votre Bracelet de compteur de ligne | Tricotage Abacus | Able

Comment utiliser votre Bracelet de compteur de ligne | Tricotage Abacus | Able

cette vidéo montre comment utiliser votre Ablet rangée de style boulier comptage bracelet de tricotage.
Comment utiliser (et choisir) un multimètre !

Comment utiliser (et choisir) un multimètre !

Vérifier l'autonomie de votre batterie de voiture, circuits de débogage et trouver que short embêtant sont toutes les fonctions super utiles qui peuvent être faites avec un seul outil génial : le multimètre !Tout d'abord, ce que le diable est un mult