Les différentes partiesde votre projet
01
-Bascule D
-Compteur basé sur des bascules
D
Compteur à 4 bits
02
Diviseur de fréquence
03
Décodeur
04
Programme Principale
3.
OBJECTIFS
Ce projet consisteà modéliser un compteur hexadécimal en VHDL, composé des éléments
suivants :
• Compteur binaire 4 bits : génère les valeurs en boucle complète (de 0 à 15).
• Décodeur : convertit les sorties du compteur en un format compatible avec un afficheur 7
segments.
• Diviseur de fréquence : adapte l’horloge principale de la carte FPGA pour synchroniser le
fonctionnement du compteur.
Le but est de réaliser un circuit fonctionnel qui affiche les valeurs hexadécimales sur un
afficheur 7
4.
Introduction
Le projet decompteur hexadécimal en VHDL est un circuit
numérique utile pour afficher des valeurs en hexadécimal sur
un afficheur 7 segments. Il combine un compteur binaire 4 bits,
un décodeur et un diviseur de fréquence. Ce projet trouve des
applications dans les systèmes embarqués, les outils de mesure,
l'industrie et l'éducation, tout en offrant une base pour des
conceptions électroniques plus avancées.
Dans cette section,nous allons réaliser un compteur 4 bits basé sur 4 bascules D.
Pour cela, nous devons programmer les éléments suivants :
- La bascule D
- Le compteur 4 bits qui sera construit en utilisant ces bascules D.
Voici une explicationdu programme VHDL :
1. Bibliothèques :
Le programme commence par inclure une bibliothèque
standard (`ieee`) et utilise le paquet `std_logic_1164`
qui permet de définir des types de signaux logiques
comme `0`, `1`, `Z`, etc.
2. Définition de l'entité (bascule D):
Le programme définit une bascule D appelée
« Dffcorrection ». Elle a quatre ports :
- d : l'entrée de données (valeur qui sera stockée).
- clk: l'entrée d'horloge (le signal qui déclenche le
changement d'état).
- clr : le signal de réinitialisation (met la sortie à `0`).
- q: la sortie (valeur stockée par la bascule D).
3. Architecture de la bascule D :
L'architecture définit le comportement de la bascule.
Le processus est activé chaque fois que les signaux clk
ou clr changent.
4. Comportement de la bascule D :
- Si le signal clr est à `1`, la sortie q est forcée à `0`
(réinitialisation).
- Si clr n'est pas actif et qu'il y a un front montant de
l'horloge (clk passe de `0` à `1`), la sortie q prend la
valeur de l'entrée d (comportement classique d'une
bascule D).
5. Fin du processus et de l'architecture :
Le programme se termine par la fin du processus et
de l'architecture, ce qui signifie que toute la logique a
été définie.
En résumé, ce programme décrit une bascule D avec
réinitialisation asynchrone, ce qui permet de contrôler
l'état de la sortie en fonction de l'horloge et d'une
réinitialisation.
10.
II. le compteurbinaire 4-bit, basé sur 4 bascules D
L'instruction for… generate en VHDL est utilisée pour
générer plusieurs instances d'un même bloc de code ou
de composants en fonction d'une condition de répétition,
souvent dans le but de créer des circuits à grande
échelle de manière plus concise. C'est une forme de
génération conditionnelle qui permet de créer plusieurs
copies de structures de circuits sans avoir à les écrire
manuellement à chaque fois.
Le programme
Fonctionnement
Un circuit quidivise une fréquence de signal est appelé un diviseur de
fréquence. Diviser indique une conversion de la fréquence d'un signal
numérique, tel qu'une horloge, en le réduisant à 1/N. Comme on a vu
dans la première partie, un compteur est un diviseur de 1/2N (où N est le
nombre de bits).
On désire créer une horloge ayant une fréquence égale à 0.74 Hz (T ≈
1.34 seconde).
14.
Le programme
Le programmeVHDL décrit un diviseur
de fréquence qui prend une horloge
d'entrée mclk et génère une sortie
clk_ctr avec une fréquence plus basse.
Un compteur counter compte les cycles
de l'horloge d'entrée jusqu'à une valeur
définie par la constante DIVISOR. À
chaque fois que le compteur atteint
cette valeur, il est réinitialisé et l'horloge
de sortie est inversée, créant ainsi une
fréquence réduite. Le signal clr permet
de réinitialiser le compteur et l'horloge
de sortie à zéro.
À la sortiedu compteur 4-bit, les signaux doivent être décodés pour
pouvoir commander l’afficheur 7-segments. Pour cela, on utilisera un
« décodeur » ,
Le décodeur doit transformer le nombre reçu en entrée sur 4 bits, en 7
bits afin de l’afficher en écriture hexadécimal (0 jusqu’à F) sur un
afficheur 7-segment.
18.
Ce programme VHDLdécrit un décodeur qui contrôle un
afficheur 7 segments. Il prend un nombre binaire de 4
bits en entrée (représenté par Q) et active les segments
correspondants pour afficher un chiffre.
1.Entrée : Le signal Q est un vecteur de 4 bits
représentant un nombre binaire (de 0000 à 1111).
2.Sorties : Les sorties a, b, c, d, e, f, g contrôlent les
segments de l'afficheur 7 segments.
3.Processus :
•Lorsqu'une valeur est donnée à Q, nous avons
utilisé une instruction case pour définir quels
segments doivent être activés.
•Par exemple, si Q = "0000" (c'est-à-dire 0), tous
les segments sauf g sont activés pour afficher le
chiffre "0".
•Si Q = "0001" (c'est-à-dire 1), les segments
correspondants au chiffre "1" sont activés.
Ce programme permet ainsi de convertir un nombre
binaire en un affichage visuel sur un afficheur 7
segments.
Le programme
Maintenant que lesdifférents modules du compteur hexadécimal sont prêts, nous allons les
assembler dans un seul programme principal.
On rappelle le schéma de la structure étudiée :