You are on page 1of 11

Elément de Module : Electronique numérique 2 ENSAK-Cycle ingénieur

Travaux dirigés – Série N°4


Synthèse des circuits avec la machine d’état et le langage VHDL

Application N°1 : Question pour un champion


On désire réaliser le système électronique qui permet de déterminer quel est le joueur le plus rapide pour
répondre à une question dans le jeu télévisé « Question pour un champion ».

Dès qu’un joueur pense avoir la bonne réponse, il appuie sur le Bouton poussoir placé devant lui. A ce
moment la, un signal sonore retentit (Buzzer) et un voyant lumineux s’allume au dessus de lui.. Plus
personne ne peut appuyer et le système est bloqué tant que l’animateur n’a pas validé ou non sa réponse
par l’action sur un bouton poussoir RAZ. L’appui sur le bouton poussoir peut être fugitif.

Sur le dessin ci dessus, c’est le joueur A qui a été le plus rapide.


On se propose de réaliser une fonction dont le schéma fonctionnel est le suivant :

On donne le diagramme d’états du système :

Par M.JAROU 1|Page


Elément de Module : Electronique numérique 2 ENSAK-Cycle ingénieur

Variables d’entrées :
A, B, C : Variables correspondant aux boutons poussoirs actionnées par les joueurs, A,B et C. Variable à
1 quand le Bouton poussoir est enfoncé, à 0 quand le bouton poussoir est relâché.
RAZ : Variable correspondant au bouton poussoir actionné par l’animateur (le sympathique Julien
Lepers). Variable à 1 quand le Bouton poussoir est enfoncé, à 0 quand le bouton poussoir est relâché.

Variables de sorties :
VA, VB, VC : Variables correspondants aux voyant lumineux situé au dessus des joueurs. Le voyant
s’allume si la variable correspondante est à 1.
CBUZ : Variable déclenchant la commande du Buzzer. La variable doit passer à 1 si un des joueurs a
appuyé sur son bouton poussoir.

Variable interne :
H : signal d’horloge qui cadence le système. La fréquence de l’horloge est à déterminer.

Travail à effectuer :
La fonction à réaliser par les circuits numériques à concevoir sera décrite en utilisant le formalisme de la
machine à états finis ou la table de transition puis la description VHDL correspondante.

On demande :
- le diagramme d’états ou la table de transition de la fonction à réaliser.
- le code VHDL correspondant au diagramme d’états.

Remarque : Il existe des logiciels comme FSM permettant à partir d’un diagramme d’états de générer un
fichier VHDL.

Application N°2 : Robot Abeille baladeuse


Une abeille-jouet à roulettes pour enfants se présente sous la forme suivante :

L’abeille fonctionne à pile . Un moteur à courant continu entraîne les roues de l’abeille. Une commande
par relais permet d’inverser le sens de rotation du moteur par inversion de la polarité. L’abeille est
équipée d’un capteur à l’avant (Capteur AV) et d’un capteur à l’arrière (Capteur AR). Ces capteurs sont
en fait de simples boutons poussoirs.

L’appareil est équipé de 2 boutons poussoirs sur le dos de l’abeille : un bouton poussoir qui met l’abeille
en marche (Bouton poussoir M) et un qui permet de l’arrêter (Bouton poussoir A).

La gestion du véhicule est assurée par un système séquentiel synchrone embarqué dans le véhicule.

Par M.JAROU 2|Page


Elément de Module : Electronique numérique 2 ENSAK-Cycle ingénieur

Variables d’entrée :
 AV : Bouton poussoir Avant : à 1 si un obstacle est présent
 AR : Bouton poussoir Arrière : à 1 si un obstacle est présent
 M : Bouton poussoir Marche : à 1 si le Bouton poussoir est appuyé.
 A : Bouton poussoir Marche : à 1 si le Bouton poussoir est appuyé.

Variables de sortie :
 D : Commande du moteur dans le sens direct ( à 1 en marche avant)
 I : Commande du moteur dans le sens inverse( à 1 en marche arrière)

Nota : Véhicule arrêté D=0 et I = 0

Le fonctionnement de l’abeille est le suivant :


Dès que l’utilisateur appuie sur M (M=1), l’abeille se met en marche avant. (D=1). Dès qu’un obstacle est
détecté à l’avant (AV=1), l’abeille recule (I=1) jusqu’à ce qu’un obstacle soit détecté à l’arrière (AR =1).
Le cycle continue jusqu’à ce que l’utilisateur appuie sur A (A=1), le moteur s’arrête (D=0, I=0).

