Structure des machines d'état ("State Machine") 1. Machine Mealy, figure 7-35 p.550. Entrées Logique du prochain état. F Excitation Mémoire État présent Logique de sortie. G Sorties Horloge (CLK) Prochain état = Sortie = F(état présent, entrées) G(état présent, entrées) 2. Machine Moore, figure 7-36, p.551. Entrées Logique du prochain état. F Excitation Mémoire État présent Logique de sortie. G Horloge (CLK) Prochain état = Sortie = F(état présent, entrées) G(état présent) ans les deux types de machine (Mealy et Moore), F et G sont des circuits combinatoires.
Analyse d'un circuit séquentiel, Machine Mealy. (pp. 553-558) GELE 3322 Logique du prochain état (F) Mémoire Logique de sortie (G) MA EN 0 Q CP QN Q0 1 Q CP QN Q1 CLK Généralités à propos des machines d'état: Le prochain état d'une machine est définit dans le livre comme Q*. On peut aussi utiliser Q(t + 1). La transition d'un état à un autre se fait à chaque coup d'horloge. Pour déterminer la valeur futur d'une bascule, il faut connaître d'abord l'état présent. Analyse du circuit: Les signaux 0 et 1 dans la figure précédente fournissent l'excitation aux bascules à chaque coup d'horloge. On peut définir, selon le diagramme, des équations d'excitation. Ces équations sont des équations qui décrivent les signaux d'excitation en fonction de l'état présent et des entrées. On obtient donc les équations suivantes, en analysant le circuit: 0 = Q0 EN' + Q0' EN 1 = Q1 EN' + Q1' Q0 EN + Q1 Q0' EN
ans le cas d'une bascule, la fonction qui relie la sortie de la bascule à son entrée est Q(t +1) = onc les équations qui décrivent le prochain état sont: Q0(t + 1) = Q0 EN' + Q0' EN Q1(t + 1) = Q1 EN' + Q1' Q0 EN + Q1 Q0' EN On appelle ces équations les équations de transition. Pour le cas de la bascule, les équations de transition sont faciles à déterminer, puisque la relation entre l'entrée de la bascule et sa sortie est simple. Pour des bascules J-K, par contre, le processus est un peu plus complexe. Pour chaque combinaison d'état présent et d'entrée, les équations de transition nous donnent le prochain état. Chaque état est décrit à l'aide de 2 bits, les valeurs présentes de Q0 et Q1: (Q0 Q1) = 00, 01, 10, ou 11. Pour chaque état, il y a seulement 2 entrées possibles, soit EN = 0 ou EN = 1, donc on a au total 8 combinaisons état/entrée. La prochaine étape est de dessiner la table de transition. Ce tableau donne toutes les combinaisons état/entrée. On a donc, pour chaque état présent, le prochain état pour chaque entrée. Pour le circuit étudié, la table de transition est: EN Q1 Q0 0 1 00 00 01 01 01 10 10 10 11 11 11 00 Q1* Q0* On peut déterminer la fonction de cette machine à l'aide de la table de transition. Cette machine est un compteur à 2 bits. Si EN = 0, le compteur demeure au même état. Lorsque EN = 1, le compte monte de 1 à chaque coup d'horloge. On peut aussi assigner des noms d'état à chaque état. Le plus facile est de dire que 00 = A, 01 = B, 10 = C et 11 =. Évidemment, on peut nommer les états de plusieurs différentes façons. Il serait mieux de nommer les états par un nom descriptif qui en indique la fonction. Mais dans ce cas, puisqu'on ne sais pas vraiment la fonction du circuit, on assigne aux états une lettre, tout simplement. Si on remplace les combinaisons de Q1 et Q0 dans la table de transition par les noms d'état, on obtient le tableau d'état suivant: EN S 0 1 A A B B B C C C A S* Où : S = État présent S* = État prochain
Après la table d'état, il ne reste que la sortie logique de la machine à analyser. ans cet exemple, il n'y a qu'une seule sortie, donc on aura une seule équation de sortie: MA = Q1 Q0 EN On combine le comportement prédit par cette équation avec le tableau d'état pour produire le tableau état/sortie: EN S 0 1 A A, 0 B, 0 B B, 0 C, 0 C C, 0, 0, 0 A, 1 S*, MA Ce tableau donne toute l'information nécessaire pour comprendre le comportement du circuit. Pour chaque état, le tableau nous donne le prochain état et la sortie en fonction de l'entrée. Si la sortie aurait été de type Moore, le tableau état/sortie est plus simple: EN S 0 1 MAS A A B 0 B B C 0 C C 0 A 1 S* MAS est la sortie de type Moore, selon l'équation MAS = Q1 Q0. On peut aussi représenter l'information de la table état/sortie de façon graphique, à l'aide d'un diagramme d'état: 0/0 0/0 1/0 A B 1/0 1/1 C 1/0 0/0 0/0 Ici, 0/0 veut dire que l'entrée = 0, et la sortie = 0. Le premier chiffre désigne la valeur de l'entrée, et le 2 e veut dire la valeur de la sortie. On peut aussi écrire le diagramme d'état sous la forme de la figure 7-39 p. 556. Cette forme (celle de la figure ci-contre) n'est utilisée que si on a qu'une entrée et une sortie. On peut aussi représenter l'information sous forme de chronogramme. (figure 7-42 p.558)
Étapes d'analyse d'une machine d'état: onc, en résumé, les étapes pour analyser une machine d'état synchrone sont: 1. éterminer les équations d'excitation pour les entrées aux bascules 2. Substituer les équations d'excitation dans les équations caractéristiques des bascules pour obtenir les équations de transition. 3. Utiliser les équations de transition pour construire une table de transition. 4. éterminer les équations de sortie. 5. Ajouter les valeurs de la sortie à la table de transition pour obtenir la table de transition/état. 6. Nommer les états et substituer ces noms pour les combinaisons état/variable dans la table de transition/état pour obtenir la table état/sortie. 7. essiner le diagramme d'état.
Exemple 2: Circuit p. 559, figure 7-43. (Machine Moore) Q CP QN Q0 Q CP QN Q1 Z2 Y Q CP QN Q2 Z1 CLK On va utiliser les étapes précédentes pour analyser le circuit de la figure ci-haut. 1. Équations d'excitation: On a qu'à regarder le circuit pour déterminer les équations d'excitation. Ce sont: 2. Équations de transition: 0 = Q1' + Q0 ' + Q2 1 = Q2' Q0 + Q1 ' + Q2 Q1 2 = Q2 Q0' + Q0' ' Y En substituant les équations précédentes dans les équations caractéristiques des bascules, on obtient les équations de transition: Q0* = Q1' + Q0 ' + Q2 Q1* = Q2' Q0 + Q1 ' + Q2 Q1 Q2* = Q2 Q0' + Q0' ' Y
3. Table de transition: Avec les équations précédentes, on peut créer la table de transition: Y Q2 Q1 Q0 00 01 10 11 Z1 Z2 000 000 100 001 001 10 001 001 001 011 011 10 010 010 110 000 000 10 011 011 011 010 010 00 100 101 101 101 101 11 101 001 001 001 001 10 110 111 111 111 111 11 111 011 011 011 011 11 Q2* Q1* Q0* 4. Équations de sortie: On peut facilement déterminer les équations de sortie en regardant le circuit: Z1 = Q2 + Q1' + Q0' Z2 = Q2 Q1 + Q2 Q0' 5. Table de transition/état: Avec les équations de sortie, on ajoute la valeur des sorties au tableau de transition. Les sorties sont représentées dans la dernière colonne du tableau précédent. 6. Table d'état/sortie: On assigne aux états une assignation standard, soit A = 000, B = 001, etc. On obtient donc la table d'état/sortie suivante: Y S 00 01 10 11 Z1 Z2 A A E B B 10 B B B 10 C C G A A 10 C C 00 E F F F F 11 F B B B B 10 G H H H H 11 H 11 S*
7. iagramme d'état: On peut maintenant faire le diagramme d'état. Par contre, cette fois, puisqu'il y a deux entrées, il faut ajouter une équation de transition au lieu d'un simple 0 ou 1. Cette équation indique la transition effectuée lorsque l'expression est vraie, c'est-à-dire qu'elle donne la valeur 1. A 10 ' Y E 11 1 F 1 10 B 10 ' ' Y G 11 1 H 11 1 C 10 00 ' Exemple : A demeure à l'état A lorsque = 1, c'est-à-dire lorsque = 0 et Y = 0. Le chiffre dans la bulle en dessous du nom de l'état est la sortie du circuit.
Analyse des machines d'état avec des bascules J-K. GELE 3322 Les étapes d'analyse sont les même, sauf qu'il y a deux équations pour chaque bascule: une pour J et une pour K. S J Q CP K QN R Q0 Y S J Q CP K QN R Q1 Z CLK Exemple p.561, figure 7-45. (Machine Mealy) 1. Équations d'excitation: J0 = Y' K0 = Y' + Y Q1 J1 = Q0 + Y K1 = Y Q0' + Y' Q0 2. Équations de transition: L'équation caractéristique d'une bascule J-K est: Q* = J Q' + K' Q onc les équations de transition seront, après substitution, les suivantes: Q0* = Y' Q0' + Q0 + ' Q1' Q0 + Y Q1' Q0 Q1* = Q1' Q0 + Y Q1' + Q1 + Y' Q1 Q0' + ' Q1 Q0 + Y Q1 Q0
3. Table de transition: Y Q1 Q0 00 01 10 11 00 00, 0 01, 1 10, 0 01, 1 01 01, 0 11, 0 01, 0 11, 0 10 10, 0 00, 0 11, 0 00, 0 11 11, 0 01, 0 00, 1 01, 1 Q1*Q0*, Z 4. Équations de sortie: L'équation de sortie est: 5. Table de transition/état: Z = Q1 Q0 + Y Q1' Q0' Les valeurs de la sortie pour chaque état sont dans le tableau précédent, à coté de chaque état prochain. 6. Table d'état/sortie: Encore une fois, on utilise l'assignation simple pour nommer les états. On les nomme A = 00, B = 01, C =10 et = 11. On obtient donc la table d'état/sortie suivante: Y S 00 01 10 11 A A, 0 C, 1 B, 0 C, 1 B B, 0, 0 C, 0, 0 C C, 0 A, 0, 0 A, 0, 0 C, 0 A, 1 C, 1 S*, Z
7. iagramme d'état: On peut donc dessiner le diagramme d'état. ans ce diagramme, Z = 0 sauf où indiqué. A Y' B Y Y (Z = 1) Y' Y' (Z = 1) Y C Y' ' Y Y (Z = 1)