Wat is Multiplexer?

Schakeling die op basis van een selectiesignaal één uit meerdere ingangen kiest en naar de uitgang doorgeeft. Ook selector genoemd. Een schakeling die één ingang juist naar één van meerdere uitgangen verdeelt, heet demultiplexer.

Japanse benaming: マルチプレクサ

“Multiplexer” komt voor in 6 oefenvragen uit 4 onderwerpen, bijv. Siliciumfotonica, Hardwarebeschrijvingstalen en verificatie, Logische schakelingen.

Vakgebied: Logische schakelingen

Hoe een multiplexer selecteert

Een 2:1-multiplexer (mux) geeft Y = S'·A + S·B: ingang A als het selectiesignaal S 0 is en ingang B als S 1 is. Met n selectiebits kiest een mux uit 2ⁿ ingangen, dus een 8:1-mux heeft drie selectielijnen nodig. In CMOS worden muxen opgebouwd uit AND-OR- of NAND-NAND-logica, uit transmissiepoorten, of voor brede ingangen als bomen van 2:1-muxen. Een mux is ook een universeel logisch element: door de data-ingangen aan de constanten van een waarheidstabel te verbinden, implementeert een 2ⁿ:1-mux elke booleaanse functie met n ingangen.

Waar multiplexers voorkomen

Datapaden van processors zitten vol muxen: ze kiezen ALU-operanden uit registers of immediates, sturen resultaten via bypasspaden door om pipeline stalls te vermijden, kiezen de volgende programmateller en schakelen gedeelde bussen. FPGA-logicablokken implementeren willekeurige functies met lookup tables (LUT's), kleine geheugens die via een muxboom worden uitgelezen. Bij design for testability voegen scanflipflops een mux toe aan de data-ingang, zodat de flipflops in testmodus tot schuifregisters kunnen worden gekoppeld. Op boards delen analoge multiplexers één ADC tussen meerdere sensoren, en I2C-multiplexers scheiden devices met identieke adressen.

Multiplexers in HDL en synthese

In Verilog of VHDL synthetiseert een voorwaardelijke toekenning, if-statement of case-statement meestal tot een multiplexer. Een lange if/else-if-keten impliceert prioriteit en geeft een reeks 2:1-muxen met een lange vertraging, terwijl een case-statement op elkaar uitsluitende waarden meestal één brede parallelle mux wordt, al optimaliseren moderne synthesetools vaak beide vormen. Een veelvoorkomende valkuil is in combinatorische logica een tak zonder toekenning te laten, waardoor een latch wordt afgeleid die de oude waarde vasthoudt in plaats van een zuivere mux.

Multiplexer versus demultiplexer en decoder

Een demultiplexer doet het omgekeerde van een multiplexer: hij stuurt één ingang naar een van 2ⁿ uitgangen, gekozen door de selectiebits. Een decoder zet een n-bitcode om in 2ⁿ one-hot-lijnen en is in feite een demultiplexer waarvan de data-ingang op 1 staat; decoders sturen de selectielogica van grote muxen en de wordlines van geheugens aan. In communicatie betekent multiplexen in bredere zin het delen van één kanaal door meerdere signalen op basis van tijd, frequentie of code.

Nu oefenen: vragen over Multiplexer

Welke functie van een multiplexer is juist?

  1. ADe ingangswaarde gedurende één klok onthouden
  2. BDe logica van het ingangssignaal inverteren
  3. COp basis van een selectiesignaal één van meerdere ingangen kiezen en naar de uitgang doorgeven
Antwoord en toelichting tonen

Antwoord: C. Op basis van een selectiesignaal één van meerdere ingangen kiezen en naar de uitgang doorgeven

Een multiplexer (selector) is een circuit dat afhankelijk van de waarde van een selectiesignaal één van meerdere ingangen kiest en naar de uitgang doorgeeft; bij een selectiesignaal van n bits kan uit 2ⁿ ingangen worden gekozen. In CPU's wordt het gebruikt om registerwaarden te selecteren en bussen om te schakelen, en ook logische blokken (LUT's) van FPGA's realiseren met geheugen en multiplexers willekeurige logica. Een circuit dat één ingang naar één van meerdere uitgangen verdeelt, is een demultiplexer.

Veelgestelde vragen

Hoeveel selectielijnen heeft een 8-naar-1-multiplexer nodig?

Drie, want 2³ = 8. In het algemeen heeft een mux met 2ⁿ data-ingangen n selectielijnen nodig.

Wat is het verschil tussen een multiplexer en een demultiplexer?

Een multiplexer kiest een van meerdere ingangen en geeft die door aan één uitgang. Een demultiplexer neemt één ingang en stuurt die naar een van meerdere uitgangen.

Hoe kan een multiplexer elke logische functie implementeren?

Verbind de selectielijnen met de ingangsvariabelen van de functie en leg elke data-ingang op 0 of 1 volgens de waarheidstabel. De mux geeft dan voor elke ingangscombinatie de juiste tabelwaarde, en zo werken FPGA-lookup tables.

“Multiplexer” in de toelichting

Vragen met “Multiplexer” (6)

  1. Welke functie van een multiplexer is juist?
  2. Welke beschrijving van golflengtemultiplexing (WDM) is juist?
  3. Welke vergelijking tussen de parallelle methode, waarbij een optische transceiver over vier vezels elk één golflengte verzendt, en de CWDM-methode, waarbij vier golflengten in één vezel worden gebundeld, is juist?
  4. Twee I2C-temperatuursensoren van hetzelfde type moeten op dezelfde I2C-lijnen worden aangesloten, maar beide hebben hetzelfde adres. Welke tegenmaatregel is juist?
  5. Welke uitspraak over de beschrijving van tri-state, dat Z (hoge impedantie) uitvoert, in HDL is juist?
  6. Welke uitspraak is juist bij vergelijking in een combinatorische schakeling van een lange keten if en else if met een case-beschrijving waarvan de voorwaarden elkaar niet overlappen?

Verwante termen

FPGA I2C Via Microcontroller (MCU) Hardwarebeschrijvingstaal (HDL) Combinatorische schakeling Clockskew Decoder Flipflop Glitch

Naar de woordenlijst