Master EEA
Universit de Rennes 1 ISTIC
CentraleSup lec Rennes
Machine Etats Finis
en VHDL
Samuel CRAND
Laboratoire IETR - CNRS UMR 6164
B t. 11 B
T l : 02 23 23 65 04
E-mail : [email protected]
1
Syst me num rique
Unit de traitement
des donn es
- Combinatoire
- Additionneur
- Comparateur
- UAL
- S quentiel
- Registre d calage
- Compteur
Unit de contr le
- Synchronisation des t ches
- Automate
- S quenceur
- Machine tats finis
Commandes
Unit de contr le
Unit de traitement
des donn es
Signaux
de contr le
Donn es (entr e)
Donn es
(sortie)
2
Machines synchrones tats finis
Automate : Op rateur s quentiel
Automate : 1 tat parmi N
Passage dun tat l tat suivant : front montant ou descendant de lhorloge
Clock
Entr es
Sorties
Automate
3
Machine de MOORE
Machine de MEALY
Sorties = f( tats)
Sorties = f( tats, entr es)
D finition dune machine :
Entr es : Entr est
Sorties : Sortiest
Etat initial : Etat0
Etat pr sent : Etatt
Etat futur : Etatt+1
4
Machine tats finis
Machine de MOORE
. Caract ristique
Les sorties d pendent seulement de l' tat interne
. Avantages
Structure plus r guli re
Synchronisme des sorties
Filtrage de perturbations sur les entr es
. Inconv nient
Temps de r ponse = un cycle d'horloge
Et
Xt
St
Xt+1
5
4.3.2 Machines synchrones tats finis
Machine de MOORE
Equations :
Sortiest = f (Etatst)
Etatst+1 = f(Entr est, Etatst)
Entr est
Etatst
R seau
combinatoire
d'entr es
Etatst
Publicité
Bascules D
Sortiest
R seau
combinatoire
de sorties
Etatst+1
6
VHDL pour la synth se : exemples
Machine de MEALY
. Caract ristiques :
- Les sorties voluent lorsque les entr es voluent
- Les sorties ne sont pas toujours synchrones
Et
Xt
. Inconv nient :
- Asynchronisme des sorties
. Avantages :
- Simplification des sorties
- R duction des temps de r ponse
St
Xt+1
7
4.3.2 Machines synchrones tats finis
Machine de MEALY
Equations :
Sortiest = f (Etatst, Entr est)
Etatst+1 = f(Etatst, Entr est)
Entr est
Etatst
R seau
combinatoire
d'entr es
Entr est
Bascules D
Etatst+1
Etatst
Sortiest
R seau
combinatoire
de sorties
8
Machine de MOORE
Machine de MEALY
Les sorties d pendent seulement de
l' tat interne
Les sorties voluent lorsque les entr es voluent
Les sorties ne sont pas toujours synchrones
Avantages
Synchronisme des sorties
Filtrage de perturbations sur les entr es
Simplification des sorties
R duction des temps de r ponse
Inconv nients
Temps de r ponse = un cycle d'horloge
Asynchronisme des sorties
9
4.3.2 Machines synchrones tats finis
Repr sentation dune machine tats finis => Diagramme d tats
Action n-1
En-1
Cn-1
Action i
E2
C2
Ei
Action 2
Action 1
E1
C1
Ci
i = 0 n-1
Passage dun tat un autre tat => Condition logique
C1 : Condition de passage de l tat Ei l tat E1
Maintien dans un tat => Condition logique
Ci : Condition de maintien dans l tat Ei
10
4.3.2 Machines synchrones tats finis
Repr sentation dune machine tats finis => Diagramme d tats
Publicité
Transition conditionnelle
. Prise en compte de la condition sur les entr es uniquement
sur front de lhorloge
. Minimum 2 transitions conditionnelles partir dun tat
Transition inconditionnelle
. Prise en compte imm diate sur front de lhorloge
. Une seule transition inconditionnelle par tat
11
4.3.2 Machines synchrones tats finis
Relations logiques respecter dans un graphe d tats
Loi dexclusion mutuelle
A partir dun tat, toutes les
conditions doivent tre d finies
A partir dun tat, une seule
condition v rifi e
=> un seul tat activ
12
Machine tats finis
Codeur 1 -> 2
Sp cifications initiales
Codage
ou
Si din = 0 alors
Si din = 1 alors
ou
dout = 00
dout = 01
dout = 10 en alternance
Machine de MEALY
ou
Machine de MOORE
Diagramme d' tats
13
clk t t t din dout 10 01 Machine tats finis
Codage en VHDL
S quentialit -> Process
Etats de la machine :
. Signal : Assignation diff r e
- Prise en compte la fin du process
- Synchronisme
- Etat pr sent et tat futur par nature
. Variable : Assignation imm diate
- Prise en compte imm diate
Instructions VHDL
. CASE & IS
WHEN &
...
END CASE
14
Implantation d'une machine de MOORE en VHDL
1er cas : Un seul process et utilisation d'un signal pour l' tat de la machine
PROCESS(clk)
BEGIN
IF rising_edge(clk) THEN
CASE etat IS
WHEN etat1 =>
Sortie <= &;
IF entree = & THEN
etat <= etat2;
END IF;
&
END CASE;
END IF;
END PROCESS;
R sultat de la synth se
- Machine de MOORE
- Utilisation de 2 registres
- Effet de pipeline (latence d'un cycle)
Etat
Registres
Logique
combinatoire
d'entr e
entr es
clk
Logique
combinatoire
de sortie
Registres
sortie
Publicité
15
Implantation d'une machine de MOORE en VHDL
2 me cas : 2 process et utilisation d'un signal pour l' tat de la machine
Synchrone : PROCESS(clk)
BEGIN
IF rising_edge(clk) THEN
CASE etat IS
WHEN etat1 =>
IF entree = & THEN
etat <= etat2;
END IF;
&
END CASE;
END PROCESS Synchrone;
Combinatoire : PROCESS(etat)
BEGIN
CASE etat IS
WHEN etat1 =>
sortie <= &;
...
END CASE;
END PROCESS Combinatoire;
Etat
Registres
Logique
combinatoire
d'entr e
entr es
clk
Machine de MOORE ? OUI
Logique
combinatoire
de sortie
sortie
16
Implantation d'une machine de MEALY en VHDL
2 process et utilisation d'un signal pour l' tat de la machine
Synchrone : PROCESS(clk)
BEGIN
IF rising_edge(clk) THEN
CASE etat IS
WHEN etat1 =>
IF entree = & THEN
etat <= etat2;
END IF;
&
END CASE;
END PROCESS Synchrone;
Combinatoire : PROCESS(etat, entree)
BEGIN
CASE etat IS
WHEN etat1 =>
IF entree = & THEN
sortie <= &;
ELSIF ...;
END IF;
END CASE;
END PROCESS Combinatoire;
Etat
Registres
Logique
combinatoire
d'entr e
entr es
clk
Machine de MEALY ? OUI
Logique
combinatoire
de sortie
sortie
17
Machine tats finis
Codeur 1 -> 2
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY codeur IS
Publicité
PORT ( clk,reset,din : in std_logic;
dout : out std_logic_vector (0 TO 1));
END;
18
Codeur 1 -> 2
Machine tats finis
ARCHITECTURE comp OF codeur IS
TYPE liste_etat IS (E0,E1,E2,E3) ;
SIGNAL etat : liste_etat;
BEGIN
P1 : process (clk,reset)
BEGIN
IF reset ='0' THEN etat <= E0;
ELSIF (clk='1' AND clk'event) THEN
CASE etat IS
WHEN E0 => IF din='1' THEN etat <= E1;END IF;
WHEN E1 => IF din='1' THEN etat <= E3;
ELSE etat <= E2;END IF;
WHEN E2 => IF din='1' THEN etat <= E3;END IF;
WHEN others => IF din='0' THEN etat <= E0;
ELSE etat <= E1;END IF;
END CASE;
END IF;
END process P1;
P2 : process(etat)
begin
CASE etat IS
WHEN E0 => dout <= "00";
WHEN E1 => dout <= "01";
WHEN E2 => dout <= "00";
WHEN others => dout <= "10";
END CASE;
END PROCESS P2;
END comp;
19
Protocole de communication
Echanges dinformations entre 2 composants
data1to2
Composant 1
Composant 2
Contr le
Composant 1 :
- Transmission des donn es data1to2, quand ?
- R ception des donn es data1to2, garantie ?
Composant 2 :
- Disponibilit du composant 2 pour recevoir les donn es data1to2 ?
- R ception des donn es data1to2, garantie ?
20
Protocole de communication
Echanges dinformations entre 2 composants
Composant 1
(Master)
data1to2
REQ
ACK
Composant 2
(Slave)
REQ : Requ te (REQuest)
- Information denvoi des donn es data1to2
ACK : Acquittement (ACKnowledgment)
- Information de la r ception des donn es data1to2
2 Machines tats finis
Composant 1
Composant 2
21
Protocole de demande-r ponse entrelac es (hand-shake)
avec requ te (REQuest) et acquittement (ACKnowledgment)
REQ
ACK
` lutilisateur envoie X et le signale par REQ=1
a la machine prend en compte X et le signale par ACK=1
b lutilisateur a vu que la machine a pris en compte X et signale par REQ=0
c la machine a vu que lutilisateur avait vu que la machine avait pris en compte X
et le signale par ACK=0)
Source : Steven Derrien - ISTIC
22