Synthèse des machines à états
Christian Dupaty
Académie d’Aix Marseille
Bascule D synchrone
D CLK
Q Q
U1
DTFF U1(CLK)
U1(D) U1(CLK)
U1(Q)
U1(Q) U1(D)
Clk (H) Q(n+1)
0 Q
1 Q
Front actif D
Machine à états – modèle de Moore
LOGIQUE COMBINATOIRE
MÉMOIRE D’ETATS (N BASCULES D)
LOGIQUE COMBINATOIRE
Entrées Prochain Sorties
état
Etat antérieur
Horloge Reset
) 2 ln(
) ln(etats N =
Par exemple pour la machine à café, les états pourraient être : -Attente de pièce
-Descendre le gobelet -Verser la poudre de café -Verser l’eau chaude
-Indiquer que c’est prêt
Calcule les sorties Calcule le
futur
5 états donc 3 bascules D
Exemple 1 : production de train d’impulsions
Oscillateur 1KHz
Générateur de train de 2 ou 3 impulsions
&
Horloge 200mS C
N
S
Trains d’impulsions
• Si C=1
Si N=0 l’horloge de 200mS est recopiée deux fois sur S
Si N=1 l’horloge de 200mS est recopiée trois fois sur S
Diagramme d’état
1 0
2 3
C
/N
N RESET
00
01
11 10
S=h S=h
S=h
/C
S=0
Table des transitions des sorties des deux bascules D représentant les 4 états
états Q1 Q2
0 0 0
1 0 1
2 1 0
3 1 1
C
N /C
/N
Table d’évolution
Etat courant Entrées Etat futur Sorties
Q1 Q2 C N D1 D2 S
0 0 0 X 0 0 0
0 0 1 X 0 1 0
0 1 X X 1 0 H
1 0 X 1 1 1 H
1 0 X 0 0 0 H
1 1 X X 0 0 H
Le tableau d’évolution permet de définir les équations combinatoires des entrées des bascules D en fonction de l’état et des variables d’entrées.
Les sorties dépendent de l’état de la machine (et parfois des variables d’entrées)
D1=/Q1.Q2+Q1./Q2.N D2=/Q2./Q1.C+Q1./Q2.N
S=(Q1+Q2).H
Equations D1, D2 et S
D1=/Q1.Q2+Q1./Q2.N D2=/Q2./Q1/C+Q1./Q2.N
S=(Q1+Q2).h
D CLK
Q Q
U1
DTFF
D CLK
Q Q
U2
DTFF
U1(CLK)
U3
OR_2
U4
AND_2
U5
AND_3
U6
OR_2
U7
AND_3
U8
AND_3
? ?
U9
OR_2
?
U10
AND_2
N
C
S
N
C
Exemple 2 : Serrure codée
• L’accès à un local est protégé par une serrure codée associée à un automatisme
commandant la gâche électrique de la porte
Automatisme
Combinaison choisie : A,D,C.
E indique l’état ouvert ou fermée de la porte G=1 commande l’ouverture de la porte
Touche A Touche D Touche C
Gâche G Contact d’état de la porte (E)
Câblages
Touches n’intervenants
pas dans la séquence Touches intervenants dans la séquence
Contact de porte
R1
10k VDD
X
R2
10k VDD
A
R5
10k VDD
P
R3
10k VDD
D
R4
10k VDD
C
Diagramme d’état
1 0
2 3
A C+X
D A+X
C /P
RESET
00 01
11 G=1 G=0 10
G=0 G=0
/C./X./D
/C./A./X P
/A
Table des transitions des sorties des deux bascules D représentant les 4
états
états Q1 Q2
0 0 0
1 0 1
2 1 0
3 1 1
A
D
C /C./X./D
A+X
/P C+X
/C./A./X
P
/A
Table d’évolution
Etat courant Entrées Etat futur Sorties
Q1 Q2 A D C x P D1 D2 G
0 0 /A X X X X 0 0 0
0 0 A X X X X 0 1 0
0 1 X X 1 X X 0 0 0
0 1 X X X 1 X 0 0 0
0 1 X 1 X X X 1 0 0
0 1 X 0 0 0 X 0 1 0
1 0 0 X 0 0 X 1 0 0
1 0 1 X X X X 0 0 0
1 0 X X X 1 X 0 0 0
1 0 X X 1 X X 1 1 0
1 1 X X X X 1 1 1 1
1 1 X X X X 0 0 0 1
Equations D1, D2 et G
D1= /Q1.Q2.D+Q1./Q2.C+Q1./Q2./C./A./X.P+Q1.Q2.P D2=/Q1./Q2.A+Q1./Q2.C+/Q1.Q2./C./D./X.P+Q1.Q2.P
G=Q1.Q2
G
Q2 Q1
/Q1 /Q2
D CLK
Q Q
U1
DTFF
D CLK
Q Q
U2
DTFF
U3
AND_3
U4
AND_3
U6
AND_3
U7
AND_3 D
C
A
C
U1(CLK)
U9
AND_2
?
?
?
C D X C
A X /Q1 Q2
Q1 /Q2 P
U11
NOR_5
U5
OR_4
U13
AND_3 Q2
Q1
U10
NOR_5
U8
OR_4 Q2
/Q1
Q1 /Q2
Q1 Q2
/Q2 /Q1
Q1 /Q2
EXERCICES
Exercice 1 :Portail automatique
• Portail fermé (F)=1 moteur =0 (M=0)
Télécommande (T)=1 ouverture(sens S=1) moteur=1 (M=1) Portail ouvert (O)=1 moteur =0(M=0)
Télécommande (T)=1 fermeture (sens S=0) moteur=1 (M=1) Portail fermée (F)=1 moteur =0 (M=0)
• 2
ièmepartie : Amélioration , un coup de point C entraîne un
retour position initiale du mouvement en cours
Diagramme d’état Version non sécurisée
1 0
2 3
T
0
T F
RESET
000 001
011 010
M=1 S=0
M=0 S=X
M=1 S=1 M=0
S=X
/0
/F. /T /T
Table des transitions
états Q1 Q2
0 0 0
1 0 1
2 1 0
3 1 1
T
0
T /O
/T /F /T
F
Equations de D1,D2,M,S
D1=/Q1.Q2.0+Q1./Q2./T+Q1./Q2.T+Q1.Q2./F D1=/Q1.Q2.0+Q1./Q2+Q1.Q2./F
D1=/Q1.Q2.0+Q1(/Q2+Q2./F) D1=/Q1.Q2.0+Q1(/Q2+/F) D1=/Q1.Q2.0+Q1./Q2+Q1./F)
D2=/Q1./Q2.T+/Q1.Q2./0+Q1./Q2.T+Q1.Q2./F D2=/Q2.T+/Q1.Q2./0+Q1.Q2./F
M=/Q1.Q2+Q1.Q2=Q2
S=/Q1
Q1
/Q1 0
F
T
Q2
/Q2 D
CLK Q Q
U1
DTFF
D CLK
Q Q
U2
DTFF
U1(CLK)
? ?
?
/Q1 Q2 0
0
U5
AND_2 Q1
/Q2
0
U6
NOR_2 /Q1
F
U3
AND_3
U4
OR_3
U7
OR_3
U8
AND_2 /Q2
T
0
U9
NOR_3 Q1
/Q2 0
U10
NOR_3 /Q1
/Q2 F
U11
AND_2 Q2
/Q1
U12
AND_2 Q2
Q1
Portail automatique : schéma
Diagramme d’état Version sécurisée
1 0
2 3
T
0
T F
RESET
000 001
011 010
M=1 S=0
M=0 S=X
M=1 S=1 M=0
S=X
/0./C
/F./C /T /T
C
4
5
C
/C
/C
101 100
C
C
Table des transisitons
états Q1 Q2 Q3
0 0 0 0
1 0 0 1
2 0 1 0
3 0 1 1
4 1 0 0
5 1 0 1
T
0
T /O./C
/C /T
/F./C /T
/C C
C C
C
F
Exercice 2 : Testeur de réflexes
Jeux se pratiquant à deux joueurs, au signal, le premier qui appuie sur sa touche allume sa LED, le jeu est bloqué jusqu’à l’arrêt du signal.
Testeur de reflexes P
A B
SP SA SB
Testeur de reflexes
0
P1
RESET
00 01
SP=0 SA=0
/P
SB=0
2
3
10
11 /P
/P
SP=1 SA=0 SB=0
SP=1 SA=1 SB=0
SP=1 SA=0 SB=1
A
B
P
P /A./B
Table des transisitons
états Q1 Q2
0 0 0
1 0 1
2 1 0
3 1 1
P
A
B /A./B
P P
/P
/P
/P
Table d’évolution
Etat courant
Entrées Etat futur Sorties
Q1 Q2 P A B D1 D2 SP SA SB
D1=/Q1.Q2.A+/Q1.Q2.B+Q1./Q2.P+Q1.Q2.P
D2=/Q1./Q2.P./A./B+/Q1.Q2.B +/Q1.Q2./A +Q1.Q2.P
SA=Q1./Q2 SB=Q1.Q2
0 0 1 0 0 0 1 1 0 0
0 1 X 1 0 1 0 1 0 0
0 1 X 0 1 1 1 1 0 0
0 1 X 0 0 0 1 1 0 0
1 0 0 X X 0 0 1 1 0
1 0 1 X X 1 0 1 1 0
1 1 0 X X 0 0 1 0 1
1 1 1 X X 1 1 1 0 1
Schéma Testeur de reflexes
Q1 Q2
A
B
P
/Q2
SA
SB /Q1
D CLK
Q Q
U1
DTFF
D CLK
Q Q
U2
DTFF
U1(CLK)
? ?
/Q1 Q2 A
0
0
U3
AND_3
0
/Q1 Q2 B
U5
AND_3
/Q1 Q2 B
U8
AND_3 U9
AND_2 Q1 ?
/Q2
U10
AND_2 Q1 ?
Q2 Q1
/Q2 A
U7
OR_4 Q1
Q2 P
U13
AND_3
Q1 P
/Q1 /Q2 P A
B
U14
AND_4
U4
OR_3
U6
AND_2
U11
NOR_3
U12
NOR_2