Machine à états finis 1 Rappels: Définition des systèmes électroniques Un système électronique est caractérisé par • Ses entrées : e0; …; ei; … ; en • Son état électrique E • Ses sorties : s0; … ; si; … ; sn Il existe deux type de systèmes électroniques l aide de logique combinatoire • Les systèmes combinatoires construits à l’aide • Les systèmes séquentiels construits à l’aide de logique séquentielle M hi Machines à états é • Les combinaisons des entrées conduisent à un nombre fini de combinaisons de sortie sortie. • d’où l’appelation machine à nombre d’états finis ou Machine A Etats. • Vecteur d’entrée : Combinaison des variables d’entrée • Vecteur de sortie : Combinaison des variables de sortie 2 Machines à états Notations : • Entrée : E • Etat Présent : EP • Etat Futur : EF • Sortie : S Définitions • Etat : Indicateur de position dans le temps • Registre d’Etat : Composé de bascules permettant de mémoriser les valeurs des états • Etat Présent : sortie stable du registre g d’état à l’instant pprésent • Etat Futur : état dans lequel se trouvera la machine après une impulsion d'horloge 3 Table de transition : deux parties indiquant le présent et le futur. • E : Entrée à l’instant n • EP : Etat Présent à l’instant n • EF : Etat Suivant à l’instant n + 1 • S : Fonction de Sortie à l’instant n + 1 • Table de transition 4 1. Introduction Les machines à états finis (Finite State Machine, FSM) Servant exclusivement à ggénérer des signaux de commande. La machine à état représente la partie contrôle, c’est à dire le cerveau du système électronique qui commande la partie opérative 5 Les états de la machine à états Déf: Les états de la machine à états représentent toutes les valeurs que peuvent prendre les variables internes du circuit de logique séquentielle Exemple: Machine à café L états Les ét t peuventt être êt Cette machine peut se compliquer en prenant en compte 1. Attente de pièce 2. Descendre le gobelet 3 Verser la poudre de café 3. 4. Verser l’eau chaude 5. Indiquer que c’est prêt • Le choix de la boisson, • Le dosage du sucre 6 2. Le graphe d’états Comment représenter graphiquement le comportement d’une machine à états ? nn’est est pas aléatoire, aléatoire Dans une machine à états donnée la loi d’évolution de l’état Ces lois P Permet t dde dét détermines i l valeur la l des sorties. Soigneusement choisies par le créateur de la machine afin que celle-ci remplisse une fonction précise. Le graphe d’états, comme son nom l’indique, représente graphiquement les états d’une machine hi à états ét t Chaque état est dessiné sous la forme d’une bulle contenant son nom 7 Prenons l’exemple d’une machine à laver où on considère 5 états comme illustré dans la figure T1 T0 On appelle état source l’état d dé de départt d’une d’ ttransition iti ett état destination l’état d’arrivée Prélavage Lavage Arrêt Essorage Rinçage Certaines transitions ont le même état pour source et pour destination. Cela signifie que la machine peutt rester t dans d le l même ê état ét t pendant un certain temps. On complète le graphe en figurant les transitions possibles par des flèches entre les états. 8 Le graphe constitue une représentation assez d dense dde l’é l’évolution l ti possible ibl de d la l machine hi au cours du temps. Pour enrichir encore notre graphe nous devons préciser les spécifications de la machine hi et, t plus l particulièrement, ti liè t la l loi l i d’évolution d’é l ti des d variables i bl internes i t (l’état) en fonction des entrées. Supposons que les entrées de notre machine soient au nombre de trois : M : variable booléenne qqui traduit la position p du bouton Marche/Arrêt du lave-linge. P : variable booléenne qui indique si le programme de lavage sélectionné par ll’utilisateur utilisateur comporte ou non une phase de prélavage. C : valeur en minutes d’un chronomètre qui est remis i à zéro é automatiquement t ti t au début déb t de d chaque étape de lavage. 9 Les durées des différentes étapes de lavage sont fixées par le constructeur : • Prélavage : 10 minutes • Lavage : 30 minutes • Rinçage : 10 minutes • Essorage : 5 minutes A partir de ces informations complémentaires nous pouvons faire figurer sur le graphe les conditions logiques associées à chaque transition. transition lorsque la machine est dans l’état Arrêt elle y reste tant que q M n’est pas p vrai au front montant de l’horloge. Dès qque M est vrai l’horloge g la machine change d’état Elle passe dans l’état Prélavage si P est vrai et dans l’état Lavage si P est faux. N t machine Notre hi estt synchrone h sur front f t montant t t de d l’horloge. 10 Or un circuit électronique sans sorties n’est que de peu d’utilité. Notre machine à états possède des entrées mais nous n’avons ppas encore étudié les sorties. celles dont les sorties ne dé d t que de dépendent d l’état l’ét t courantt ce sont les machines dit de dites d Moore M celles dont les sorties dépendent de l’état courant et des entrées ce sont les machines dites de Mealy Il existe i t deux d sortes t d de machines à états : N.B. Le programmateur de notre lave linge est donc une machine de Moore dont les sorties ne dépendent que de l’état courant. 11 Nous supposerons que ses sorties sont trois signaux booléens, X, Y et Z destinés à ppiloter les différents moteurs du lave-linge. g Nous pouvons encore compléter le graphe d’états afin d’y faire figurer cette information. 12 3. Machines à états finis U machine Une hi à états ét t finis fi i estt un circuit i it séquentiel é ti l dont d t les l sorties ti dépendent dé d t d’un d’ état ét t ett éventuellement des entrées La Figure L Fi illustre ill t la l structure t t logique générale d’un tel circuit (Calcul de l’état futur) (Registre d’état) (Calcul des sorties) le cœur de la machine d’états Le bloc SM (State Memory) a pour Il a par essence un comportement fonction de mémoriser l’état courant séquentiel synchronisé sur un signal de la machine. d’horloge. L bloc Le bl NSL (Next (N t St State t L Logic) i ) a pour ffonction ti de d calculer l l le l prochain h i état ét t en fonction f ti de d l’état courant et des entrées Le bloc OL ((output p Logic) g ) a ppour fonction la ggénération des signaux g de sortie en fonction de l’état courant et éventuellement des entrées. 13 La modélisation VHDL d’une machine à états finis doit considérer les points suivants: 1. Dans le premier cas, les états sont énumérés et identifiés par un code explicite L’utilisation d’un registre d’état explicite ou implicite Dans lle second D d cas, les l états ét t ne sontt pas nommés et découlent de la structure du modèle. 2. 3. La répartition L é titi en circuits i it combinatoires et séquentiels. Le choix machine de Moore ou de Mealy Une machine de Mealyy offre pplus de flexibilité qu’une Machine de Moore Une machine de Moore peut par contre être optimisée p de manière à éviter le bloc OL par un codage approprié des états car les sorties peuvent changer dans le cas où le circuit reste dans un même état. les sorties sont codées d dans les l états ét t 14 4. La méthode d’initialisation ((reset)) 5. L’encodage des états qui peut être synchrone ou asynchrone y La manière de représenter les états (explicites) a un effet important sur les performances du circuit en termes de surface de délais et de consommation surface, consommation. La formalisation des différentes formes de machines à états finis utilisera les notations suivantes: Xi: entrées primaires Zi: sorties primaires Si: état ét t courantt f(...): fonction combinatoire fclk(...): fonction de type flip-flop évaluée sur un flanc d’horloge. 15 3.1. Machine de Moore Une machine de Moore traditionnelle est caractérisée par les relations suivantes: La Figure donne un exemple de machine de Moore représentée p ppar un diagramme g d’états Les cercles représentent les états et les flèches représentent é t t les l transitions t iti entre t les l états. ét t La transition d’un état à l’autre est synchronisée sur le flanc d’un signal d’horloge implicite. Chaque cercle indique le nom dd’un un état (en haut) et les valeurs prises par les sorties (en bas) lorsque la machine est dans cet état. 16 Le Code donne le modèle VHDL correspondant. Le modèle du Code déclare un type énuméré fsm_states à trois valeurs possibles et un signal local state qui représente le registre d’état de la machine. Les états sont par défaut encodés par des valeurs binaires successives en fonction de ll’énumération énumération des états: S0 (("00")) S2 ("10" ) S1 ("01") L’état "11 " est interdit. 17 3.2. Machine de Mealy Une machine de Mealy traditionnelle est caractérisée par les relations suivantes: La Figure donne un exemple de machine de Mealy représentée par un diagramme d’états Les sorties primaires peuvent dépendre directement des entrées pprimaires et leurs valeurs peuvent changer même si la machine reste dans le même état. 18 Le Code donne le modèle VHDL correspondant. Le changement principal par rapport au modèle d la de l machine hi de d Moore M réside é id dans d le l processus OL Le processus estt aussii sensible L ibl à des d événements sur les entrées primaires x et les valeurs des sorties primaires dépendent des valeurs des entrées primaires 19