Un circuit logique combinatoire est un circuit électronique qui réalise une fonction – au sens mathématique du terme – dont les paramètres et le résultat sont des valeurs binaires. Le mot « combinatoire » signifie que l’on peut énumérer toutes les combinaisons possibles de valeurs d’entrée et associer à chacune un résultat. Autrement dit, il est possible de représenter le comportement du circuit sous la forme d’une table de vérité.
Dans un circuit logique combinatoire, la même combinaison de valeurs en entrée produit toujours la même combinaison de valeurs en sortie. À chaque fois qu’une entrée change, le circuit recalcule automatiquement ses sorties.
Tous les circuits que nous avons étudiés dans le chapitre précédent font partie de la famille des circuits combinatoires : les portes logiques, les multiplexeurs, les additionneurs, etc.
Vu de l’extérieur, un circuit logique séquentiel se présente également comme un circuit électronique qui traite des données binaires en entrée et qui produit des données binaires en sortie. Ici, cependant, les valeurs des sorties ne dépendent pas seulement de la valeur des entrées à l’instant courant, mais également de la séquence des valeurs d’entrée reçues précédemment.
Dans le système de commande de robot que nous avons réalisé, le robot avance tant que le bouton Avancer de la télécommande est pressé. Dès que l’utilisateur relâche ce bouton, le robot s’arrête. Nous pouvons imaginer un fonctionnement différent, dans lequel un premier appui sur le bouton déclencherait le mouvement, et un second appui l’arrêterait. On pourrait alors écrire le scénario suivant :
Ce fonctionnement peut être représenté plus précisément sous la forme d’un chronogramme. Sur la figure ci-dessous, les valeurs successives de ont été représentées sous la forme de niveaux bas et hauts. L’axe horizontal représente le temps. Nous avons introduit une variable qui vaut 1 lorsque le robot doit avancer et 0 lorsqu’il doit être immobile.
Pouvons-nous établir la table de vérité de en fonction de ? D’après le chronogramme, elle devrait ressembler à ceci :
→ | ||
---|---|---|
0 | → | Ça dépend |
1 | → | Ça dépend |
Le calcul de ne peut pas être réalisé par un circuit logique combinatoire car la valeur de dépend du nombre de fois que le bouton a été pressé depuis la mise en marche du système : vaut 0 si le bouton a été pressé un nombre pair de fois, 1 si le bouton a été pressé un nombre impair de fois.
Pour déterminer la valeur de , il faut que le circuit conserve des informations sur les événements passés. La sortie est donc calculée en fonction de l’entrée et des informations mémorisées. Dans la table de vérité ci-dessous, nous faisons l’hypothèse que le circuit connaît la valeur courante de et se souvient des valeurs que et avaient à l’instant précédent (, ). En observant le chronogramme, nous pouvons identifier huit cas. Sur la figure ci-dessous, nous les avons numérotés et nous avons mis en évidence les valeurs mémorisées en bleu et les valeurs courantes en rouge.
À présent, nous pouvons établir la table de vérité suivante :
→ | Chronogramme | ||||
---|---|---|---|---|---|
0 | 0 | 0 | → | 0 | (1) |
0 | 0 | 1 | → | 1 | (5) |
0 | 1 | 0 | → | 1 | (2) |
0 | 1 | 1 | → | 0 | (6) |
1 | 0 | 0 | → | 0 | (8) |
1 | 0 | 1 | → | 1 | (4) |
1 | 1 | 0 | → | 0 | (7) |
1 | 1 | 1 | → | 1 | (3) |
Nous retrouvons la table de vérité d’un circuit logique combinatoire, avec pour seule particularité la présence de deux signaux internes qui fournissent des valeurs précédentes de et .
On remarque que dans les cas 2 et 6, . Dans les autres cas, :
Cette observation suggère un circuit utilisant un multiplexeur. Sur le schéma ci-dessous, nous avons fait apparaître des composants de mémorisation (Mem). Leur fonctionnement sera détaillé dans la suite de ce chapitre.
Dans le cas général, un circuit logique séquentiel est constitué d’un assemblage de circuits logiques combinatoires et d’éléments de mémorisation. On dit que ces éléments de mémorisation contiennent l’état interne du circuit. Au cours de son fonctionnement, le circuit :
Le schéma ci-dessous illustre ce fonctionnement. Le nuage « Comb » représente une fonction logique combinatoire qui calcule les sorties et l’état suivant. Le rectangle « Mem » représente les éléments de mémorisation qui conservent l’état du circuit.
Dans la suite de ce document, nous noterons avec une étoile (par exemple ) l’état suivant de manière à le distinguer de l’état courant (par exemple ).
Dans un circuit logique combinatoire, la même combinaison de valeurs en entrée produit toujours la même combinaison de valeurs en sortie.
Dans un circuit logique séquentiel, les valeurs des sorties dépendent également de la séquence des valeurs d’entrée reçues précédemment.
Ainsi, un circuit logique séquentiel calcule ses sorties en fonction d’informations qu’il a mémorisées au cours de son fonctionnement. Ces informations constituent l’état interne du circuit.
Un circuit logique séquentiel est constitué d’un assemblage