Logique séquentielle - Sequential logic

Dans la théorie des automates , la logique séquentielle est un type de circuit logique dont la sortie dépend non seulement de la valeur actuelle de ses signaux d'entrée, mais également de la séquence des entrées passées, ainsi que de l'historique des entrées. Ceci contraste avec la logique combinatoire , dont la sortie est fonction uniquement de l'entrée actuelle. C'est-à-dire que la logique séquentielle a un état ( mémoire ) alors que la logique combinatoire n'en a pas.

La logique séquentielle est utilisée pour construire des machines à états finis , un élément de base de tous les circuits numériques. Pratiquement tous les circuits des appareils numériques pratiques sont un mélange de logique combinatoire et séquentielle.

Un exemple familier d'appareil à logique séquentielle est un téléviseur avec des boutons « chaîne supérieure » ​​et « chaîne inférieure ». Appuyer sur le bouton « haut » donne au téléviseur une entrée lui indiquant de passer à la chaîne suivante au-dessus de celle qu'il reçoit actuellement. Si le téléviseur est sur le canal 5, appuyez sur "haut" pour recevoir le canal 6. Cependant, si le téléviseur est sur le canal 8, appuyez sur "haut" pour le faire passer au canal "9". Pour que la sélection de canal fonctionne correctement, le téléviseur doit savoir quel canal il reçoit actuellement, ce qui a été déterminé par les sélections de canaux passées. Le téléviseur mémorise la chaîne actuelle dans le cadre de son état . Lorsqu'une entrée "canal haut" ou "canal bas" lui est donnée, la logique séquentielle du circuit de sélection de canal calcule le nouveau canal à partir de l'entrée et du canal actuel.

Les circuits logiques séquentiels numériques sont divisés en types synchrones et asynchrones . Dans les circuits séquentiels synchrones, l'état du dispositif ne change qu'à des moments discrets en réponse à un signal d'horloge . Dans les circuits asynchrones, l'état de l'appareil peut changer à tout moment en réponse à des changements d'entrées.

Logique séquentielle synchrone

Presque toute la logique séquentielle aujourd'hui est une logique cadencée ou synchrone . Dans un circuit synchrone, un oscillateur électronique appelé horloge (ou générateur d'horloge ) génère une séquence d'impulsions répétitives appelée signal d'horloge qui est distribuée à tous les éléments mémoire du circuit. L'élément mémoire de base en logique séquentielle est la bascule . La sortie de chaque bascule ne change que lorsqu'elle est déclenchée par l'impulsion d'horloge, de sorte que les changements des signaux logiques dans tout le circuit commencent tous en même temps, à intervalles réguliers, synchronisés par l'horloge.

La sortie de tous les éléments de stockage (flip-flops) dans le circuit à un moment donné, les données binaires qu'ils contiennent, est appelée l' état du circuit. L'état du circuit synchrone ne change que sur les impulsions d'horloge. A chaque cycle, l'état suivant est déterminé par l'état actuel et la valeur des signaux d'entrée lorsque l'impulsion d'horloge se produit.

Le principal avantage de la logique synchrone est sa simplicité. Les portes logiques qui effectuent les opérations sur les données nécessitent un temps fini pour répondre aux changements de leurs entrées. C'est ce qu'on appelle le délai de propagation . L'intervalle entre les impulsions d'horloge doit être suffisamment long pour que toutes les portes logiques aient le temps de répondre aux changements et que leurs sorties "se règlent" à des valeurs logiques stables avant que la prochaine impulsion d'horloge ne se produise. Tant que cette condition est remplie (en ignorant certains autres détails), le circuit est garanti stable et fiable. Ceci détermine la vitesse de fonctionnement maximale du circuit synchrone.

La logique synchrone présente deux inconvénients principaux :

  • La fréquence d'horloge maximale possible est déterminée par le chemin logique le plus lent du circuit, également appelé chemin critique. Chaque calcul logique, du plus simple au plus complexe, doit se terminer en un cycle d'horloge. Ainsi, les chemins logiques qui terminent leurs calculs rapidement sont inactifs la plupart du temps, attendant la prochaine impulsion d'horloge. Par conséquent, la logique synchrone peut être plus lente que la logique asynchrone. Une façon d'accélérer les circuits synchrones consiste à diviser les opérations complexes en plusieurs opérations simples qui peuvent être effectuées en cycles d'horloge successifs, une technique connue sous le nom de pipeline . Cette technique est largement utilisée dans la conception de microprocesseurs et contribue à améliorer les performances des processeurs modernes.
  • Le signal d'horloge doit être distribué à chaque bascule du circuit. Comme l'horloge est généralement un signal à haute fréquence, cette distribution consomme une quantité d'énergie relativement importante et dissipe beaucoup de chaleur. Même les bascules qui ne font rien consomment une petite quantité d'énergie, générant ainsi de la chaleur perdue dans la puce. Dans les appareils portables dont la batterie est limitée, le signal d'horloge continue même lorsque l'appareil n'est pas utilisé, ce qui consomme de l'énergie.

Logique séquentielle asynchrone

La logique séquentielle asynchrone n'est pas synchronisée par un signal d'horloge ; les sorties du circuit changent directement en réponse aux changements des entrées. L'avantage de la logique asynchrone est qu'elle peut être plus rapide que la logique synchrone, car le circuit n'a pas à attendre un signal d'horloge pour traiter les entrées. La vitesse du dispositif n'est potentiellement limitée que par les délais de propagation des portes logiques utilisées.

Cependant, la logique asynchrone est plus difficile à concevoir et est sujette à des problèmes non rencontrés dans les conceptions synchrones. Le problème principal est que les éléments de mémoire numérique sont sensibles à l'ordre d'arrivée de leurs signaux d'entrée ; si deux signaux arrivent à une bascule ou à un verrou presque en même temps, l'état dans lequel le circuit entre peut dépendre du signal qui parvient en premier à la porte. Par conséquent, le circuit peut entrer dans le mauvais état, en fonction de petites différences dans les délais de propagation des portes logiques. C'est ce qu'on appelle une condition de course . Ce problème n'est pas aussi grave dans les circuits synchrones car les sorties des éléments de mémoire ne changent qu'à chaque impulsion d'horloge. L'intervalle entre les signaux d'horloge est conçu pour être suffisamment long pour permettre aux sorties des éléments de mémoire de se "stabiliser" afin qu'elles ne changent pas lorsque l'horloge suivante arrive. Par conséquent, les seuls problèmes de synchronisation sont dus aux « entrées asynchrones » ; entrées au circuit provenant d'autres systèmes qui ne sont pas synchronisés avec le signal d'horloge.

Les circuits séquentiels asynchrones ne sont généralement utilisés que dans quelques parties critiques de systèmes par ailleurs synchrones où la vitesse est primordiale, comme les parties de microprocesseurs et les circuits de traitement de signal numérique .

La conception de la logique asynchrone utilise différents modèles et techniques mathématiques de la logique synchrone et constitue un domaine de recherche actif.

Voir également

Les références

Lectures complémentaires