Remarque : Quand le véhicule recule, un dispositif mécanique met les roues en position de tourner, ce
qui permet au véhicule de ne jamais rester sur le même parcours.

Travail à effectuer :
La fonction à réaliser par les circuits numériques à concevoir sera décrite en utilisant le formalisme de la
machine à états finis ou la table de transition puis la description VHDL correspondante.

On demande :
- le diagramme d’états ou la table de transition de la fonction à réaliser.
- le code VHDL correspondant au diagramme d’états.

Application N°3 : Le chronomètre


On se propose de réaliser un chronomètre à 5 leds permettant de « simuler » le déplacement d’une aiguille
de chronomètre. Cet afficheur s’inspire de ce qui existe sur les montres Casio. Le cycle d’allumage des 5
leds est le suivant :

Par M.JAROU 3|Page


Elément de Module : Electronique numérique 2 ENSAK-Cycle ingénieur

Au bout de 10s, retour à la position initiale. Le repérage des leds sera conforme à la figure suivante :

Travail à effectuer :
La fonction à réaliser par les circuits numériques à concevoir sera décrite en utilisant le formalisme de la
machine à états finis ou la table de transition puis la description VHDL correspondante.

On demande :
- le diagramme d’états ou la table de transition de la fonction à réaliser.
- le code VHDL correspondant au diagramme d’états.

Application N°4 : Le dé électronique affichage à leds


On se propose de réaliser un dé électronique avec affichage à leds. Le système est équipé d’un bouton
poussoir noté BP et de 7 leds D1 à D7. Tant que le bouton poussoir BP est appuyé, le dé parcours un
cycle de 6 états à « grande vitesse » (suffisamment vite pour ne pas être distingué par un oeil humain).
Dès que le bouton poussoir BP est relâché, le dé s’arrête dans l’un des 6 états du cycle.

Les 6 états du cycle sont les suivants :

Le repérage des leds est le suivant de gauche à droite et de haut en bas : D1, D2..D7. La led centrale est
donc D4, la led en bas à droite est D7.

Travail à effectuer :

Par M.JAROU 4|Page


Elément de Module : Electronique numérique 2 ENSAK-Cycle ingénieur

La fonction à réaliser par les circuits numériques à concevoir sera décrite en utilisant le formalisme de la
machine à états finis ou la table de transition puis la description VHDL correspondante.

On demande :
- le diagramme d’états ou la table de transition de la fonction à réaliser.
- le code VHDL correspondant au diagramme d’états.

Application N°5 : Le dé électronique affichage 7 segments


On se propose de réaliser un dé électronique avec affichage 7 segments. Le système est équipé d’un
bouton poussoir noté BP et d’un afficheur 7 segments ( segments repérés a, b, c, d, e, f ,g). Tant que le
bouton poussoir BP est appuyé, le dé parcours un cycle de 6 états à « grande vitesse » càd suffisamment
vite pour ne pas être distingué par un oeil humain.

Dès que le bouton poussoir BP est relâché, le dé s’arrête dans l’un des 6 états du cycle. Les 6 états du
cycle sont repérés par un chiffre de 1 à 6 représenté sur l’afficheur 7 segments :

Rappel : Repérage des segments et affichage des chiffres de 1 à 6 sur un afficheur 7 segments.

Travail à effectuer :
La fonction à réaliser par les circuits numériques à concevoir sera décrite en utilisant le formalisme de la
machine à états finis ou la table de transition puis la description VHDL correspondante.

On demande :
- le diagramme d’états ou la table de transition de la fonction à réaliser.
- le code VHDL correspondant au diagramme d’états.

Application N°6 : Gestion de parking (3 points)


Le but de notre système est de gérer la disponibilité des places de parking. Ce système possède 4 signaux
d’entrée (mode in) les captures d’entrée-sortie de type std_logic, l’horloge et le nombre maximal de
places dans le parking (mot binaire de 4 bits de type std_logic_vector).

Les entrées capteurs servent à incrémenter ou à décrémenter le compteur (4 bits). La sortie de compteur
est comparée au nombre maximal de places dans le parking.
Les signaux de sortie (mode out) sont :

 PD = 1 s’il reste des places disponibles si non PD=0 (type std_logic).


 PC= 1 si le parking est complet si non PC=0 (type std_logic).

