GELE2442 Chapitre 9 : Machines séquentielles algorithmiques Gabriel Cormier, Ph.D., ing. Université de Moncton Hiver 2015 Gabriel Cormier (UdeM) GELE2442 Chapitre 9 Hiver 2015 1 / 27 Contenu 1 Introduction 2 Éléments ASM 3 Étapes de design 4 Circuits des boı̂tes ASM 5 Opérations sur les registres Gabriel Cormier (UdeM) GELE2442 Chapitre 9 Hiver 2015 2 / 27 Introduction Machines séquentielles algorithmiques Machines séquentielles algorithmiques (ASM): alternative aux diagrammes d’état Ressemble à un ordinogramme Plus simple pour des machines d’état complexes Ex: un circuit à 5 entrées aura 5 lignes qui sortent de chaque état dans un diagramme d’état; pas le cas pour un ASM Permet de simplifier le passage au circuit Gabriel Cormier (UdeM) GELE2442 Chapitre 9 Hiver 2015 3 / 27 Introduction ASM Constitué de 3 éléments: Boı̂te d’état Boı̂te de décision Boı̂te de sortie conditionnelle Gabriel Cormier (UdeM) GELE2442 Chapitre 9 Hiver 2015 4 / 27 Éléments ASM Boı̂te d’état L’équivalent du cercle d’état dans un diagramme d’état: représente 1 état du système L’état peut avoir un nom, et le code binaire qui le représente Les sorties de type Moore peuvent être montrées dans la boı̂te Gabriel Cormier (UdeM) GELE2442 Chapitre 9 Hiver 2015 5 / 27 Éléments ASM Boı̂te d’état Nom de l’état Code binaire Sorties Machine Moore Figure 1 : Boı̂te d’état d’un ASM Gabriel Cormier (UdeM) GELE2442 Chapitre 9 Hiver 2015 6 / 27 Éléments ASM Boı̂te de décision Représente un choix Doit avoir une expression qui peut être évaluée Peut avoir plus d’une entrée Doit avoir 2 sorties ou plus Gabriel Cormier (UdeM) GELE2442 Chapitre 9 Hiver 2015 7 / 27 Éléments ASM Boı̂te de décision 0 (faux) Expression conditionnelle 1 (vrai) Figure 2 : Boı̂te de décision d’un ASM Gabriel Cormier (UdeM) GELE2442 Chapitre 9 Hiver 2015 8 / 27 Éléments ASM Boı̂te de sortie conditionnelle Donne les sorties qui dépendent de l’état présent et les entrées présentes Contiennent les sorties Mealy Doit être placé après une boı̂te de décision Aura une seule entrée Gabriel Cormier (UdeM) GELE2442 Chapitre 9 Hiver 2015 9 / 27 Éléments ASM Boı̂te de sortie conditionnelle Sorties Machine Mealy Figure 3 : Boı̂te de sortie conditionnelle d’un ASM Gabriel Cormier (UdeM) GELE2442 Chapitre 9 Hiver 2015 10 / 27 Éléments ASM ASM Si l’ASM n’a pas de boı̂tes de sortie conditionnelle, l’ASM décrit une machine Moore Si l’ASM a au moins une boı̂te de sortie conditionnelle, l’ASM décrit une machine Mealy Dans un ASM, seules les sorties qui sont 1 sont montrées; on suppose que les autres sont 0 Gabriel Cormier (UdeM) GELE2442 Chapitre 9 Hiver 2015 11 / 27 Étapes de design Étapes de design Le processus est semblable à celui qui commence par un diagramme d’état On commence avec le tableau d’état Le nombre d’états = le nombre de boı̂tes d’état ASM On fait l’assignation des états On utilise les boı̂tes conditionnelles, les boı̂tes d’état et les boı̂tes de décision pour calculer les sorties On utilise les boı̂tes de décision pour déterminer le prochain état Gabriel Cormier (UdeM) GELE2442 Chapitre 9 Hiver 2015 12 / 27 Étapes de design Exemple S0 00 A = 1 0 1 G=1 S1 Soit un ASM ayant 3 états, 3 entrées et 1 sortie 0 01 W =1 1 A=1 S2 0 Gabriel Cormier (UdeM) GELE2442 Chapitre 9 10 Z =1 1 Hiver 2015 13 / 27 Étapes de design Exemple Les trois états sont S0, S1, S2 L’assignation est: S0 = 00, S1 = 01, S2 = 10 Gabriel Cormier (UdeM) GELE2442 Chapitre 9 Hiver 2015 14 / 27 Étapes de design Exemple On peut construire la table d’état: État Présent Nom Q1 Q0 S0 00 00 S1 01 01 S2 10 10 – 11 Gabriel Cormier (UdeM) G 0 1 X X X X X Entrées W Z X X X X 0 X 1 X X 0 X 1 X X Prochain État Q1 Q0 00 01 10 10 01 00 X GELE2442 Chapitre 9 Sortie A 1 1 0 1 0 0 X Hiver 2015 15 / 27 Étapes de design Exemple À partir de la table d’état, on fait le design comme d’habitude: Choisir le type de bascule Générer les équations Etc. Gabriel Cormier (UdeM) GELE2442 Chapitre 9 Hiver 2015 16 / 27 Circuits des boı̂tes ASM Design direct On peut passer directement du ASM au circuit sous 2 conditions: Utiliser des bascules D Encodage est 1-de-n: seule 1 bascule a une sortie haute à la fois (n états = n bascules) Ceci permet: Chaque type de boı̂te a un circuit correspondant Les connexions entre les boı̂tes du ASM permettent de brancher les sous-circuits Gabriel Cormier (UdeM) GELE2442 Chapitre 9 Hiver 2015 17 / 27 Circuits des boı̂tes ASM Circuit pour une boı̂te d’état La boı̂te d’état devient une bascule D. Les sorties sont créées avec des portes logiques Entrée Nom de l’état Entrée Code binaire D Q Sorties Machine Moore C Q’ Sortie Sortie Figure 4 : Circuit pour une boı̂te d’état d’un ASM Gabriel Cormier (UdeM) GELE2442 Chapitre 9 Hiver 2015 18 / 27 Circuits des boı̂tes ASM Circuit pour une boı̂te de décision La boı̂te de décision devient 2 portes AND et un inverseur Entrée X Entrée 0 (faux) 1 (vrai) X Sortie0 Sortie1 Sortie0 Sortie1 Figure 5 : Circuit pour une boı̂te de décision d’un ASM Gabriel Cormier (UdeM) GELE2442 Chapitre 9 Hiver 2015 19 / 27 Circuits des boı̂tes ASM Circuit pour une boı̂te conditionnelle Il suffit d’ajouter une connexion et la brancher à d’autre portes logique pour générer la sortie voulue. Entrée X Entrée X 1 Sortie1 Sortie1 Figure 6 : Circuit pour une boı̂te conditionnelle d’un ASM Gabriel Cormier (UdeM) GELE2442 Chapitre 9 Hiver 2015 20 / 27 Circuits des boı̂tes ASM Circuit pour une jonction Lorsque 2 ou plusieurs signaux se joignent ensemble, on utilise une porte OR Entrée0 Entrée1 Entrée0 Entrée1 Sortie Sortie Figure 7 : Circuit pour une jonction d’un ASM Gabriel Cormier (UdeM) GELE2442 Chapitre 9 Hiver 2015 21 / 27 Circuits des boı̂tes ASM S0 00 D Q A = 1 CQ’ 0 G 1 G = 1 S1 01 D Q 0 CQ’ 1 W W = 1 A A = 1 S2 10 D Q CQ’ 0 Z 1 Z = 1 Gabriel Cormier (UdeM) GELE2442 Chapitre 9 Hiver 2015 22 / 27 Opérations sur les registres Opérations sur les registres Dans une boı̂te d’état, on peut aussi avoir des opérations sur un registre Ces opérations peuvent représenter un décalage, addition, etc. On utilise quelques opérateurs communs Gabriel Cormier (UdeM) GELE2442 Chapitre 9 Hiver 2015 23 / 27 Opérations sur les registres Opérations sur les registres Transfert: ← Permet de copier le contenu d’un registre à un autre Ex: R2 ← R1: le contenu du registre R1 est copié dans le registre R2 Le contenu du registre source n’est pas modifié (R1 ne change pas dans l’exemple précédent) Gabriel Cormier (UdeM) GELE2442 Chapitre 9 Hiver 2015 24 / 27 Opérations sur les registres Opérations sur les registres Addition: + Faire la somme de deux registres Ex: R1 ← R1 + R2: additionner le contenu de R2 à R1 Gabriel Cormier (UdeM) GELE2442 Chapitre 9 Hiver 2015 25 / 27 Opérations sur les registres Opérations sur les registres Décalage: shr ou shl shr: décaler à droite shl: décaler à gauche Gabriel Cormier (UdeM) GELE2442 Chapitre 9 Hiver 2015 26 / 27 Opérations sur les registres Opérations sur les registres Opérations bit-par-bit: ∧: AND ∨: OR ⊕: XOR Gabriel Cormier (UdeM) GELE2442 Chapitre 9 Hiver 2015 27 / 27