Leçon 16 sur 18

Chapitre 16 — Systèmes séquentiels complexes

Machines à états finis : représentation, conception et applications

Finalité du chapitre — Passer d’un cahier des charges séquentiel à une machine à états complète : états, transitions, sorties, codage, équations, réalisation et validation.

Niveau conseillé : Bac+1 / Bac+2 — Cycle préparatoire, BTS, BUT, licence ou formation d’ingénieur


 

 

Objectifs pédagogiques

  • Comprendre le rôle de l’état présent et de l’état futur dans un système séquentiel.
  • Représenter un comportement par un diagramme d’états, une table de transition et une table de sortie.
  • Distinguer les modèles de Moore et de Mealy et choisir le modèle adapté.
  • Coder les états et déterminer les équations de transition, d’excitation et de sortie.
  • Concevoir, simuler et vérifier une machine à états à partir d’un cahier des charges.
  • Analyser des applications courantes : détection de séquence, feu tricolore, distributeur, contrôle d’accès et commande de moteur.

Prérequis

  • Algèbre de Boole et simplification logique.
  • Bascules D, JK et T.
  • Lecture des chronogrammes.
  • Circuits synchrones et notions de setup, hold et propagation.

Plan du chapitre

1. 16.1 Notion d’état

2. 16.2 Représentation d’une machine à états

3. 16.3 Modèles de Moore et de Mealy

4. 16.4 Méthode complète de conception

5. Exemples d’applications

6. Travaux dirigés et activité pratique

7. Synthèse, glossaire, auto-évaluation et corrigés


 

 

16.1 Notion d’état

Un système séquentiel complexe est un circuit dont les sorties ne dépendent pas seulement des entrées actuelles, mais aussi de l’histoire récente du système. Cette histoire est résumée par une information appelée état interne.

Idée essentielle — Deux circuits recevant les mêmes entrées au même instant peuvent produire des sorties différentes s’ils ne se trouvent pas dans le même état interne.

16.1.1 État présent

L’état présent, noté généralement Q(t), représente la mémoire du système à l’instant considéré. Il est mémorisé dans un registre d’état constitué de bascules. Chaque état correspond à une situation significative du fonctionnement : attente, validation, paiement incomplet, porte ouverte, moteur en marche, etc.

  • Il décrit la situation actuelle du système.
  • Il est conservé entre deux fronts actifs de l’horloge.
  • Il sert au calcul de l’état futur et, selon le modèle, des sorties.

16.1.2 État futur

L’état futur, noté Q(t+1) ou Q⁺, est l’état qui sera chargé dans le registre au prochain front actif. Il est calculé par une logique combinatoire à partir de l’état présent et des entrées :

Q⁺ = f(Q, X)

La fonction f est appelée fonction de transition. Elle traduit les règles d’évolution imposées par le cahier des charges.

16.1.3 Variables d’entrée

Les variables d’entrée, regroupées dans le vecteur X, décrivent les événements ou conditions observés par le système : bouton appuyé, capteur actif, bit reçu, crédit ajouté, fin de temporisation, défaut détecté, etc.

Entrée synchrone — Une entrée synchrone est interprétée au voisinage d’un front d’horloge. Une entrée asynchrone doit généralement être synchronisée avant d’être utilisée par la machine à états.

16.1.4 Variables de sortie

Les sorties, regroupées dans le vecteur Y, commandent les actionneurs ou renseignent l’environnement : LED, relais, autorisation d’accès, commande moteur, délivrance d’un produit, signal d’alarme, etc.

Selon l’architecture choisie :

  • Moore : Y = g(Q). Les sorties dépendent uniquement de l’état présent.
  • Mealy : Y = g(Q, X). Les sorties dépendent de l’état présent et des entrées.

Figure 16.1 — Architecture générale d’une machine à états finis.

16.1.5 Évolution temporelle

Entre deux fronts actifs, le registre conserve son état. La logique combinatoire calcule en permanence l’état futur. Au front suivant, cet état futur devient l’état présent. Cette séparation permet une conception structurée et prévisible.

Instant

Entrée X

État présent Q

État futur Q⁺

Sortie Y

t₀

0

S0

S0

0

t₁

1

S0

S1

0

t₂

0

S1

S2

0

t₃

1

S2

S3

1

16.2 Représentation d’une machine à états

Une machine à états peut être décrite sous plusieurs formes équivalentes. Chacune met en évidence un aspect particulier : la logique du comportement, la structure tabulaire ou la réalisation matérielle.

16.2.1 Diagramme d’états

