Chapitre 3 :
Machine tat fini (FSM)
23/12/2014 09:25 R. EL ALAMI 2
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
S1= 0 M1
Y = 1 S2 = 0
S1 = 1 dnomination de ltat S2 = 0
M3 X= 0
M0
S1 = 0
S2 = 1 M2 S1 = 0
S2 = 0
S1 = 1 condition Y=1 Etat des sorties S2 = 1 de la transition conditionnelle transition inconditionnelle
3. Machines dtats finis
23/12/2014 09:25 R. EL ALAMI 3
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.
3. Machines dtats finis
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.
3. Machines dtats finis3.1 Machine de MOORE
23/12/2014 09:25 R. EL ALAMI 4
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).
3. Machines dtats finis3.2 Machine de MEALY
23/12/2014 09:25 R. EL ALAMI 5
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.
3. Machines dtats finis3.3 Transitions et tats
23/12/2014 09:25 R. EL ALAMI 6
3. Machines dtats finis3.4 Exemple : Ecriture en langage VHDL
23/12/2014 09:25 R. EL ALAMI 8
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.
3. Machines dtats finis3.4 Exemple : Ecriture en langage VHDL
23/12/2014 09:25 R. EL ALAMI 9
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;
3. Machines dtats finis3.4 Exemple : Ecriture en langage VHDL
23/12/2014 09:25 R. EL ALAMI 10
3. Machines dtats finis3.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
23/12/2014 09:25 R. EL ALAMI 11
3. Machines dtats finis3.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) --Le PROCESS doit contenir une...
BEGIN structure de CAS unique dpendant
CASE etat IS de la variable dtat.
WHEN M0 => S1
3. Machines dtats finis3.5 Exemples :
23/12/2014 09:25 R. EL ALAMI 12
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 :
3. Machines dtats finis3.5 Exemples :
23/12/2014 09:25 R. EL ALAMI 13
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 E0Cest tout simple finalement ! Transformons maintenant cette machine en une machine de Mealy :
3. Machines dtats finis3.5 Exemples :
23/12/2014 09:25 R. EL ALAMI 14