Vous êtes sur la page 1sur 14

Chapitre 3 :

Machine tat fini (FSM)

3.

Machines dtats finis

Utilise pour dcrire des systmes squentiels quelconques (state machine)


PRINCIPE :
La description du systme se fait par un nombre fini dtats. Ci-dessous la
reprsentation schmatique dun systme 4 tats (M0 M3), 2 sorties
(S1 et S2), 2 entres X et Y, sans oublier lentre dhorloge qui fait
avancer le processus, et celle de remise zro qui permet de linitialiser :
M0

Y=1

S1= 0
S2 = 0

M1
S1 = 1
S2 = 0

M3

dnomination de ltat

X= 0
M0

S1 = 0
S2 = 1

M2
S1 = 1
S2 = 1

23/12/2014 09:25

S1 = 0
S2 = 0
condition
Y=1
de la
transition
conditionnelle
R. EL ALAMI

Etat des sorties

transition inconditionnelle

3.

Machines dtats finis

Ltat initial est M0. Les 2 sorties sont 0. Au coup dhorloge on


passe inconditionnellement ltat M1 sauf si la condition Y=1 a
t vrifie, ce qui mne ltat M3 ou si X=0 a t valid ce qui
mne M2.
De M3 on revient au coup dhorloge M0. De M1 on passe
M2, et de M2 on passe M 3...
Dans chaque tat on dfinit les niveaux des sorties.

23/12/2014 09:25

R. EL ALAMI

3.

Machines dtats finis

3.1

Machine de MOORE

Pour les circuits squentiels simples que sont les compteurs ou plus
gnralement les machines dtat o l'on raisonne en tat prsent # tat futur,
avec des conditions de transitions, l'tat sera matrialis par n bascules d avec
horloge commune . L'tat futur est calcul par le dcodeur d'entre en fonction
de l'tat prsent et des conditions d'entre.
Dans une machine de type MOORE, les sorties ne dpendent que de l'tat
interne.

23/12/2014 09:25

R. EL ALAMI

3.

Machines dtats finis

3.2

Machine de MEALY

Dans une machine de type MEALY, les sorties sont fonctions de l'tat courant et
des entres. Ceci implique un aspect partiellement asynchrone, on doit donc
resynchroniser ces sorties par un registre si l'on veut tre totalement
synchrone. Mais les sorties sont alors retardes d'une priode dhorloge (ou
moins pour leur part asynchrone).

23/12/2014 09:25

R. EL ALAMI

3.

Machines dtats finis

3.3

Transitions et tats

Le graphe de transitions se dcrit par une instruction CASE portant sur les
diffrents tats. La partie mmorisation associe peut tre intgre dans le
mme process ou encore totalement dissocie.
Pour les quations de sortie d'une machine de Moore, chaque sortie ne dpend
que de ltat prsent. On lexprime trs simplement par une instruction
concurrente (ou un process sensible au signal etat_present).

Il en est de mme pour une machine de Mealy, la seule diffrence tant la


prsence des entres dans l'quation de sortie.

23/12/2014 09:25

R. EL ALAMI

3.

Machines dtats finis

3.4

Exemples :

Dfinition du type et des signaux d'entre.


TYPE etat IS (debut, etat1, etat2, fin); -- 4 tats par exemple
SIGNAL raz, h : BIT;
SIGNAL etat_present, etat_futur : etat;
SIGNAL c1, c2, c3 : BOOLEAN;
BEGIN
Description du graphe de transition
Mmorisation de l'tat
graphe: PROCESS
initialisation: PROCESS
BEGIN
BEGIN
WAIT ON etat_present,c1,c2,c3 ;
WAIT ON raz, h;
CASE etat_present IS
IF raz = 1 THEN -- asynchrone
WHEN debut =>
etat_present <= a ;
IF c1 THEN etat_futur <= etat1 ;
ELSIF hEVENT AND h = 1 THEN
ELSE etat_futur <= etat2;
etat_present <= etat_futur;
END IF;
END IF;
WHEN etat1 =>
END PROCESS
............................ etc ........................
END CASE;
END PROCESS;
23/12/2014 09:25

R. EL ALAMI

3.

Machines dtats finis

3.4

Exemple : Ecriture en langage VHDL

On va traduire et essayer lexemple prcdant. En langage VHDL une