Le diagramme d’états est une représentation graphique constituée de cercles et de flèches :

  • Chaque cercle représente un état.
  • Chaque flèche représente une transition.
  • La condition inscrite sur une flèche indique l’entrée ou l’événement provoquant la transition.
  • Dans une machine de Moore, les sorties sont généralement inscrites dans les états.
  • Dans une machine de Mealy, les sorties sont associées aux transitions sous la forme entrée/sortie.
État initial — Une flèche venant de l’extérieur du diagramme désigne l’état atteint après l’initialisation ou le Reset.

Figure 16.2 — Exemple de diagramme d’états pour détecter la séquence 101.

16.2.2 Table de transition

La table de transition indique, pour chaque combinaison de l’état présent et des entrées, l’état futur. Elle constitue le lien entre le diagramme et les équations logiques.

État présent

X=0 : état futur

X=1 : état futur

S0

S0

S1

S1

S2

S1

S2

S0

S3

S3

S2

S1

16.2.3 Table de sortie

Dans un modèle de Moore, une ligne par état suffit. Dans un modèle de Mealy, il faut préciser la sortie pour chaque couple état–entrée.

État

Sortie Z (Moore)

S0

0

S1

0

S2

0

S3

1

16.2.4 Codage des états

Les noms symboliques S0, S1, S2… doivent être remplacés par des mots binaires mémorisables dans des bascules. Pour N états, le nombre minimal de bits est :

n = ⌈log₂(N)⌉

Pour quatre états, deux bascules suffisent. Un codage possible est S0=00, S1=01, S2=10 et S3=11.

Méthode

Principe

Avantage principal

Limite

Binaire compact

Utilise le nombre minimal de bits

Peu de bascules

Logique parfois complexe

One-hot

Une bascule par étatÉquations simples et rapides

Plus de bascules

Gray

Un seul bit change entre états voisinsRéduit certains aléasPas toujours possible pour tout graphe

Personnalisé

Codage choisi pour simplifier les équationsOptimisation cibléeDemande une étude préalable

16.2.5 États non utilisés

Avec n bascules, 2ⁿ combinaisons existent. Si toutes ne sont pas affectées, les combinaisons restantes sont des états non utilisés. La conception doit préciser leur évolution afin que le système revienne vers un état valide après une perturbation.

Machine auto-correctrice — Une machine est dite auto-correctrice si tout état interdit conduit en un nombre fini de cycles vers un état valide, souvent l’état initial.

16.3 Modèles de Moore et de Mealy

Figure 16.3 — Dépendance des sorties dans les modèles de Moore et de Mealy.

16.3.1 Modèle de Moore

Dans une machine de Moore, les sorties sont entièrement déterminées par l’état présent. Une modification d’entrée peut influencer l’état futur, mais la sortie ne change normalement qu’après le front d’horloge qui provoque le changement d’état.

  • Sorties stables entre les fronts d’horloge.
  • Diagramme souvent plus lisible.
  • Risque d’aléas de sortie généralement plus faible.
  • Peut nécessiter davantage d’états et introduire un cycle de latence.

16.3.2 Modèle de Mealy

Dans une machine de Mealy, la sortie dépend simultanément de l’état présent et des entrées. Elle peut donc réagir immédiatement à une variation d’entrée, sans attendre le prochain changement d’état.

  • Réponse plus rapide.
  • Nombre d’états souvent plus faible.
  • Sorties sensibles aux variations ou parasites des entrées.
  • Les entrées doivent être propres et correctement synchronisées.

16.3.3 Comparaison

Critère

Moore

Mealy

Dépendance de la sortie

État seulement

État et entrées

Moment de réactionAprès changement d’étatPotentiellement immédiat

Nombre d’états

Souvent plus élevéSouvent plus faible
Stabilité des sorties

Élevée

Dépend de la stabilité des entrées
Notation du diagrammeSortie dans le cercleEntrée/sortie sur la flèche

Usage conseillé

Commandes sûres et synchronesDétection rapide et optimisation d’états

16.3.4 Équivalence fonctionnelle

Un même comportement peut généralement être réalisé dans les deux modèles. La conversion de Mealy vers Moore peut demander l’ajout d’états pour associer chaque sortie à un état stable. La conversion inverse peut réduire le nombre d’états en plaçant les sorties sur les transitions.

Choix pratique — Pour commander un actionneur critique, Moore est souvent préférable. Pour détecter rapidement une condition sur un flux binaire, Mealy peut être plus efficace.

16.4 Méthode complète de conception

Figure 16.4 — Démarche complète de conception d’une machine à états.

Étape 1 — Analyser le cahier des charges

