Multiplexeur et décodeur#

Choisir un signal parmi plusieurs#

Jusqu'ici, nos circuits calculaient : ils prenaient des bits en entrée et en produisaient d'autres. Un processeur a besoin d'un autre type de brique, capable de choisir quel signal laisser passer. Par exemple, l'unité de calcul devra décider si elle envoie en sortie le résultat d'une addition ou celui d'une soustraction ; et plusieurs composants devront, chacun à leur tour, poser leur valeur sur un fil partagé, le bus.

Le composant qui réalise ce choix s'appelle un multiplexeur (souvent abrégé mux). On peut le voir comme un sélecteur, à la manière d'un bouton rotatif : plusieurs entrées de données se présentent, quelques entrées de sélection (la commande) en désignent une, et l'unique sortie recopie sa valeur. Un multiplexeur fait donc passer une entrée parmi plusieurs vers une seule sortie.

Le multiplexeur 2 vers 1#

Le plus simple a deux entrées de données a et b, un bit de sélection s, et une sortie y. Son fonctionnement tient en une phrase : y recopie a quand s vaut 0, et b quand s vaut 1. Le bit s agit comme un interrupteur qui désigne l'entrée à laisser passer.

On le représente par un symbole en forme de trapèze : les entrées de données a et b à gauche, le bit de sélection s en dessous, et la sortie y à droite.

Symbole d'un multiplexeur 2 vers 1 : deux entrées a et b à gauche, un bit de sélection s en dessous, une sortie y à droite

Le symbole du multiplexeur 2 vers 1.#

s

y

0

a

1

b

On traduit ce comportement en une expression logique avec les opérateurs déjà connus :

y = (¬s a) (s b)

Elle se lit bien : quand s = 0, alors ¬s = 1, donc le premier terme vaut a et le second vaut 0 : y = a. Quand s = 1, le premier terme s'annule et le second vaut b : y = b. Il suffit donc de deux portes ET, d'une porte OU et d'une porte NON.

Un multiplexeur 2 vers 1 au niveau des portes : une porte NON produit ¬s, deux portes ET calculent a ET ¬s et b ET s, et une porte OU les combine en y

Le multiplexeur 2 vers 1 : y = (¬s a) (s b).#

Important

Un multiplexeur 2 vers 1 choisit entre deux entrées avec un bit de sélection : y = a si s = 0, y = b si s = 1. Son expression est y = (¬s a) (s b).

Voici ce circuit en fonctionnement. Cliquez sur les entrées a, b et s pour changer leur valeur, et observez la sortie y : elle recopie a tant que s vaut 0, puis bascule sur b dès que s vaut 1.

Le multiplexeur 4 vers 1#

Pour choisir parmi quatre entrées e0, e1, e2, e3, un seul bit de sélection ne suffit plus : il en faut deux, s1 et s0. Le nombre binaire s1 s0 (de 0 à 3) désigne alors l'entrée à recopier.

Son symbole reprend celui du 2 vers 1, avec quatre entrées de données et deux bits de commande :

Symbole d'un multiplexeur 4 vers 1 : quatre entrées e0 à e3 à gauche, deux bits de sélection s1 et s0 en dessous, une sortie y à droite

Le symbole du multiplexeur 4 vers 1 et ses deux bits de sélection.#

s1

s0

entrée choisie

y

0

0

e0

e0

0

1

e1

e1

1

0

e2

e2

1

1

e3

e3

Le décodeur#

Le multiplexeur choisit une entrée parmi plusieurs. Un composant voisin, le décodeur, fait en quelque sorte l'inverse : à partir d'un petit nombre binaire, il active une seule sortie, celle dont le numéro correspond à ce nombre.

Un décodeur 2 vers 4 possède deux entrées de sélection (s1, s0) et quatre sorties (out0, out1, out2, out3). Le nombre s1 s0 (de 0 à 3) désigne la sortie qui passe à 1 ; toutes les autres restent à 0.

s1

s0

sortie active

0

0

out0

0

1

out1

1

0

out2

1

1

out3

C'est un composant d'adressage : il transforme un numéro en un signal unique. On s'en sert pour désigner une case de la mémoire, choisir un registre, ou encore décoder le code d'une instruction. On peut le voir comme une rangée de lampes numérotées dont l'entrée n'allume que celle qui porte son numéro.

Essayez ci-dessous : changez le nombre de sélection et observez la sortie qui s'allume.

Exercices#

Exercice 26#

Un aiguillage électronique dirige les trains sur la voie a quand s = 0, et sur la voie b quand s = 1 : exactement le comportement d'un multiplexeur 2 vers 1. Les valeurs a et b indiquent si un train attend sur chaque voie (1 = train présent), et y indique si un train va effectivement s'engager sur l'aiguillage.

Complétez la table de vérité de cet aiguillage en choisissant la valeur de y pour chacune des huit lignes.

s

a

b

y

0

0

0

0

0

1

0

1

0

0

1

1

1

0

0

1

0

1

1

1

0

1

1

1

Exercice 27#

Une console de mixage possède quatre entrées audio e0, e1, e2 et e3, branchées sur un multiplexeur 4 vers 1 (le même type de circuit qui, plus tard, servira à choisir quelle donnée poser sur le bus). L'ingénieur du son a réglé les niveaux suivants : e0 = 1, e1 = 0, e2 = 1, e3 = 0.

Pour chaque position du sélecteur s1 s0, complétez l'entrée sélectionnée et la valeur de y.

s1

s0

entrée choisie

y

0

0

0

1

1

0

1

1

Exercice 28#

Un multiplexeur a besoin d'un bit de sélection par doublement du nombre d'entrées : n bits de sélection permettent de choisir parmi \(2^n\) entrées. Répondez aux questions suivantes.

  1. Combien de bits de sélection faut-il pour un multiplexeur 8 vers 1 ?

  2. Combien d'entrées peut-on choisir avec 4 bits de sélection ?

Exercice 29#

Dans le simulateur ci-dessous, réalisez un multiplexeur 4 vers 1 en assemblant trois composants « Multiplexeur » (chacun un 2 vers 1), comme dans la construction en arbre vue plus haut. Les entrées e0..e3, les bits de sélection s1, s0 et la sortie y sont déjà placés. Reliez les deux mux du premier étage (commandés par s0) puis le mux du second étage (commandé par s1). Le bouton bleu vérifie votre circuit sur toutes les combinaisons.

Exercice 30#

Pour chaque valeur du nombre de sélection s1 s0, indiquez quelle sortie du décodeur 2 vers 4 passe à 1.

s1

s0

sortie à 1

0

1

1

1

0

0

1

0

Exercice 31#

Un décodeur suit la même règle que le multiplexeur pour le nombre de bits : n entrées de sélection commandent \(2^n\) sorties.

  1. Combien de sorties possède un décodeur à 3 entrées de sélection ?

  2. Combien d'entrées de sélection faut-il pour un décodeur à 16 sorties ?