des mthodes conseille dcriture des machines dtat est :
une ENTITE
une ARCHITECTURE de description dtat avec 2 PROCESS :

Un process asynchrone et un process synchrone.

23/12/2014 09:25

R. EL ALAMI

3.

Machines dtats finis

3.4

Exemple : Ecriture en langage VHDL

A ) DEFINITION DE LENTITE :
---- dclaration des librairies -library ieee;
use ieee.std_logic_1164.all;
----- Dfinition de l'entit---ENTITY machine1 IS
PORT (RAZ, horl :IN STD_LOGIC; -- Ne pas oublier
remise 0 et horloge !
X, Y :IN STD_LOGIC;
S1, S2 :OUT STD_LOGIC);
END machine1;
23/12/2014 09:25

R. EL ALAMI

3.

Machines dtats finis

3.4

Exemple : Ecriture en langage VHDL


B ) DEFINITION DE LARCHITECTURE :

*LE PROCESS SYNCHRONE :


------ Dfinir L'architecture de description d'tat ----------------ARCHITECTURE diagramme OF machine1 IS
TYPE etat_4 IS (M0, M1, M2, M3);
--dfinir une liste des tats...
SIGNAL etat,etat_suiv :etat_4 := M0; --et 2 signaux: tats courant et
-suivant, contenant la valeur dun tat de la liste (initialise M0) .
BEGIN
definir_etat:PROCESS( raz, horl) -- "definir_etat":label optionnel
BEGIN
If raz = '1' THEN
etat <= M0;
--Le PACKAGE std_logic_1164
ELSIF rising_edge(horl) THEN
--en permet lutilisation.
etat <= etat_suiv ;
END IF;
--Mise jour de la variable
END PROCESS definir_etat;

23/12/2014 09:25

R. EL ALAMI

10

3.

Machines dtats finis

3.4

Exemple : Ecriture en langage VHDL


C ) DEFINITION DES ETATS DES SORTIES :

*LE PROCESS ASYNCHRONE :


------------ Dfinir les tats des sorties------------------sorties : process (etat, x, y)
BEGIN
CASE etat IS

--Le PROCESS doit contenir une...


structure de CAS unique dpendant
de la variable dtat.

WHEN M0 => S1 <= '0'; S2<= '0';


IF Y='1' then etat_suiv <= M3;
elsif X='0' then etat_suiv <= M2;
ELSE etat_suiv <= M1;
END IF;
--Le signal de ltat suivant nest
attribu que dans la structure CASE
WHEN
WHEN
WHEN
END CASE;
END process sorties
END diagramme ;
23/12/2014 09:25

M1 => S1 <= '1'; S2<= '0';etat_suiv <= M2;


M2 => S1 <= '1'; S2<= '1';etat_suiv <= M3;
M3 => S1 <= '0'; S2<= '1';etat_suiv <= M0;
;
-- ne pas oublier de terminer larchitecture !
R. EL ALAMI

11

3.

Machines dtats finis

3.5

Exemples :

systme douverture de porte avec code daccs : La machine reoit son


entre X une srie de chiffres tape sur un clavier numrique. Si la machine reoit la bonne
squence de chiffres (0,9,1,5) la porte est ouverte grce au signal de sortie.
On va dabord concevoir le diagramme selon une forme de machine de Moore :

23/12/2014 09:25

R. EL ALAMI

12

3.

Machines dtats finis

3.5

Exemples :

a a lair un peu complexe, mais il suffit de suivre les tats pour bien comprendre.
Reprenons lanalyse :

cinq tats nots E0, E1, E2, E3 et E4 ;

un tat de dpart E0 ;

un vecteur dentre X ;

les sorties associes aux tats : 0 pour les transitions de E0 E3 ; 1 pour E4.
Considrons son fonctionnement :
tant que la bonne squence est donne en entre, la machine va de E0 E4 ;
chaque tat, si lentre est 0, on revient E1 ;
Autrement, la machine revient son tat initial E0
Cest tout simple finalement ! Transformons maintenant cette machine en une
machine de Mealy :

23/12/2014 09:25

R. EL ALAMI

13

3.

Machines dtats finis

3.5

Exemples :

23/12/2014 09:25

R. EL ALAMI

14

Vous aimerez peut-être aussi