Il faut identifier les comportements attendus, les événements, les priorités, les délais, les conditions de sécurité, l’état initial et les situations exceptionnelles. Les formulations ambiguës doivent être transformées en règles précises.

Étape 2 — Identifier les entrées et les sorties

Type

Questions à poser

Exemples

Entrées

Quels événements le système observe-t-il ?capteur, bouton, bit, fin de temporisation

Sorties

Que doit commander ou signaler le système ?moteur, LED, relais, validation

Horloge / Reset

Quand les décisions sont-elles prises ? Comment initialiser ?front montant, Reset actif à 0

Étape 3 — Définir les états

Un état doit résumer toute l’information historique nécessaire pour décider du comportement futur. Deux situations peuvent partager un même état si, pour toute suite d’entrées possible, elles entraînent les mêmes sorties et les mêmes évolutions.

Erreur fréquente — Créer un état pour chaque combinaison d’entrées. Les états représentent la mémoire du passé, pas les entrées présentes.

Étape 4 — Construire le diagramme d’états

Pour chaque état, examiner toutes les combinaisons d’entrées possibles. Chaque cas doit conduire à une transition définie. Le diagramme doit être complet, déterministe et cohérent.

Étape 5 — Établir les tables

La table de transition et la table de sortie sont déduites directement du diagramme. Elles permettent de vérifier qu’aucun cas n’a été oublié.

Étape 6 — Coder les états

Le codage est choisi selon les contraintes : nombre de bascules, simplicité logique, vitesse, consommation, sécurité et technologie cible. Pour un exercice manuel, le codage binaire compact est souvent retenu.

Étape 7 — Choisir les bascules

Bascule

Relation utile

Avantage en conception

D

D = Q⁺

Méthode la plus directe

T

T = Q ⊕ Q⁺

Pratique pour les basculements

JK

J et K obtenus par la table d’excitationPeut simplifier certains compteurs

Étape 8 — Déterminer les équations d’excitation

Après remplacement des états symboliques par leur code, chaque bit de l’état futur est exprimé en fonction des bits de l’état présent et des entrées. Avec des bascules D, l’entrée Dᵢ est directement égale au bit Qᵢ⁺ correspondant. Les fonctions sont ensuite simplifiées par Karnaugh ou algèbre de Boole.

Étape 9 — Déterminer les équations de sortie

Dans un modèle de Moore, les équations utilisent uniquement les bits d’état. Dans un modèle de Mealy, elles utilisent également les entrées. Les sorties critiques peuvent être enregistrées afin d’éviter les glitches.

Étape 10 — Réaliser et vérifier le circuit

  • Dessiner le registre d’état, la logique de transition et la logique de sortie.
  • Vérifier l’initialisation et les états non utilisés.
  • Simuler toutes les transitions et les cas limites.
  • Contrôler les chronogrammes et les contraintes temporelles.
  • Comparer le comportement obtenu au cahier des charges.

Exemples d’applications

A. Détecteur de séquence binaire

Le système reçoit un bit à chaque front d’horloge et doit activer Z lorsque les derniers bits reçus correspondent à une séquence donnée. Les états représentent les préfixes déjà reconnus. Pour la séquence 101, les états peuvent représenter : aucun bit utile, «1», «10» et séquence complète.

Chevauchement — Un détecteur avec chevauchement réutilise les derniers bits de la séquence détectée comme début possible de la séquence suivante.

B. Commande d’un feu tricolore

Chaque état correspond à une couleur active. Les transitions sont déclenchées par des fins de temporisation. Un modèle de Moore convient naturellement, car les sorties lumineuses dépendent directement de l’état.

C. Distributeur automatique

Les états représentent le crédit cumulé. Les entrées correspondent aux pièces introduites et les sorties commandent la délivrance du produit et éventuellement la monnaie. Un modèle de Mealy peut réduire le nombre d’états en produisant immédiatement la sortie de délivrance sur une transition.

État

Signification

Entrée 1 unité

Entrée 2 unités

S0

Crédit 0

S1

S2

S1

Crédit 1

S2

Délivrer puis S0

S2

Crédit 2

Délivrer puis S0

Délivrer + rendre 1 puis S0

D. Système de contrôle d’accès

Les états mémorisent la progression dans la saisie d’un code. Les entrées sont les touches ou symboles reçus. Les sorties commandent l’ouverture, l’alarme ou la remise à zéro. Il faut prévoir les erreurs, l’abandon, le délai maximal et le nombre de tentatives.

E. Commande simple d’un moteur