Par M.JAROU 5|Page


Elément de Module : Electronique numérique 2 ENSAK-Cycle ingénieur

1. Ecrire l’entité qui décrit la vue externe de ce système.


2. Donner l’architecture comportementale en utilisant un process et de l’affectation conditionnelle.
Utilisez dans le process l’instruction if…. Then…..elsif...

Application N°7 : Communication par liaison série


Il s’agit de réaliser à partir d’un code source en VHDL une communication par liaison série entre deux
module, voir schéma ci-dessous.

Partie I : Réalisation du MODULE A


1. Diviseur:
Ce sous module assure la division de l’horloge HOR à 48 MHz afin d’obtenir un signal de fréquence 10
kHz permettant de cadencer l’envoi de chaque bit.

Réaliser ce diviseur à partir de 3 compteurs 8 bits. Utilisez pour cela 3 variables (COUNT_0, COUNT_1,
COUNT_2) de type integer, représentant chacune la valeur d’un compteur.

2. Compteur Front Montant/Front Descendant :


Grâce à ce sous module, on compte les différents fronts montant et descendant de l’horloge 10 KHz afin
de pouvoir positionner la sortie clk au repos (clk = 0) ou active (horloge 10 kHz).

Dans notre cas, la sortie clk se positionne au repos (niveau logique 0) lorsque 8 fronts montant et
descendant auront été comptés (correspondant à l’envoi de 8 bits). La sortie clk sera à nouveau active si le
signal raz est actif (envoi d’une nouvelle donnée).

Décrire le comportement en VHDL de ce sous module.

3. Sérialisation :
Ici, ce module effectue la sérialisation de la donnée 8 bits présente sur donnée Din. Cette donnée est
sérialisée grâce au cadencement 10kHz (clk) du sous module de sérialisation.

Pour se faire on va procéder par décalage du bus donné. C'est-à-dire que le bit 0 (LSB) va être envoyé,
ensuite on décale les bits 8 à droite et nous répétons cela 7 fois. On aura, au total, envoyé nos 8 bits de
commande un à un. La sortie du module A nommé data.

Donnez la description en VHDL synthétisable de ce registre à décalage à droite chargement parallèle


synchrone.

Par M.JAROU 6|Page


Elément de Module : Electronique numérique 2 ENSAK-Cycle ingénieur

Partie II : Réalisation du MODULE B


Le module B nous permettra de réceptionner la donnée série émise par le module A puis de l’envoyer à
l'afficheur LCD.

Le module permet simplement la désérialisation des données reçus par le Module A nommée data et qui a
été envoyé grâce à l’horloge clk. RAZ est une remise à zéro (1 bit) asynchrone actif au niveau bas (‘0’).

Faire une description en langage VHDL (entity et architecture) d’un registre série-parallèle à 8 bits pour
le module B.

Application N°8 :: Diagramme d’état d’un circuit asynchrone


Le système à concevoir dispose deux entrées R et P et une sortie Q. Les valeurs d'entrée sont indiquées
sur les arcs, les noms de l'état et les valeurs de sortie des états stables sont indiquées dans les cercles. Sans
oublier l’entrée d’horloge qui fait avancer le processus, et celle de remise à zéro qui permet de
l’initialiser le système: L’état initial est l’état A.

La description du système se fait par un nombre fini d’états. Ci-dessous la représentation


schématique d’un système à 6 états (A, B, C, D, E et F) :

Par M.JAROU 7|Page


Elément de Module : Electronique numérique 2 ENSAK-Cycle ingénieur

Donner la description en langage VHDL (Entité et Architecture) de ce système en se basant sur le


diagramme d’état. Le système est actif sur front montant.

Par M.JAROU 8|Page


Elément de Module : Electronique numérique 2 ENSAK-Cycle ingénieur

Application de synthèse :
Fréquencmetre :

Unité de comptage

Par M.JAROU 9|Page


Elément de Module : Electronique numérique 2 ENSAK-Cycle ingénieur

Diviseur de fréquence

 

Par M.JAROU 10 | P a g e
Elément de Module : Electronique numérique 2 ENSAK-Cycle ingénieur

Fréquencemètre

Par M.JAROU 11 | P a g e

You might also like