Académique Documents
Professionnel Documents
Culture Documents
Machine de Mealy
2
Description VHDL
L3 EEA – LU3EE100
Previously on LU3EE100…
iPad
- 2 processeurs ARM
- Mémoire
- Périphériques (video, E/S)
C4 Source: Apple
Source: Chipworks
3 Processeur A9X
L3 EEA – LU3EE100
Périphérique Matériel
Composant qui aide le processeur à réaliser une
tâche spécifique
PARTIE PARTIE
OPERATIVE CONTRÔLE
4 Périphérique
L3 EEA – LU3EE100
Partie Opérative / Contrôle
Système Numérique Complexe
Partition des Ressources
Calculet Mémorisation (PARTIE OPÉRATIVE)
Contrôle (PARTIE CONTRÔLE)
C4
PARTIE PARTIE
OPERATIVE CONTRÔLE
5
L3 EEA – LU3EE100
Partie Opérative / Contrôle
P.Ctrl commande les actions de la P.Opé
En fonction
1) Des entrées du système
2) Des résultats engendrés par la partie opérative
3) De la propre évolution de la partie contrôle
C4 3
PARTIE PARTIE
OPERATIVE 2 CONTRÔLE
3
6
L3 EEA – LU3EE100
Partie Contrôle
7
L3 EEA – LU3EE100
Graphes d’état
Graphe d’états
Description du comportement du système:
Son état
Si
Sortie 1 = …
Pour chaque état va
C4 correspondre une série d’actions Sortie 2 = …
Son évolution
En fonction (ou non) d’événements
9 sur les entrées du système
L3 EEA – LU3EE100
Évolution des États
Inconditionnelle
La transition s’effectue indépendamment
de l’évolution des entrées
10
L3 EEA – LU3EE100
Graphe d’états
Exemple complet
Sortie 1 = 0
S0 Sortie 2 = 0
Entrée 1 Entrée 1
Sortie 1 = 1 Sortie 1 = 0
Sortie 2 = 0 S1 Entrée 2
S2 Sortie 2 = 1
C4 Entrée 2
Sortie 1 = 0 Sortie 1 = 1
Sortie 2 = 1
S3 Entrée 2
S4 Sortie 2 = 1
11 Entrée 2
L3 EEA – LU3EE100
Critères de Déterminisme
Pour être synthétisable, une machine à états doit
être déterministe
Dans le graphe d’états, à tout instant, le système
doit être dans un et un seul état
Contraintes de construction du graphe
Sortie 1 = 1 Sortie 1 = 0
Sortie 2 = 0 S1 Entrée 2
S2 Sortie 2 = 1
C4 Entrée 2
Sortie 1 = 0 Sortie 1 = 1
Sortie 2 = 1
S3 Entrée 2
S4 Sortie 2 = 1
13 Entrée 2
L3 EEA – LU3EE100
Graphe d’états
Exemple complet
Sortie 1 = 0
Indique l’état initial
S0 Sortie 2 = 0
du système
Entrée 1 Entrée 1
Sortie 1 = 1 Sortie 1 = 0
Sortie 2 = 0 S1 S2 Sortie 2 = 1
C4
Par convention, une transition Entrée 2
vers le même état
peut ne pas apparaître
Sortie
sur le1 =graphe
0 Sortie 1 = 1
(Représentation S
Sortie 2 = 1 implicite)
3 Entrée 2
S4 Sortie 2 = 1
14
L3 EEA – LU3EE100
Etat d’initialisation
Dans le graphe, l’état d’initialisation
représente l’état dans lequel se
retrouve le système après un
RESET ASYNCHRONE S0
Les transitions d’un état vers l’état initial par suite
C4 d’un RESET ASYNCHRONE ne sont pas explicitées
dans le graphe
Transposition Matérielle
Du graphe aux portes logiques…
Réalisation Machine à États
C4
Méthode de réalisation
17
L3 EEA – LU3EE100
Transposition Électronique
Éléments nécessaires
État du système État n
D Q
n État
Futur Présent
Registre d’états
H Raz
État
n Présent
Évolution du système m n État
Entrées Combinatoire Futur
18
L3 EEA – LU3EE100
Machine de Moore
C4
Combinatoire Combinatoire
D Q
Entrées États État État Sorties Sorties
Futur Présent
19 H Raz
L3 EEA – LU3EE100
Réalisation Machine d’états
S0 1 0 S2 0 0 Sortie 1 = 1 Sortie 1 = 0
S0 1 1 S2 0 0 Sortie 2 = 0 S 1 Entrée 2
S 2 Sortie 2 = 1
S1 0 0 S3 1 0 Entrée 2
S1 0 1 S3 1 0
S1 1 0 S3 1 0 Sortie 1 = 0
S S
Sortie 1 = 1
Sortie 2 = 1 3 4 Sortie 2 = 1
C4 S1 1 1 S3 1 0
Entrée 2
S2 0 0 S2 0 1 Entrée 2
S2 0 1 S4 0 1
Table de transition du graphe du slide 11
S2 1 0 S2 0 1
S2 1 1 S4 0 1
Les transitions s’effectuent sur des fronts d’horloge
24 Une machine d’état est un système SYNCHRONE
L3 EEA – LU3EE100
Codage des états
25
L3 EEA – LU3EE100
Codage des états
Nombre de bascules minimales nécessaires
Si 2n états dans le graphe
n bascules dans le registre d’états
Choix d’un code binaire pour chaque état
Codage aléatoire
Le code de chaque état est choisi arbitrairement par le
C4 concepteur
Codage adjacent
Un seul bit peut être modifié pour chaque transition
Cet encodage n’est pas toujours possible selon les graphes
26
L3 EEA – LU3EE100
Exemple Codage Aléatoire
S0
000
S1 S2
001 010
C4
S3 S4
011 100
27
L3 EEA – LU3EE100
Exemple Codage Adjacent
S0
00
S1
01
C4
S2 S3
11 10
28
L3 EEA – LU3EE100
Exemple Codage Adjacent
Impossible sur ce graphe
S0
S1
C4
S2
29
L3 EEA – LU3EE100
Autres codages
Principe: La taille du code n’est plus
forcément optimale
Augmentation de la taille du registre d’états
Combinatoire
Combinatoire Combinatoire
Combinatoire
D Q
Entrées États
États État État Sorties
Sorties
Sorties
Futur Présent
30 H Raz
L3 EEA – LU3EE100
Autres codages
Codage total synchrone
C4
Sorties
Combinatoire
D Q
Entrées États État État
Futur Présent
31 H Raz
L3 EEA – LU3EE100
Codage Total Synchrone
Méthode
Recopier l’état des sorties dans le codage des états
Compléter éventuellement avec d’autres bits
S0 X=1
010 Y=0
X=0 S1
C4 Y=1 0 01
X=1 S2 S3 X=1
Y=0 110 011 Y=1
32
L3 EEA – LU3EE100
Codage Total Synchrone
Etat C
Pres.
Q2 Q1 Q0 X Y O D2 Q 2
M
S0 0 1 0 1 0
B
S1 0 0 1 0 1 I
S2 1 1 0 1 0 N X
S3 0 1 1 1 1 A D1 Q 1
C4 T
X = Q1 O
I
Y = Q0 Entrées
R D0 Q 0
Y
E
33 H Raz
L3 EEA – LU3EE100
Autres codages
Codage One-Hot
Principe: 1 bascule par état
Pour chaque état, le code a 1 seul bit à 1
Si Qi = 1 alors la machine est à l’état i
C4
Combinatoire Combinatoire
États
D Q
Entrées État État Sorties
Présent Sorties
Futur
34 H Raz
L3 EEA – LU3EE100
Codage One-Hot
Etat Présent: Q3Q2Q1Q0
S0 X=1
Etat Futur: D3D2D1D0 0001 Y = 0
E1=1
X = 0 S1 E1=0
Y = 1 0010
E2=1
C4
X=1 S2 S3 X=1
Y=0 0100 1000 Y = 1
E2=1
C4
X=1 S2 S3 X=1
Y=0 0100 1000 Y = 1
Entrées
C4 Combinatoire Combinatoire
D Q
États État État Sorties Sorties
Futur Présent
H Raz
38
L3 EEA – LU3EE100
Machines de Mealy
Représentation sur le graphe d’états
État des sorties sur les arcs
X=1
Y=0 S0
E1=1 00
L3 EEA – LU3EE100
Machine de Mealy Synchrone
Inconvénient Mealy:
Valeurs transitoires des sorties
Synchronisation des différents signaux de sortie
Entrées
C4 Combinatoire Combinatoire S
États D Q D Q
État État Sorties
Futur Présent
H Raz H Raz
41
L3 EEA – LU3EE100
X=1
S0 Y=0
E1=1
X=0
Y=1
S1 E1=0
E2=1
X=1 X=1
S2 S3 Y=1
Y=0
C4 Combinatoire Combinatoire
D Q
Entrées États État État Sorties Sorties
Futur Présent
2) 3)
H Raz
1)
43
L3 EEA – LU3EE100
Machine de Moore - VHDL
entity MAE is
port( h,raz: in std_logic;
e1,e2: in std_logic;
X,Y: out std_logic);
X=1
end MAE;
S0 Y=0
E1=1
X=0
Y=1
S1 E1=0
C4
E2=1
X=1
X=1 S2 S3 Y=1
Y=0
44
L3 EEA – LU3EE100
Machine de Moore - VHDL
X=1
S0
architecture Moore3 of MAE is E1=1
Y=0
begin
Master SDI – MS115 – 2007-20
-- Process du Registre d’etats Codage des états non spécifié.
C4 process(h,raz) Établi par un outil de synthèse
begin en fonction de consignes
if raz=‘0’ then EP <= S0;
elsif rising_edge(h) then EP <= EF;
end if;
end process;
45
L3 EEA – LU3EE100
Machine de Moore - VHDL
X=1
S0 Y=0
E1=1
X=0
Y=1
S1 E1=0
-- Combinatoire des etats
process(EP,e1,e2) E2=1
X=1
X=1 S2 S3
begin Y=0 Y=1
case (EP) is
when S0 => EF<=S3; if e1=‘1’ then EF<=S1;Master
end if;
SDI – MS115 – 2007-20
process(EP)
begin X=1 S2
E2=1
S3 X=1
Y=0 Y=1
case (EP) is
when S0 => X<=‘1’; Y<=‘0’;
when S1 => X<=‘0’; Y<=‘1’; Master SDI – MS115 – 2007-20
47
L3 EEA – LU3EE100
Machine de Moore - VHDL
-- Tout le combinatoire en un process X=1
S0 Y=0
process(EP,e1,e2) E1=1
begin X=0
Y=1
S1 E1=0
X<=‘1’; Y<=‘1’;
E2=1
case (EP) is X=1 S2 S3 XY == 11
Y=0
when S0 => Y<=‘0’;
EF<=S3; if e1=‘1’ then EF<=S1; end if;
when S1 => X<=‘0’; Master SDI – MS115 – 2007-20
EF<=S2;
C4 when S2 => Y<=‘0’;
EF<=S2; if e2=‘1’ then EF<=S3; end if;
when S3 => EF<=s0;
end case;
end process;
48
L3 EEA – LU3EE100
Machine de Mealy - VHDL
entity MAE is
port( h,raz: in std_logic;
e1,e2: in std_logic;
X,Y: out std_logic);
end MAE; E =1
1
S0
X=1 00
Y=0
S1 X=0 E1=0 X=1
C4 01 Y=0 Y=1
X=0
Y=1
E2=1
S2 S3
E2=0 10 11
X=1
X=0
49 Y=1
Y=0
L3 EEA – LU3EE100
Machine de Mealy - VHDL
X=1
Y=0 S0
architecture Mealy of MAE is E1=1 00
C4 process(h,raz)
begin
if raz=‘0’ then EP <= S0;
elsif rising_edge(h) then EP <= EF;
end if;
end process;
50
L3 EEA – LU3EE100
Machine de Mealy - VHDL
X=1
Y=0 S0
process(EP,e1,e2) E1=1 00
begin
-- Process du Registre d’etats
C4 process(h,raz)
begin
if raz=‘0’ then EP <= S0; X<=‘0’; Y<=‘0’;
elsif rising_edge(h) then EP <= EF; X<=C1; Y<=C2;
end if;
end process;
52
L3 EEA – LU3EE100
Mealy Synchrone - VHDL
X=1
Y=0 S0
process(EP,e1,e2) E1=1 00