Une machine peut gérer les états ARRÊT, MARCHE_AVANT, MARCHE_ARRIÈRE et DÉFAUT. Les transitions tiennent compte des commandes utilisateur, des fins de course et des protections. Les sorties vers les contacteurs doivent être mutuellement exclusives.

Sécurité — Les transitions vers l’état DÉFAUT doivent avoir la priorité. Le Reset du défaut ne doit être accepté que lorsque les conditions de sécurité sont rétablies.

Étude de cas détaillée — Détecteur de 101 avec chevauchement

1. Cahier des charges

À chaque front montant, un bit X est lu. La sortie Z doit valoir 1 lorsqu’une séquence 101 vient d’être reçue. Les détections successives peuvent se chevaucher.

2. Définition des états

État

Information mémorisée

S0

Aucun préfixe utile

S1

Le dernier bit utile est 1

S2

Les deux derniers bits utiles sont 10

S3

La séquence 101 vient d’être reconnue

3. Codage

Choix : S0=00, S1=01, S2=10, S3=11, avec Q1Q0 comme registre d’état.

4. Table de transition et de sortie

Q1Q0

X

Q1⁺Q0⁺

Z

00

0

00

0

00

1

01

0

01

0

10

0

01

1

01

0

10

0

00

0

10

1

11

0

11

0

10

1

11

1

01

1

5. Équations avec bascules D

Après simplification, on obtient un jeu possible d’équations :

D₁ = Q₀·X̅ + Q₁·Q̅₀·X

D₀ = X

Z = Q₁·Q₀

Ces équations dépendent du codage retenu. Un autre codage peut conduire à des expressions différentes tout en réalisant le même comportement.

6. Vérification

Pour la suite X = 1,0,1,0,1, les états évoluent S0→S1→S2→S3→S2→S3. La sortie est donc activée après les troisième et cinquième bits, ce qui confirme la détection avec chevauchement.

Travaux dirigés

TD 1 — Lecture d’un diagramme

À partir d’un diagramme fourni par l’enseignant, dresser la table de transition, identifier l’état initial, préciser si le modèle est Moore ou Mealy et déterminer la sortie pour plusieurs suites d’entrées.

TD 2 — Détecteur de 110

Concevoir un détecteur de la séquence 110 avec chevauchement selon le modèle de Moore. Définir les états, construire le diagramme et établir les tables.

TD 3 — Version Mealy

Reprendre le détecteur de 110 selon le modèle de Mealy. Comparer le nombre d’états et le moment d’activation de la sortie.

TD 4 — Feu tricolore

Concevoir une machine à trois états VERT, JAUNE et ROUGE. Les entrées TV, TJ et TR signalent la fin des temporisations. Déterminer les sorties et les transitions.

TD 5 — Contrôle d’accès

Un code 1011 doit être reçu successivement. Toute erreur ramène à l’état initial. Concevoir le diagramme et proposer un codage.

TD 6 — Distributeur

Un produit coûte 3 unités et la machine accepte des pièces de 1 et 2 unités. Concevoir un modèle de Mealy avec délivrance et rendu de monnaie.

TD 7 — Commande moteur

Définir une machine comprenant ARRÊT, AVANT, ARRIÈRE et DÉFAUT. Interdire le passage direct AVANT↔ARRIÈRE et donner la priorité au défaut.

TD 8 — Codage des états

Pour une machine à cinq états, comparer le nombre de bascules nécessaire en codage binaire, one-hot et Gray. Discuter les avantages.

TD 9 — Équations d’excitation

À partir d’une table codée sur deux bits, déterminer D1 et D0, puis les simplifier avec Karnaugh.

TD 10 — États inutilisés

Une machine utilise cinq états codés sur trois bits. Définir une stratégie de retour sécurisé pour les trois états non utilisés.

Activité pratique proposée

Simulation d’une machine à états dans Logisim Evolution, Proteus ou un outil HDL

  • Choisir une application : détecteur 101, feu tricolore ou contrôle d’accès simplifié.
  • Créer le registre d’état avec des bascules D.
  • Implémenter la logique de transition et la logique de sortie.
  • Ajouter une horloge manuelle ou lente et un Reset.
  • Afficher l’état sur des LED ou un afficheur.
  • Appliquer des suites d’entrées normales et des cas limites.
  • Comparer le chronogramme obtenu à la table de transition.
  • Tester le comportement après forçage d’un état non utilisé.

Compte rendu attendu

1. Cahier des charges reformulé.

2. Diagramme et tables.

3. Codage des états.

4. Équations simplifiées.

5. Schéma réalisé.

6. Chronogrammes de validation.

7. Analyse des erreurs et conclusion.

