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 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 ©Pierre Marchand, 2001 168 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) e(t) 0 0 0 1 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 169 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). ©Pierre Marchand, 2001 170 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 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. ©Pierre Marchand, 2001 172 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’un de deux états stables : Q1 = 0 et Q2 = 1 ou Q1 = 1 et Q2 = 0. 0 0 0 1 1 1 0 ©Pierre Marchand, 2001 R 0 0 0 0 173 1 Q2 Q1 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». R Si S = 0 et R = 1, alors Q1 = 0 et Q2 = 1. C ’est la transition «RESET». 1 1 0 0 0 0 0 ©Pierre Marchand, 2001 1 1 1 1 174 0 Q2 Q1 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 175 0 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 Q1n1 Q2n1 0 1 0 1 0 0 1 1 Q1n Q1n 1 0 0 0 1 0 S stable set reset interdit Ou encore : Q1n+1 = Sn + Rn.Q1n ©Pierre Marchand, 2001 176 R Q Q 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 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 C Q Q Dn Qn+1 0 Qn 1 Qn 0 0 1 1 Qn+1 = Dn ou Qn+1 = DnC + QnC L’inverseur élimine complètement la possibilité d’avoir la combinaison 1-1 à l’entrée des NOR. ©Pierre Marchand, 2001 178 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 Unité 6: Logique séquentielle 5.3 Circuits séquentiels 5.3.3 Bistables Application : registre D de 4 bits D3 D2 D Q C Q D1 D Q C Q D0 D Q C Q D Q C Q écriture lecture D3 ©Pierre Marchand, 2001 D2 180 D1 D0 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 D1 Q C Q horloge n = 0 Qn+1 = D 3 3 n = Qn Qn+1 = D 2 2 3 Qn+1 = Dn = Qn , etc. 1 ©Pierre Marchand, 2001 1 181 Q1 2 Q0 D0 Q C Q Unité 6: Logique séquentielle 5.3 Circuits séquentiels 5.3.3 Bistables Application : compteur binaire asynchrone modulo-16 A horloge Q T Q 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 ©Pierre Marchand, 2001 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 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 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. ©Pierre Marchand, 2001 184 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 Q1 Q2 01 00 Q1n Q2n Q1n1 Q2n1 0 0 1 1 10 11 ©Pierre Marchand, 2001 Table d’états 185 0 1 0 1 0 1 1 0 1 0 1 0 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 Q1n1 Q2n1 D1n D2n 0 0 1 1 0 1 0 1 ©Pierre Marchand, 2001 0 1 1 0 1 0 1 0 0 1 1 0 186 1 0 1 0 D1n Q1n1 Q1n Q2n D2n Q2n1 Q2n D 2 Q2 D 1 Q1 C Q2 C Q1 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 Q1n1 Q1n, sinon T1n 0, n n1 n n et T2 1 si Q2 Q2 , sinon T2 0. Q1n Q2n Q1n1 Q2n1 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 187 T1n Q2n T2n 1 1 T2 Q2 T1 Q1 C Q2 C Q1 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 Table d’états Diagramme de transition 0/01 1/01 0/00 00 1/00 Q1n Q2n 01 Q1Q2 1/10 11 1/11 10 0/10 0/11 ©Pierre Marchand, 2001 188 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 n1 x Q1 0 0 1 0 0 0 1 1 0 1 1 1 0 1 1 0 Q2n1 0 1 1 0 0 1 1 0 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 Q2n xn Q1n1 Q2n1 T1n T2n 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 ©Pierre Marchand, 2001 0 1 0 1 0 1 0 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 0 0 1 0 0 0 1 189 0 1 0 1 0 1 0 1 xn Q1n Q2n 00 01 11 10 0 0 0 0 0 1 0 1 1 0 T1n T1n x.Q2n T2n x 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 T 2 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 à Q2n1 et Q1n1 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 n n x x Q1nQ2n 0 1 Q1nQ2n 0 1 Q1n Q2n xn Q1n1 Q2n1 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 n D1 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 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 ©Pierre Marchand, 2001 D 2 Q2 D 1 Q1 C Q2 x C Q1 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 193 x=0 A x=0 x=1 x=0 B x=1 C x=1 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. ©Pierre Marchand, 2001 194 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 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ésent présente x présente Q1Q2 = 11 représente D 0 1 z1z2 00 01 10 11 10 00 01 00 10 11 01 00 État suivant ©Pierre Marchand, 2001 196 01 10 00 00 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 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 : Q1 Q2 x 00 01 11 10 0 0 0 0 0 1 1 1 0 0 Q1 Q2 x 00 01 11 10 0 1 0 0 1 1 0 1 0 1 D1 D1 x.Q1 ©Pierre Marchand, 2001 D2 D2 Q1.Q2 x.Q2 x.Q1.Q2 198 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 : Q1 Q2 x 00 01 11 10 0 0 1 0 0 1 0 1 0 0 Q1 Q2 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 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 D 1 Q1 Q1 D 2 Q2 Q2 horloge ©Pierre Marchand, 2001 200 z1 z2