Logique combinatoire vs séquentielle : les différences expliquées

En logique combinatoire, la sortie ne dépend que des entrées présentes : les mêmes entrées donnent toujours la même sortie. En logique séquentielle, la sortie dépend aussi de l'état mémorisé, c'est-à-dire de l'historique des entrées passées. Les circuits séquentiels ajoutent des éléments de mémorisation comme des bascules et sont généralement commandés par une horloge. Les systèmes numériques réels alternent les deux : la logique combinatoire calcule entre des registres qui conservent l'état.

CritèreLogique combinatoireLogique séquentielle
La sortie dépend deDes entrées présentes uniquementDes entrées présentes et de l'état mémorisé (historique)
Éléments de mémorisationAucunBascules ou latchs
HorlogeInutileGénéralement cadencée (conception synchrone)
RétroactionAucune : une boucle de rétroaction serait une erreur de conceptionRétroaction via les éléments d'état
ExemplesAdditionneurs, multiplexeurs, décodeurs, encodeurs, comparateursRegistres, compteurs, registres à décalage, machines à états
Contraintes temporellesTemps de propagation, et glitches (aléas) pendant le changement des entréesTemps de setup et de hold, période d'horloge et décalage d'horloge (skew)
Outils de conceptionTables de vérité, algèbre de Boole, tableaux de KarnaughTables d'états et diagrammes d'états
En VerilogAffectations continues ou blocs always qui affectent chaque sortie dans chaque brancheBlocs always cadencés (sur le front d'horloge)

Les valeurs indiquées sont des ordres de grandeur typiques et varient selon la génération de procédé et le produit.

Quand choisir l'un ou l'autre ?

Combinatoire
Pour les calculs et le décodage qui ne doivent dépendre que des valeurs présentes, comme l'arithmétique et la sélection.
Séquentielle
Pour tout ce qui mémorise : compteurs, registres, contrôleurs, et tout circuit qui suit une séquence d'étapes.
Conseil HDL
Dans un bloc always combinatoire, affectez chaque sortie dans chaque branche. Sinon, la synthèse infère un latch non désiré.

Questions fréquentes

Une bascule est-elle combinatoire ou séquentielle ?

Séquentielle. Elle stocke un bit, sa sortie dépend donc de l'état mémorisé et pas seulement de ses entrées.

Un additionneur est-il combinatoire ou séquentiel ?

Combinatoire. Ses sorties ne dépendent que des entrées actuelles. Un compteur, en revanche, est séquentiel.

Un circuit peut-il être les deux ?

Oui. Les systèmes numériques réels alternent la logique combinatoire entre des registres : le système complet est séquentiel et construit à partir de blocs combinatoires.

Pourquoi les boucles de rétroaction posent-elles problème en logique combinatoire ?

Un circuit combinatoire ne doit comporter aucune boucle. Une boucle fait dépendre la sortie d'elle-même, ce qui peut provoquer des oscillations ou maintenir un état de manière involontaire.

Vérifier vos connaissances

Quelle description d'un circuit séquentiel est correcte ?

  1. ALa sortie dépend de l'entrée actuelle et de l'état interne mémorisé
  2. BLa sortie dépend uniquement de l'entrée actuelle
  3. CIl ne traite que des signaux analogiques
Afficher la réponse et l'explication

Réponse : A. La sortie dépend de l'entrée actuelle et de l'état interne mémorisé

Un circuit séquentiel comporte des éléments de mémorisation comme des bascules, et sa sortie dépend non seulement de l'entrée actuelle mais aussi de l'historique des entrées (état interne). Les compteurs, registres et machines à états en sont des exemples types ; on peut par exemple modéliser la gestion du montant introduit dans un distributeur automatique. Un circuit dont la sortie ne dépend que de l'entrée actuelle est un circuit combinatoire (additionneur, décodeur, etc.) ; les circuits numériques réels alternent ces deux types, cadencés par l'horloge.

Dans un circuit combinatoire, comment appelle-t-on l'impulsion parasite qui apparaît brièvement en sortie lors d'un changement d'entrée, en raison des différences de délai entre chemins ?

  1. AMétastabilité
  2. BGlitch (aléa)
  3. CLatch-up
Afficher la réponse et l'explication

Réponse : B. Glitch (aléa)

Lorsqu'un même changement d'entrée atteint la sortie par des chemins différents, les différences de délai peuvent donner momentanément une valeur erronée en sortie : c'est un glitch (aléa). Dans un circuit synchrone, ce n'est pas un problème fonctionnel si la sortie se stabilise avant le front d'horloge, mais les charges-décharges superflues augmentent la consommation. En revanche, un glitch sur une horloge, une remise à zéro asynchrone ou un signal de commande vers une autre puce provoque des dysfonctionnements ; la règle est de produire ces signaux directement depuis la sortie d'une bascule.

Quel type de circuit séquentiel (machine à états) a une sortie déterminée uniquement par l'état actuel ?

  1. AType Mealy
  2. BType Moore
  3. CType Harvard
Afficher la réponse et l'explication

Réponse : B. Type Moore

Dans le type Moore, la sortie dépend uniquement de l'état actuel ; dans le type Mealy, elle dépend à la fois de l'état et de l'entrée. Le type Moore, dont la sortie provient directement du registre d'état, produit peu de glitchs, est stable et a un comportement temporel prévisible, mais sa réaction à l'entrée est retardée d'un cycle et le nombre d'états tend à augmenter. Le type Mealy réduit le nombre d'états et réagit immédiatement à l'entrée, mais les variations de l'entrée se répercutent directement sur la sortie. En pratique, on combine les deux.

  1. Quel est l'avantage d'un circuit synchrone, où toutes les bascules fonctionnent avec une horloge commune ?
  2. Voulant un circuit combinatoire, on a écrit le code ci-dessus. Quel problème peut survenir ?
  3. Quelle écriture est couramment utilisée pour éviter les verrous non voulus dans un bloc always combinatoire ?

Questions d'entraînement sur Circuits logiques

Termes clés expliqués

Circuit combinatoire
Circuit logique dont la sortie dépend uniquement des entrées présentes. Exemples : additionneurs, multiplexeurs, décodeurs.
Circuit séquentiel
Circuit logique qui mémorise un état à l'aide de bascules, etc., et dont la sortie dépend à la fois des entrées et des états passés. Exemples : compteurs, registres.
Bascule (flip-flop)
Élément de base des circuits séquentiels qui mémorise un bit d'information. La bascule D capture son entrée sur un front d'horloge.

Comparatifs associés