Telechargé par dhaouadi hazem

vhdl-machine-a-etat compress

publicité
Machine à états finis
1
Rappels: Définition des systèmes électroniques
Un système électronique est caractérisé par
• Ses entrées : e0; …; ei; … ; en
• Son état électrique E
• Ses sorties : s0; … ; si; … ; sn
Il existe deux type de systèmes électroniques
l aide de logique combinatoire
• Les systèmes combinatoires construits à l’aide
• Les systèmes séquentiels construits à l’aide de logique séquentielle
M hi
Machines
à états
é
• Les combinaisons des entrées conduisent à un nombre fini de combinaisons de
sortie
sortie.
• d’où l’appelation machine à nombre d’états finis ou Machine A Etats.
• Vecteur d’entrée : Combinaison des variables d’entrée
• Vecteur de sortie : Combinaison des variables de sortie
2
Machines à états
Notations :
• Entrée : E
• Etat Présent : EP
• Etat Futur : EF
• Sortie : S
Définitions
• Etat : Indicateur de position dans le temps
• Registre d’Etat : Composé de bascules permettant de mémoriser les valeurs des
états
• Etat Présent : sortie stable du registre
g
d’état à l’instant pprésent
• Etat Futur : état dans lequel se trouvera la machine après une impulsion
d'horloge
3
Table de transition : deux parties indiquant le présent et le futur.
• E : Entrée à l’instant n
• EP : Etat Présent à l’instant n
• EF : Etat Suivant à l’instant n + 1
• S : Fonction de Sortie à l’instant n + 1
• Table de transition
4
1. Introduction
Les machines à états finis
(Finite State Machine, FSM)
Servant exclusivement à ggénérer des
signaux de commande.
La machine à état représente la partie contrôle, c’est à dire le cerveau du
système électronique qui commande la partie opérative
5
Les états de la machine à états
Déf: Les états de la machine à états représentent toutes les valeurs que peuvent prendre
les variables internes du circuit de logique séquentielle
Exemple:
Machine à café
L états
Les
ét t peuventt être
êt
Cette machine peut se
compliquer en prenant en compte
1. Attente de pièce
2. Descendre le gobelet
3 Verser la poudre de café
3.
4. Verser l’eau chaude
5. Indiquer que c’est prêt
• Le choix de la boisson,
• Le dosage du sucre
6
2. Le graphe d’états
Comment représenter graphiquement le comportement
d’une machine à états ?
nn’est
est pas aléatoire,
aléatoire
Dans une machine à états donnée
la loi d’évolution
de l’état
Ces lois
P
Permet
t dde dét
détermines
i
l valeur
la
l
des sorties.
Soigneusement choisies par le
créateur de la machine afin que celle-ci
remplisse une fonction précise.
Le graphe d’états, comme son nom l’indique, représente graphiquement les états d’une
machine
hi à états
ét t
Chaque état est dessiné sous la forme d’une bulle
contenant son nom
7
Prenons l’exemple d’une machine à laver où on considère 5 états comme
illustré dans la figure
T1
T0
On appelle état source l’état
d dé
de
départt d’une
d’
ttransition
iti ett
état destination l’état
d’arrivée
Prélavage
Lavage
Arrêt
Essorage
Rinçage
Certaines transitions ont le
même état pour source et
pour destination.
Cela signifie que la machine
peutt rester
t dans
d
le
l même
ê état
ét t
pendant un certain temps.
On complète le graphe en figurant les transitions possibles par des flèches entre les
états.
8
Le graphe constitue une représentation assez
d
dense
dde l’é
l’évolution
l ti possible
ibl de
d la
l machine
hi au
cours du temps.
Pour enrichir encore notre graphe nous devons préciser les spécifications de la
machine
hi et,
t plus
l particulièrement,
ti liè
t la
l loi
l i d’évolution
d’é l ti des
d variables
i bl internes
i t
(l’état) en fonction des entrées.
Supposons que les entrées de
notre machine soient au
nombre de trois :
M : variable booléenne qqui traduit la position
p
du
bouton Marche/Arrêt du lave-linge.
P : variable booléenne qui indique si le programme de
lavage sélectionné par ll’utilisateur
utilisateur
comporte ou non une phase de prélavage.
C : valeur en minutes d’un chronomètre qui est
remis
i à zéro
é automatiquement
t
ti
t au début
déb t de
d
chaque étape de lavage.
9
Les durées des différentes étapes de lavage sont fixées par le constructeur :
• Prélavage : 10 minutes
• Lavage : 30 minutes
• Rinçage : 10 minutes
• Essorage : 5 minutes
A partir de ces informations complémentaires nous pouvons faire figurer
sur le graphe les conditions logiques associées à chaque transition.
transition
lorsque la machine est dans l’état Arrêt
elle y reste tant que
q M n’est pas
p vrai au
front montant de l’horloge.
Dès qque M
est vrai
l’horloge
g la machine
change d’état
Elle passe dans l’état Prélavage si P est
vrai et dans l’état Lavage si P est faux.
N t machine
Notre
hi estt synchrone
h
sur front
f t montant
t t de
d
l’horloge.
10
Or un circuit électronique
sans sorties n’est que de peu
d’utilité.
Notre machine à états possède des entrées mais
nous n’avons ppas encore étudié les sorties.
celles dont les sorties ne
dé d t que de
dépendent
d l’état
l’ét t courantt
ce sont les machines
dit de
dites
d Moore
M
celles dont les sorties dépendent
de l’état courant et des entrées
ce sont les machines
dites de Mealy
Il existe
i t deux
d
sortes
t d
de
machines à états :
N.B. Le programmateur de notre lave linge est donc une machine de Moore dont les
sorties ne dépendent que de l’état courant.
11
Nous supposerons que ses sorties sont trois signaux booléens, X, Y et Z destinés à
ppiloter les différents moteurs du lave-linge.
g
Nous pouvons encore compléter le
graphe d’états afin d’y faire figurer
cette information.
12
3. Machines à états finis
U machine
Une
hi à états
ét t finis
fi i estt un circuit
i it séquentiel
é
ti l dont
d t les
l sorties
ti dépendent
dé d t d’un
d’ état
ét t ett
éventuellement des entrées
La Figure
L
Fi
illustre
ill t la
l structure
t t
logique générale d’un tel circuit
(Calcul de
l’état futur)
(Registre d’état)
(Calcul des
sorties)
le cœur de la machine d’états
Le bloc SM (State Memory) a pour
Il a par essence un comportement
fonction de mémoriser l’état courant
séquentiel synchronisé sur un signal
de la machine.
d’horloge.
L bloc
Le
bl NSL (Next
(N t St
State
t L
Logic)
i ) a pour ffonction
ti de
d calculer
l l le
l prochain
h i état
ét t en fonction
f ti de
d
l’état courant et des entrées
Le bloc OL ((output
p Logic)
g ) a ppour fonction la ggénération des signaux
g
de sortie en fonction de
l’état courant et éventuellement des entrées.
13
La modélisation VHDL d’une machine à états finis doit considérer les points suivants:
1.
Dans le premier cas, les états sont
énumérés et identifiés par un code
explicite
L’utilisation d’un registre
d’état explicite ou implicite
Dans lle second
D
d cas, les
l états
ét t ne sontt
pas nommés et découlent de la
structure du modèle.
2.
3.
La répartition
L
é titi en circuits
i it
combinatoires et séquentiels.
Le choix machine de
Moore ou de Mealy
Une machine de Mealyy offre pplus
de flexibilité qu’une Machine de
Moore
Une machine de Moore peut par contre
être optimisée
p
de manière à éviter le bloc
OL par un codage approprié des états
car les sorties peuvent
changer dans le cas où
le circuit reste dans un
même état.
les sorties sont codées
d
dans
les
l états
ét t
14
4.
La méthode d’initialisation
((reset))
5. L’encodage des états
qui peut être synchrone
ou asynchrone
y
La manière de représenter les états (explicites) a un effet
important sur les performances du circuit en termes de
surface de délais et de consommation
surface,
consommation.
La formalisation des différentes formes de machines à états finis utilisera les
notations suivantes:
Xi: entrées primaires
Zi: sorties primaires
Si: état
ét t courantt
f(...): fonction combinatoire
fclk(...): fonction de type flip-flop évaluée sur un flanc d’horloge.
15
3.1. Machine de Moore
Une machine de Moore traditionnelle est
caractérisée par les relations suivantes:
La Figure donne un exemple de machine de
Moore représentée
p
ppar un diagramme
g
d’états
Les cercles représentent les états et les flèches
représentent
é t t les
l transitions
t
iti
entre
t les
l états.
ét t
La transition d’un état à l’autre est synchronisée
sur le flanc d’un signal d’horloge implicite.
Chaque cercle indique le nom dd’un
un état (en haut) et les valeurs prises par les sorties
(en bas) lorsque la machine est dans cet état.
16
Le Code donne le modèle VHDL correspondant.
Le modèle du Code déclare un type énuméré
fsm_states à trois valeurs possibles et un signal
local state qui représente le registre d’état de la
machine.
Les états sont par défaut encodés par des
valeurs binaires successives en fonction de
ll’énumération
énumération des états:
S0 (("00"))
S2 ("10" )
S1 ("01")
L’état "11 "
est interdit.
17
3.2. Machine de Mealy
Une machine de Mealy traditionnelle est
caractérisée par les relations suivantes:
La Figure donne un exemple de machine de
Mealy représentée par un diagramme d’états
Les sorties primaires peuvent dépendre
directement des entrées pprimaires et leurs
valeurs peuvent changer même si la machine
reste dans le même état.
18
Le Code donne le modèle VHDL correspondant.
Le changement principal par rapport au modèle
d la
de
l machine
hi de
d Moore
M
réside
é id dans
d
le
l processus OL
Le processus estt aussii sensible
L
ibl à des
d
événements sur les entrées primaires x et les
valeurs des sorties primaires dépendent des
valeurs des entrées primaires
19
Téléchargement