Synthèse du chapitre

  • Une machine à états mémorise une information abstraite appelée état interne.
  • L’état futur dépend de l’état présent et des entrées : Q⁺=f(Q,X).
  • Les modèles de Moore et de Mealy diffèrent par la dépendance des sorties.
  • Le diagramme, les tables et les équations sont des représentations complémentaires.
  • Le codage des états influence le nombre de bascules et la complexité logique.
  • La conception suit une démarche systématique depuis le cahier des charges jusqu’à la validation.
  • Les états non utilisés, le Reset et les contraintes temporelles doivent être traités explicitement.

Glossaire

Terme

Définition

État présent

Information mémorisée actuellement par le registre d’état.

État futur

État chargé au prochain front actif.

Transition

Passage d’un état à un autre sous une condition donnée.

FSM

Finite State Machine, machine à états finis.

Moore

Machine dont les sorties dépendent uniquement de l’état.

Mealy

Machine dont les sorties dépendent de l’état et des entrées.

Codage one-hot

Codage utilisant une bascule par état.

État inaccessible

État qui ne peut être atteint depuis l’état initial.

État non utilisé

Combinaison binaire non affectée à un état fonctionnel.

Auto-correction

Capacité à revenir d’un état interdit vers un état valide.

Auto-évaluation

1. Quelle différence existe entre l’état présent et l’état futur ?

2. Pourquoi une machine à états possède-t-elle une mémoire ?

3. Où place-t-on les sorties dans un diagramme de Moore ?

4. Où place-t-on les couples entrée/sortie dans un diagramme de Mealy ?

5. Combien de bascules faut-il au minimum pour six états ?

6. Quel est l’avantage principal du codage one-hot ?

7. Avec des bascules D, quelle relation lie D et l’état futur ?

8. Pourquoi faut-il traiter les états non utilisés ?

9. Quel modèle convient généralement mieux à une commande stable d’actionneur ?

10. Quelle est la dernière étape avant de valider définitivement une machine ?


 

 

Éléments de correction

Correction de l’auto-évaluation

Question

Réponse

1

L’état présent est mémorisé maintenant ; l’état futur est celui qui sera chargé au prochain front actif.

2

Parce que le comportement futur doit dépendre de l’histoire résumée par l’état interne.

3

Dans les cercles représentant les états.

4

Sur les transitions, généralement sous la forme X/Y.

5

Trois bascules, car 2²<6≤2³.

6

Des équations de transition souvent très simples et une grande rapidité.

7

D = Q⁺.

8

Pour éviter un blocage ou un comportement dangereux après une perturbation.

9

Le modèle de Moore.

10

La simulation et la vérification complète par rapport au cahier des charges, y compris les cas limites.

Pistes de correction des TD

TD 1. La table doit contenir une ligne pour chaque couple état–entrée et aucune transition ne doit être ambiguë.

TD 2. Pour 110 en Moore, les états mémorisent généralement : aucun préfixe, «1», «11» et détection complète.

TD 3. En Mealy, la sortie peut être placée sur la transition qui complète 110, ce qui réduit souvent d’un état.

TD 4. Le feu tricolore est naturellement une machine de Moore à trois états, avec une sortie active par état.

TD 5. Le contrôle d’accès possède un état par préfixe correct ; une erreur ramène à l’état initial.

TD 6. Le distributeur utilise les crédits 0, 1 et 2 ; les transitions dépassant 3 produisent délivrance et éventuellement rendu.

TD 7. Le défaut doit conduire depuis tout état vers DÉFAUT. Le changement de sens passe obligatoirement par ARRÊT.

TD 8. Pour cinq états : 3 bascules en binaire, 5 en one-hot. Le Gray demande également au moins 3 bits mais dépend du graphe.

TD 9. Avec des D, chaque équation Dᵢ est obtenue directement depuis la colonne Qᵢ⁺ de la table.

TD 10. Les états non utilisés peuvent tous être dirigés vers l’état initial au cycle suivant pour assurer l’auto-correction.

Fiche méthode récapitulative

1. Reformuler le cahier des charges en règles non ambiguës.

2. Lister entrées, sorties, horloge et Reset.

3. Identifier l’information historique à mémoriser.

4. Définir un ensemble minimal d’états.

5. Tracer un diagramme complet et déterministe.

6. Établir les tables de transition et de sortie.

7. Choisir un codage et traiter les états non utilisés.

8. Choisir les bascules.

9. Déterminer et simplifier les équations.

10. Réaliser, simuler et vérifier tous les scénarios.

Conclusion — La machine à états constitue une méthode universelle pour transformer un comportement séquentiel complexe en une architecture matérielle claire, vérifiable et réalisable.