Qu'est-ce que Multiplexeur ?

Circuit qui sélectionne une entrée parmi plusieurs selon un signal de sélection et la transmet en sortie. Aussi appelé sélecteur. Le circuit inverse, qui aiguille une entrée vers une sortie parmi plusieurs, est le démultiplexeur.

Nom japonais: マルチプレクサ

« Multiplexeur » apparaît dans 7 questions d'entraînement réparties sur 5 thèmes, dont Photonique sur silicium, HDL et vérification, Circuits logiques.

Domaine: Circuits logiques

Comment un multiplexeur sélectionne

Un multiplexeur (mux) 2 vers 1 produit Y = S'·A + S·B : l'entrée A lorsque le signal de sélection S vaut 0, et l'entrée B lorsque S vaut 1. Avec n bits de sélection, un mux choisit parmi 2ⁿ entrées : un mux 8 vers 1 nécessite donc trois lignes de sélection. En CMOS, les mux sont réalisés en logique ET-OU ou NAND-NAND, à partir de portes de transmission, ou sous forme d'arbres de mux 2 vers 1 pour les grandes largeurs. Le mux est aussi un élément logique universel : en reliant ses entrées de données aux constantes d'une table de vérité, un mux 2ⁿ vers 1 réalise n'importe quelle fonction booléenne à n entrées.

Où l'on trouve des multiplexeurs

Les chemins de données des processeurs regorgent de mux : ils sélectionnent les opérandes de l'ALU parmi les registres ou les valeurs immédiates, transmettent les résultats par des chemins de contournement (bypass) pour éviter les blocages du pipeline, choisissent le compteur ordinal suivant et commutent les bus partagés. Les blocs logiques des FPGA réalisent des fonctions arbitraires grâce à des tables de correspondance (LUT), de petites mémoires lues à travers un arbre de mux. En conception en vue du test, les bascules de scan ajoutent un mux à l'entrée de données pour pouvoir chaîner les bascules en registres à décalage en mode test. Sur les cartes, des multiplexeurs analogiques partagent un seul ADC entre plusieurs capteurs, et des multiplexeurs I2C séparent des composants ayant la même adresse.

Multiplexeurs en HDL et en synthèse

En Verilog ou en VHDL, une affectation conditionnelle, une instruction if ou une instruction case se synthétise généralement en multiplexeur. Une longue chaîne if/else-if implique une priorité et donne une série de mux 2 vers 1 au long retard, tandis qu'une instruction case sur des valeurs mutuellement exclusives tend à devenir un seul mux parallèle large, même si les outils de synthèse modernes optimisent souvent les deux formes. Un piège courant consiste à laisser une branche sans affectation en logique combinatoire : cela infère un verrou (latch) pour conserver l'ancienne valeur au lieu d'un simple mux.

Multiplexeur, démultiplexeur et décodeur

Un démultiplexeur fait l'inverse d'un multiplexeur : il aiguille une entrée vers l'une de 2ⁿ sorties choisie par les bits de sélection. Un décodeur convertit un code sur n bits en 2ⁿ lignes one-hot ; c'est en fait un démultiplexeur dont l'entrée de données est maintenue à 1. Les décodeurs pilotent la logique de sélection des grands mux et les lignes de mot des mémoires. En télécommunications, le multiplexage désigne plus généralement le partage d'un canal entre plusieurs signaux, dans le temps, en fréquence ou par code.

S'entraîner : questions sur Multiplexeur

Quelle est la fonction correcte d'un multiplexeur ?

  1. AMémoriser la valeur d'entrée pendant un cycle d'horloge
  2. BInverser la valeur logique du signal d'entrée
  3. CSélectionner une entrée parmi plusieurs selon un signal de sélection et la transmettre en sortie
Afficher la réponse et l'explication

Réponse : C. Sélectionner une entrée parmi plusieurs selon un signal de sélection et la transmettre en sortie

Le multiplexeur (sélecteur) transmet en sortie une entrée choisie parmi plusieurs selon la valeur du signal de sélection ; avec n bits de sélection, on choisit parmi 2ⁿ entrées. Dans les CPU, il sert à choisir la valeur d'un registre ou à commuter des bus, et les blocs logiques des FPGA (LUT) réalisent toute fonction logique à l'aide d'une mémoire et d'un multiplexeur. Le circuit qui aiguille une entrée vers l'une de plusieurs sorties est le démultiplexeur.

Questions fréquentes

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

Trois, car 2³ = 8. En général, un mux à 2ⁿ entrées de données nécessite n lignes de sélection.

Quelle est la différence entre un multiplexeur et un démultiplexeur ?

Un multiplexeur sélectionne une entrée parmi plusieurs et la transmet à une sortie unique. Un démultiplexeur prend une entrée unique et l'aiguille vers une sortie parmi plusieurs.

Comment un multiplexeur peut-il réaliser n'importe quelle fonction logique ?

On relie les lignes de sélection aux variables d'entrée de la fonction et on fixe chaque entrée de données à 0 ou à 1 selon la table de vérité. Le mux fournit alors la bonne valeur de la table pour chaque combinaison d'entrées : c'est le principe des tables de correspondance des FPGA.

« Multiplexeur » dans les explications

Questions mentionnant « Multiplexeur » (7)

  1. Quelle est la fonction correcte d'un multiplexeur ?
  2. Quelle est la description correcte du multiplexage en longueur d'onde (WDM) ?
  3. Dans un émetteur-récepteur optique, quelle comparaison est correcte entre la méthode parallèle, qui envoie une longueur d'onde par fibre sur 4 fibres, et la méthode CWDM, qui regroupe 4 longueurs d'onde dans une seule fibre ?
  4. Quelle description de la conception par scan, l'une des techniques de conception en vue du test (DFT), est correcte ?
  5. On veut raccorder deux capteurs de température I2C de même référence sur le même bus I2C, mais ils ont la même adresse. Quel remède est correct ?
  6. Quel énoncé est généralement correct au sujet des descriptions trois états produisant Z (haute impédance) en HDL ?
  7. Pour un circuit combinatoire, quelle comparaison est correcte entre une longue chaîne de if/else if et une instruction case à conditions mutuellement exclusives ?

Termes associés

Circuit combinatoire FPGA WDM (multiplexage en longueur d'onde) Photonique sur silicium DFT (conception en vue du test) Bascule (flip-flop) Circuit séquentiel ATPG (génération automatique de vecteurs de test) I2C Microcontrôleur

Retour au glossaire