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. 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. 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 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 entrée / sortie Table de transition q(t) e(t) 0 1 0 0 1 1 0 1 0 0 0 1 1 1 1/0 0/0 q=0 q=1 1/1 q(t+1) 0/1 état état s(t) Fonction de transfert : q(t+1) = e(t) s(t) = q(t) 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 Logique combinatoire État q(t) 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
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) Logique combinatoire s(t) É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). 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. 172
Unité 6: Logique séquentielle 5.3 Circuits séquentiels 5.3.3 Bistables Bistable RS S Q2 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. Q1 R 1 1 1 1 173
Unité 6: Logique séquentielle 5.3 Circuits séquentiels 5.3.3 Bistables Bistable RS S Q2 Si S = 1 et R = 0, alors Q1= 1 et Q2 = 0. C’est la transition «SET». Si S = 0 et R = 1, alors Q1 = 0 et Q2 = 1. C ’est la transition «RESET». Q1 R 1 1 1 1 1 1 174
Unité 6: Logique séquentielle 5.3 Circuits séquentiels 5.3.3 Bistables Bistable RS S Q2 Si S = 1 et R = 1, alors Q1= 0 et Q2 = 0. Mais cette combinaison n’est pas désira-ble, car si on remet nos entrées simul-tanément à 0, on ne peut pas prévoir l’état final du circuit. On remarque que dans les trois autres cas, Q2 = Q1. Q1 R 1 1 175
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 0 0 1 0 1 0 0 1 0 1 1 1 0 0 S Q stable set reset Q R interdit Ou encore : Qn+1 = Sn + Rn.Qn 1 176
Unité 6: Logique séquentielle 5.3 Circuits séquentiels 5.3.3 Bistables Bistable RS avec horloge S Q Qn+1 = Sn + Rn.Qn ou Qn+1 = Cn.Qn + Cn(Sn+Rn.Qn) C Q R S Q C R Q 177
Unité 6: Logique séquentielle 5.3 Circuits séquentiels 5.3.3 Bistables Bistable D avec horloge C Dn Qn+1 0 0 Qn 0 1 Qn 1 0 0 1 1 1 D Q D Q C Q Qn+1 = Dn ou Qn+1 = DnC + QnC C Q L’inverseur élimine complètement la possibilité d’avoir la com-binaison 1-1 à l’entrée des NOR. 178
Unité 6: Logique séquentielle 5.3 Circuits séquentiels 5.3.3 Bistables Bistable T asynchrone Bistable T synchrone Qn+1 = TnQn + TnQn S Q C R Q D Q C Q ou T T T Q Qn+1 = CnQn + Cn(TnQn + TnQn) S Q C R Q C T C T Q 179
Unité 6: Logique séquentielle 5.3 Circuits séquentiels 5.3.3 Bistables Application : registre D de 4 bits D3 D2 D1 D0 D Q C Q D Q C Q D Q C Q D Q C Q écriture lecture D3 D2 D1 D0 180
Unité 6: Logique séquentielle 5.3 Circuits séquentiels 5.3.3 Bistables Application : décaleur à droite Q3 Q2 Q1 Q0 D3 Q C Q D2 Q C Q D1 Q C Q D0 Q C Q horloge Qn+1 = Dn = 0 Qn+1 = Dn = Qn Qn+1 = Dn = Qn , etc. 3 3 2 2 3 1 1 2 181
Unité 6: Logique séquentielle 5.3 Circuits séquentiels 5.3.3 Bistables Application : compteur binaire asynchrone modulo-16 A B C D Q T Q Q T Q Q T Q Q T Q horloge horloge A 1 1 1 1 1 1 1 1 B 1 1 1 1 1 1 1 1 C 1 1 1 1 1 1 1 1 D 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 bas-culer plusieurs fois pendant le temps où l’horloge est 1. Ces circuits sont représentés par les diagrammes suivants : D Q Q D Q Q Qn+1 = Dn Leur sortie change seulement au moment de la transition, selon la valeur de D à cet instant précis. 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. 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 Table d’états Q1Q2 01 0 0 0 1 0 1 1 0 1 0 1 1 1 1 0 0 00 10 11 185
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 0 0 0 1 0 1 0 1 1 0 1 0 1 0 1 1 1 1 1 1 0 0 0 0 D2 Q2 C Q2 D1 Q1 C Q1 186
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, si , sinon , et si , sinon . 0 0 0 1 0 1 0 1 1 0 1 1 1 0 1 1 0 1 1 1 0 0 1 1 1 T2 Q2 C Q2 T1 Q1 C Q1 187
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 x 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 1 0 1 0 1 1 1 1 1 0 1 1 1 1 1 0 0 1/01 1/10 01 Q1Q2 0/00 00 10 0/10 1/00 11 1/11 0/11 188
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 xn xn 0 1 00 0 0 01 0 1 11 0 1 10 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 0 1 0 0 0 1 1 1 0 1 1 1 0 0 1 0 0 0 1 0 1 1 1 0 1 1 1 0 1 1 0 0 1 1 1 0 0 1 1 189
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 C Q2 T1 Q1 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 à et respectivement. 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 xn 0 1 00 0 0 01 0 1 11 1 0 10 1 1 0 1 00 0 1 01 1 0 11 1 0 10 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 1 1 0 1 0 1 0 0 1 0 1 0 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 0 0 0 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 D2 Q2 C Q2 D1 Q1 C Q1 x x 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é. x = 0 A B x = 0 x = 1 x = 0 x = 1 C x = 1 193
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
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 État présent Entrée Sortie présente x présente 0 1 z1z2 A B C 0 1 B A D 1 0 C B B 0 0 D A A 0 0 A B x = 0 x = 1 x = 1 x = 0 ou 1 C D État suivant 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 Q1Q2 = 10 représente C Q1Q2 = 11 représente D État présent Entrée Sortie présente x présente 0 1 z1z2 00 10 10 0 1 01 00 11 1 0 10 01 01 0 0 11 00 00 0 0 État suivant 196
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 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 : Q1Q2 Q1Q2 x 00 01 11 10 0 0 0 0 0 1 1 1 0 0 x 00 01 11 10 0 1 0 0 1 1 0 1 0 1 D1 D2 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 : Q1Q2 Q1Q2 x 00 01 11 10 0 0 1 0 0 1 0 1 0 0 x 00 01 11 10 0 1 0 0 0 1 1 0 0 0 z1 z2 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 D1 Q1 Q1 z1 D2 Q2 Q2 z2 horloge 200