Unité 6: Logique séquentielle Objectifs : À la fin ce cette unité, vous comprendrez le fonctionnement des circuits séquentiels (à mémoire) utilisés dans les ordinateurs. Pour y arriver, vous devrez avoir atteint les objectifs suivants : - décrire le fonctionnement d'un automate fini; - distinguer un circuit asynchrone d'un circuit synchrone; - synthétiser un circuit séquentiel synchrone simple; - analyser un circuit séquentiel synchrone simple. ©Pierre Marchand, 2001 166 Unité 6: Logique séquentielle 5.3 Circuits séquentiels Dans les circuits combinatoires, les signaux de sortie ne dépendent que des signaux d ’entrée présents au même instant. Dans les circuits séquentiels, il y a de la rétroaction : les signaux de sortie ne dépendant pas uniquement des entrées, mais aussi de leur séquence. Le circuit se rappelle des entrées et des états antérieurs : il a une mémoire du passé. L’étude des circuits combinatoires repose sur l’algèbre de Boole. Celle des circuits séquentiels repose sur la théorie des automates finis. ©Pierre Marchand, 2001 167 1 Unité 6: Logique séquentielle 5.3 Circuits séquentiels 5.3.1 Concept d’automate fini Un automate fini possède un nombre fini d’éléments et de mémoires. Un automate fini ne peut prendre que 2n états appelés états internes, où n est le nombre de bits de mémoire. On peut caractériser un automate par : • Sa fonction de transfert • Sa table de transition • Son diagramme d’états ou de transition 168 ©Pierre Marchand, 2001 Unité 6: Logique séquentielle 5.3 Circuits séquentiels 5.3.1 Concept d’automate fini Exemple : Diagramme d’état ou de transition Table de transition entrée / sortie 1/0 0/0 q=0 q=1 1/1 q(t) e(t) 0 0 0 1 0 1 1 1 q(t+1) q(t) 0 1 1 0 1 s(t) 0/1 état état Fonction de transfert : q(t+1) = e(t) s(t) = q(t) ©Pierre Marchand, 2001 e(t) 0 0 1 169 2 Unité 6: Logique séquentielle 5.3 Circuits séquentiels 5.3.1 Concept d’automate fini Automate de Moore q(t+1) = f [e(t), q(t)] s(t) = g [q(t)] e(t) Logique combinatoire État q(t) Logique combinatoire s(t) Les états futurs dépendent des entrées présentes e(t) et des états internes présents q(t). Les sorties ne dépendent que des états internes présents q(t). 170 ©Pierre Marchand, 2001 Unité 6: Logique séquentielle 5.3 Circuits séquentiels 5.3.1 Concept d’automate fini Automate de Mealy q(t+1) = f [e(t), q(t)] s(t) = g [e(t), q(t)] e(t) s(t) Logique combinatoire État q(t) q(t) Les sorties s(t) dépendent des états internes présents q(t) et des entrées présentes e(t). ©Pierre Marchand, 2001 171 3 Unité 6: Logique séquentielle 5.3 Circuits séquentiels 5.3.2 Circuits asynchrones et synchrones Dans les circuits asynchrones, la sortie est modifiée dès qu’il y a un changement de l’état des entrées. Dans les circuits synchrones, la sortie ne change qu’après un signal d’horloge. Les circuits synchrones sont plus simples à synthétiser et à analyser. 5.3.3 Bistables L’élément de base de tout circuit séquentiel est le bistable (bascule, flip-flop), qui est un circuit, lui-même asynchrone, qui servira d’élément de mémoire pour les circuits synchrones ou asynchrones. 172 ©Pierre Marchand, 2001 Unité 6: Logique séquentielle 5.3 Circuits séquentiels 5.3.3 Bistables Bistable RS S On observe que si S = 0 et R = 0, le circuit est dans l’u n d e d e u x états stables : Q1 = 0 et Q2 = 1 ou Q1 = 1 et Q2 = 0. 0 0 0 1 1 1 0 ©Pierre Marchand, 2001 R Q2 Q1 0 0 0 0 1 173 4 Unité 6: Logique séquentielle 5.3 Circuits séquentiels 5.3.3 Bistables Bistable RS S Si S = 1 et R = 0, alors Q1= 1 et Q2 = 0. C’est la transition «SET». Q2 Q1 R Si S = 0 et R = 1, alors Q1 = 0 et Q2 = 1. C ’est la transition «RESET». 1 0 0 1 0 0 1 1 1 0 ©Pierre Marchand, 2001 1 0 174 Unité 6: Logique séquentielle 5.3 Circuits séquentiels 5.3.3 Bistables Bistable RS S Si S = 1 et R = 1, alors Q1= 0 et Q2 = 0. Mais cette combinaison n’est pas désirable, car si on remet nos entrées simultanément à 0, on ne peut pas prévoir l’état final du circuit. Q2 Q1 R 1 On remarque que dans les trois autres cas, Q2 = Q1. 0 0 0 1 ©Pierre Marchand, 2001 0 175 5 Unité 6: Logique séquentielle 5.3 Circuits séquentiels 5.3.3 Bistables Bistable RS On résume ce comportement dans le tableau suivant : Sn Rn Q1n+1 Q2n+1 0 1 0 1 Q1n 1 0 0 0 0 1 1 Q1n 0 1 0 S stable set reset interdit Q Q R Ou encore : Q1n+1 = Sn + Rn.Q1n ©Pierre Marchand, 2001 176 Unité 6: Logique séquentielle 5.3 Circuits séquentiels 5.3.3 Bistables Bistable RS avec horloge S Q C Qn+1 = Sn + Rn.Qn ou Qn+1 = Cn.Qn + Cn(Sn+Rn.Qn) Q R S Q C R Q ©Pierre Marchand, 2001 177 6 Unité 6: Logique séquentielle 5.3 Circuits séquentiels C 0 0 1 1 5.3.3 Bistables Bistable D avec horloge D Q C D Q Dn 0 1 0 1 Qn+1 Qn Qn 0 1 Qn+1 = Dn ou Qn+1 = DnC + QnC C Q Q L’inverseur élimine complètement la possibilité d’avoir la combinaison 1-1 à l’entrée des NOR. 178 ©Pierre Marchand, 2001 Unité 6: Logique séquentielle 5.3 Circuits séquentiels 5.3.3 Bistables Bistable T asynchrone T D Q C Q ou S Q C R Q T Bistable T synchrone T T Q Qn+1 = CnQn + Cn(TnQn + TnQn) S Q C R Q C Qn+1 = TnQn + TnQn C T Q ©Pierre Marchand, 2001 179 7 Unité 6: Logique séquentielle 5.3 Circuits séquentiels 5.3.3 Bistables Application : registre D de 4 bits D3 D2 D1 D Q C Q D Q C Q D0 D Q C Q D Q C Q écriture lecture D3 D2 D1 D0 180 ©Pierre Marchand, 2001 Unité 6: Logique séquentielle 5.3 Circuits séquentiels 5.3.3 Bistables Application : décaleur à droite Q3 0 Q2 D3 Q C Q D2 Q C Q Q1 D1 Q C Q Q0 D0 Q C Q horloge Qn+1 = D3n = 0 3 Qn+1 = D2n = Qn3 2 Qn+1 = Dn = Qn , etc. 1 ©Pierre Marchand, 2001 1 2 181 8 Unité 6: Logique séquentielle 5.3 Circuits séquentiels 5.3.3 Bistables Application : compteur binaire asynchrone modulo-16 A Q T Q horloge B Q T Q C Q T Q D Q T Q horloge A 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 B C D 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 182 ©Pierre Marchand, 2001 Unité 6: Logique séquentielle 5.3 Circuits séquentiels 5.3.3 Bistables Bistables déclenchés par une montée ou une descente de l’horloge (edge-triggered) Dans les circuits précédents, il est sous-entendu que le signal d’horloge est court, i.e. de l’ordre du temps de réponse du circuit. Sinon, un circuit comme celui du bistable T pourrait basculer plusieurs fois pendant le temps où l’horloge est 1. Ces circuits sont représentés par les diagrammes suivants : D Q D Q Q Q Qn+1 = Dn Leur sortie change seulement au moment de la transition, selon la valeur de D à cet instant précis. ©Pierre Marchand, 2001 183 9 Unité 6: Logique séquentielle 5.3 Circuits séquentiels 5.3.4 Synthèse d’un circuit séquentiel Pour faire la synthèse d’un circuit séquentiel, on établit d’abord son diagramme de transition. On contruit ensuite sa table d’états. On réalise le circuit combinatoire associé à chaque bistable. On réalise le circuit combinatoire associé à chaque sortie. 184 ©Pierre Marchand, 2001 Unité 6: Logique séquentielle 5.3 Circuits séquentiels 5.3.4 Synthèse d’un circuit séquentiel Exemple 1 : compteur binaire synchrone modulo-4 sans entrée Diagramme de transition Q1Q2 Table d’états Q1n Q2n Q1n+1 Q2n+1 01 00 0 0 1 1 10 11 ©Pierre Marchand, 2001 0 1 0 1 0 1 1 0 1 0 1 0 185 10 Unité 6: Logique séquentielle 5.3 Circuits séquentiels 5.3.4 Synthèse d’un circuit séquentiel Exemple 1 : compteur binaire synchrone modulo-4 sans entrée Réalisation au moyen de bistables D Q1n Q2n Q1n+1 Q2n+1 D1n D2n 0 0 1 1 0 1 0 1 0 1 1 0 1 0 1 0 0 1 1 0 1 0 1 0 D1n = Q1n+1 = Q1n ⊕Q2n D2n = Q2n+1 = Q2n D2 Q2 D1 Q1 C Q2 C Q1 186 ©Pierre Marchand, 2001 Unité 6: Logique séquentielle 5.3 Circuits séquentiels 5.3.4 Synthèse d’un circuit séquentiel Exemple 1 : compteur binaire synchrone modulo-4 sans entrée Réalisation au moyen de bistables T synchrones Pour le tableau, T1n = 1 si Q1n+1 ≠ Q1n, sinon T1n = 0, et T2n = 1 si Q2n+1 ≠ Q2n , sinon T2n = 0. Q1n Q2n Q1n+1 Q2n+1 T1n T2n 0 0 1 1 0 1 0 1 0 1 1 0 ©Pierre Marchand, 2001 1 0 1 0 0 1 0 1 1 1 1 1 T1n = Q2n T2n = 1 1 T2 Q2 T1 Q1 C Q2 C Q1 187 11 Unité 6: Logique séquentielle 5.3 Circuits séquentiels 5.3.4 Synthèse d’un circuit séquentiel Exemple 2 : compteur binaire synchrone modulo-4 avec entrée Diagramme de transition Table d’états 0/01 1/01 0/00 00 Q1n Q2n 01 Q1Q2 1/10 11 1/11 1/00 10 0 0 0 0 1 1 1 1 0/10 0/11 n+1 x Q1 0 0 1 0 0 0 1 1 0 1 1 1 0 1 1 0 0 0 1 1 0 0 1 1 Q2n+1 0 1 1 0 0 1 1 0 188 ©Pierre Marchand, 2001 Unité 6: Logique séquentielle 5.3 Circuits séquentiels 5.3.4 Synthèse d’un circuit séquentiel Exemple 2 : compteur binaire synchrone modulo-4 avec entrée Réalisation au moyen de bistables T Q1n 0 0 0 0 1 1 1 1 Q2n 0 0 1 1 0 0 1 1 ©Pierre Marchand, 2001 xn 0 1 0 1 0 1 0 1 Q1n+1 0 0 0 1 1 1 1 0 Q2n+1 0 1 1 0 0 1 1 0 T1n T2n 0 0 0 1 0 0 0 1 0 1 0 1 0 1 0 1 Q1n Q2n xn 00 01 11 10 0 0 0 0 0 1 0 1 1 0 T1n T1n = x.Q2n T2n = x 189 12 Unité 6: Logique séquentielle 5.3 Circuits séquentiels 5.3.4 Synthèse d’un circuit séquentiel Exemple 2 : compteur binaire synchrone modulo-4 avec entrée Réalisation au moyen de bistables T synchrones x x T2 Q2 T1 Q1 C Q2 C Q1 Nous ne nous sommes pas préoccupés des sorties, puisque selon Le diagramme de transition, il est évident qu’elles sont égales à Q2n+1 et Q1n+1 respectivement. ©Pierre Marchand, 2001 190 Unité 6: Logique séquentielle 5.3 Circuits séquentiels 5.3.4 Synthèse d’un circuit séquentiel Exemple 2 : compteur binaire synchrone modulo-4 avec entrée Réalisation au moyen de bistables D xn xn Q1nQ2n 0 1 Q1nQ2n 0 1 Q1n Q2n xn Q1n+1 Q2n+1 D1n D2n 00 0 0 00 0 1 0 0 0 0 0 0 0 01 0 1 01 1 0 0 0 1 0 1 0 1 11 1 0 11 1 0 0 1 0 0 1 0 1 10 1 1 10 0 1 0 1 1 1 0 1 0 D1n D2n 1 0 0 1 0 1 0 1 0 1 1 1 1 1 D2n = x n .Q2n + x n .Q2n = x n ⊕ Q2n 1 1 0 1 1 1 1 1 1 1 0 0 0 0 D1n = Q1n .Q2n + x n .Q1nQ2n + x n .Q1n .Q2n = Q1n ⊕ x nQ2n ©Pierre Marchand, 2001 191 13 Unité 6: Logique séquentielle 5.3 Circuits séquentiels 5.3.4 Synthèse d’un circuit séquentiel Exemple 2 : compteur binaire synchrone modulo-4 avec entrée Réalisation au moyen de bistables D x D2 Q2 D1 Q1 C Q2 x C Q1 ©Pierre Marchand, 2001 192 Unité 6: Logique séquentielle 5.3 Circuits séquentiels 5.3.4 Synthèse d’un circuit séquentiel Exemple 3 : Système de contrôle de feux de circulation Les feux alternent de A à B à chaque coup d’horloge quand x = 0. Dans l’état A, la circulation se fait dans la direction NS, dans l’état B, dans la direction EO. Un piéton peut traverser après avoir appuyé sur le bouton (x = 1 ) car quand x =1, on passe à l’état C dans lequel les feux sont sous deux rouges pour la durée d’une horloge ou tant que le bouton est enfoncé. ©Pierre Marchand, 2001 x=0 A x=0 x=1 x=0 B x=1 C x=1 193 14 Unité 6: Logique séquentielle 5.3 Circuits séquentiels 5.3.4 Synthèse d’un circuit séquentiel Exemple 3 : Système de contrôle de feux de circulation Cette réalisation un peu naïve présente quelques problèmes : Si un malin appuie sans cesse sur le bouton, la circulation automobile est complètement paralysée. D’autre part, comme le système une fois dans l‘état C retourne toujours dans l’état A, il se pourrait qu’on n’arrive presque jamais dans l’état B s’il y a fréquemment des piétons. 194 ©Pierre Marchand, 2001 Unité 6: Logique séquentielle 5.3 Circuits séquentiels 5.3.4 Synthèse d’un circuit séquentiel Exemple 3 : Système de contrôle de feux de circulation Une meilleure réalisation serait la suivante : x=0 A x=0 x=1 C Entrée Sortie État présent présente x présente 0 1 z1z2 A B C 01 B A D 10 C B B 00 D A A 00 B x=1 x=0 ou 1 D État suivant ©Pierre Marchand, 2001 195 15 Unité 6: Logique séquentielle 5.3 Circuits séquentiels 5.3.4 Synthèse d’un circuit séquentiel Exemple 3 : Système de contrôle de feux de circulation Codage des états : on attribue arbitrairement Q1Q2 = 00 représente A Q1Q2 = 01 représente B Entrée Sortie État Q1Q2 = 10 représente C présente x présente présent Q1Q2 = 11 représente D 0 1 z1z2 00 01 10 11 10 00 01 00 10 11 01 00 01 10 00 00 État suivant 196 ©Pierre Marchand, 2001 Unité 6: Logique séquentielle 5.3 Circuits séquentiels 5.3.4 Synthèse d’un circuit séquentiel Exemple 3 : Système de contrôle de feux de circulation Table de transition Entrée État État Sorties Bistables x présent suivant présentes D1D2 Q1Q2 Q1+Q2+ z1z2 0 00 01 01 01 0 01 00 10 00 0 10 01 00 01 0 11 00 00 00 1 00 10 01 10 1 01 11 10 11 1 10 01 00 01 1 11 00 00 00 ©Pierre Marchand, 2001 197 16 Unité 6: Logique séquentielle 5.3 Circuits séquentiels 5.3.4 Synthèse d’un circuit séquentiel Exemple 3 : Système de contrôle de feux de circulation Tables de Karnaugh pour les entrées des bistables : Q1Q2 x 00 01 11 10 0 0 0 0 0 1 1 1 0 0 Q1Q2 x 00 01 11 10 0 1 0 0 1 1 0 1 0 1 D2 D1 D1 = x.Q1 D2 = Q1.Q2 + x.Q2 + x.Q1.Q2 198 ©Pierre Marchand, 2001 Unité 6: Logique séquentielle 5.3 Circuits séquentiels 5.3.4 Synthèse d’un circuit séquentiel Exemple 3 : Système de contrôle de feux de circulation Tables de Karnaugh pour les sorties : Q1Q2 x 00 01 11 10 0 0 1 0 0 1 0 1 0 0 Q1Q2 x 00 01 11 10 0 1 0 0 0 1 1 0 0 0 z2 z1 z1 = Q1.Q2 ©Pierre Marchand, 2001 z2 = Q1.Q2 199 17 Unité 6: Logique séquentielle 5.3 Circuits séquentiels 5.3.4 Synthèse d’un circuit séquentiel Exemple 3 : Système de contrôle de feux de circulation Circuit : x D1 Q1 Q1 D2 Q2 z1 z2 Q2 horloge ©Pierre Marchand, 2001 200 18