Vous êtes sur la page 1sur 5

STIC L2

TD3 : Circuits Programmables


Machine à états finis

Ex1 : Détection d’un code


On veut concevoir un circuit qui détecte la séquence « 1001 ».
Le circuit génère une sortie Out égale à ‘1’ à chaque fois que les 4 dernières entrées sont
« 1001 ».
Schématisez le graphe de transition de Moore, de Mealy et donnez le code VHDL correspondant
à la machine de Moore.

Ex2 : Monte-charge
On considère un monte-charge effectuant la liaison entre les 2 niveaux d’un bâtiment (figure
ci-dessous). Le moteur est commandé par 2 signaux M (pour monter) et D (pour descendre). Ces
commandes sont élaborées à partir des entrées :
• B : bouton poussoir ( B=1 si le bouton est enfoncé)
• p0 et p1 : détecteurs de position aux niveaux 0 et 1 ( pi=1 si le monte charge est présent
au niveau i)
Le fonctionnement du système est décrit par le cahier des charges suivant :
1. Quand la cabine est à un étage, si B est inactif elle s’arrête, si B est actif elle change d’étage.
2. Quand la cabine est entre 2 étages la dernière commande (M ou D) est maintenue.

Schématisez le graphe de transition de Moore, et donnez le code VHDL correspondant.

1/5
Emna Amouri TD 3 VHDL
STIC L2

Ex3 : Effet Disco

Un jeune étudiant de IsetCom, fraîchement sorti de l’école, pense à mettre en pratique ses
compétences pour amuser des amis dans son mega party de fin de session. Il achète 5 lampes de
couleur avec lesquelles il veut réaliser un effet Disco. Il pose les cinq lampes les unes à côté des
autres, et veut obtenir le résultat suivant :

En plus de cette séquence, le jeune garçon ajoute un bouton B à son système qui lui permet
d’arrêter le système. Lorsqu’il appuie sur le bouton (B = 1), les lampes se figent au dernier état
rencontré. Finalement, il se dit que son système peut utiliser 3 sorties seulement étant donnée la
façon de les allumer. Il dessine le schéma suivant :

2/5
Emna Amouri TD 3 VHDL
STIC L2

Le jeune décide de suivre scrupuleusement la méthode enseignée dans son cours pour concevoir
une machine séquentielle de Moore.

Schématisez la machine à états finis, puis, décrivez en VHDL ce système.

Ex4 : Réalisation d’un compteur bi-directionnel synchrone et préchargeable

On veut réaliser un compteur synchrone de 8 bits qui peut être préchargé (initialisé) par une
valeur qui se trouve à l’entrée init du compteur au moment où l’entrée load est égale à ‘1’.
L’entrée dir permet de changer la direction du comptage (dir = ‘1’ pour l’incrémentation et dir =
‘0’ pour la décrémentation). Le comptage est autorisé par le signal ena (si ena = ‘1’, le compteur
compte, sinon il s’arrête et garde la valeur actuelle à sa sortie). Les entrées load, dir et ena sont
testées seulement pendant le front montant du signal d’horloge clk (entrées synchrones).
De plus, le compteur peut être remis à zéro d’une manière asynchrone par un signal rst actif à
zéro. Le symbole du compteur est présenté sur la figure suivante.
Décrivez en VHDL ce circuit.

3/5
Emna Amouri TD 3 VHDL
STIC L2

Ex5 : Registre PISO


On cherche à réaliser un registre à décalage PISO (Parallel In, Serial Out), 8 bits. Ce registre
possède une entrée de chargement synchrone load. Si load = ‘1’, alors, le registre charge la valeur
qui se trouve à l’entrée init. Sinon, le registre charge l’entrée série ES et effectue un décalage à
droite. La sortie série Data_out prend la valeur de la sortie de la dernière bascule à droite.

Par ailleurs, le registre possède une sortie supplémentaire (match) active à 1 si le contenu du
registre à décalage vaut une valeur précise (val). Cette valeur est une entrée du registre.

Le symbole du compteur est présenté sur la figure suivante. Décrivez en VHDL ce circuit.

Ex6 : Réalisation d’un séquenceur pour animer 4 diodes LED

Il s’agit de créer un circuit permettant d’animer quatre diodes LED D1 à D4. A chaque
instant donné, au plus une diode peut être allumée et elle restera allumée pendant une période
d’horloge. Puis c’est la diode suivante qui doit s’allumer. Il y a deux modes de fonctionnement
(deux suites possibles) sélectionnés par l’intermédiaire du signal d’entrée sel :
a) sens horaire (si sel = 0),
b) contre sens (si sel = 1).

4/5
Emna Amouri TD 3 VHDL
STIC L2

Figure 1. Disposition de quatre diodes à faire animer

Exemple de la suite en mode a) : D1 _ D2 _ D3 _ D4 _ D1 _ D2 _ …


Exemple de la suite en mode b) : D1 _ D4 _ D3 _ D2 _ D1 _ D4 _ …

Le module a une entrée d’horloge (clk), une entrée de sélection du mode (sel) et un signal de
remise à zéro asynchrone actif à zéro (reset). Après la remise à zéro l’afficheur se trouve dans un
état initial (aucune diode allumée), puis une des deux suites commence suivant la valeur d’entrée
sel, en partant de la diode D1. Si on changeait la direction pendant le fonctionnement de
l’afficheur, le contrôleur doit passer directement de la suite a) à la suite b) (sans passer par l’état
initial comme c’était le cas après la remise à zéro du contrôleur). Le module a quatre sorties
connectées avec les diodes.

5/5
Emna Amouri TD 3 VHDL

Vous aimerez peut-être aussi