chap_3

14
Chapitre 3 : Machine à état fini (FSM)

description

vhdl

Transcript of chap_3

  • 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

  • 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 Mmorisation de l'tat initialisation: PROCESS BEGIN WAIT ON raz, h; IF raz = 1 THEN -- asynchroneetat_present
  • 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