Bc. Vojtěch Hordějčuk

„Určitě se vám už někdy stalo, že jste napsali program a on vám nefungoval.” - F. Zavoral

Domů » Wiki » Kombinační obvody » Multiplexor

Multiplexor

Digitální multiplexor je kombinační logický obvod, který funguje podobně jako obyčejný vícepolohový přepínač. Do přepínače vede několik vodičů a poloha páčky určuje, který z nich bude spojen s výstupem. Nyní tuto analogii přenesme do digitálního světa. Obecně máme několik digitálních vstupů X, jeden výstup Y a tzv. adresový vstup A, který funguje jako ta „páčka“ pro výběr požadovaného vstupu.

multiplexor jako přepínač

V digitální technice se však jeden vstup nebo výstup může obecně skládat z více bitů (jednotlivých vodičů), což může ze začátku trochu mást. Proto budu pro upřesnění používat termíny:

  • vstupní bit
  • výstupní bit
  • adresový bit

Jeden vstup se pak může skládat z jednoho nebo více vstupních bitů (a podobně to platí i pro adresový vstup a výstup). Dále by mělo platit, že počet vstupních bitů jednoho vstupu odpovídá počtu výstupních bitů. Kdyby byl například počet vstupních bitů 10 a počet výstupních bitů 16, kde by pak multiplexor vzal zbývajících 6 bitů?

Šířka adresového vstupu

Hodnotou adresového vstupu určujeme, který vstup bude přiveden na výstup. Abychom multiplexor využili naplno, je potřeba mít dostatečný počet adresových bitů – jedině tak budeme moci přepínat mezi všemi možnými vstupy. Označíme-li počet všech vstupních bitů jako X, počet výstupních bitů jako Y a počet adresových bitů jako A, měl by u multiplexoru platit následující vztah:

\begin{align*} k &= \frac{X}{Y} \\ A &= \lceil \log_2 k \rceil \end{align}

Značení a názvosloví multiplexorů

Multiplexor se ve schématech značí jako rovnoběžník, který má na delší straně vstupy a na kratší straně výstup. Z jednom boku vychází adresový vstup. Ke každému vstupu ještě můžeme doplnit hodnotu adresového vstupu, pro kterou je daný vstup vyveden na výstup. Tuto hodnotu obvykle zapisujeme v binární, desítkové nebo hexadecimální soustavě.

Multiplexory se mohou dále přesněji označovat podle poměru vstupních a výstupních bitů. Hodnota tohoto poměru by měla být rovna počtu vstupů. Uvedeme si nějaké příklady, ať je to jasnější:

Vstupy Šířka =Vstup =Výstup =Adresa Označení
2 1 bit 2 bity 1 bit 1 bit 2:1 2-to-1
32 1 bit 32 bitů 1 bit 5 bitů 32:1 32-to-1
4 2 bity 8 bitů 2 bity 2 bity 8:2 (=4:1) 8-to-2 (=4-to-1)
8 4 bity 32 bitů 4 bity 3 bity 32:4 (=8:1) 32-to-4 (=8-to-1)

různé typy multiplexorů

Schéma multiplexoru 2:1 (1-bit)

Nejjednodušší možný multiplexor, což je 1-bitový multiplexor 2:1, se skládá z pouhých čtyř hradel – dvou hradel AND, jednoho hradla OR a z jednoho invertoru. Hradla AND mají za úkol spínat vstupní bity podle hodnoty adresového vstupu. Invertor se stará o to, aby se oba vstupy navzájem vylučovaly (na výstup musí být připojen vždy pouze jeden ze vstupů). A konečně hradlo OR spojuje obě hradla AND do jednoho výstupu.

schéma multiplexoru 2:1 (1-bit)

Vstupy a výstupy

  • vstupy X0, X1 – vstupy multiplexoru
  • vstup A – adresový vstup
  • výstup Y – výstup multiplexoru

Pravdivostní tabulka

Pravdivostní tabulka je velmi prostá. Pokud je na adresovém vstupu A logická 0, bude výstup roven prvnímu vstupu X0. Jestliže pak na adresový vstup přivedeme logickou 1, bude hodnota na výstupu rovna druhému vstupu X1.

A X0 X1 Y
0 0 0 0
0 0 1 0
0 1 0 1
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 0
1 1 1 1

Schéma multiplexoru 2:1 (2-bit)

O něco složitější je zapojení multiplexoru 2:1 se dvěma bity na každý vstup. Přibydou dvě hradla AND a jedno hradlo OR. Musíme si uvědomit, že každý vstup chceme ovládat pouze jednou hodnotou adresového vstupu, takže všechna spínací hradla AND patřící k jednomu vstupu napojíme na odpovídající hodnotu adresového vstupu. Odpovídající bity jednotlivých vstupů za hradly AND spojíme hradly OR a jejich výstupy vyvedeme ven.

schéma multiplexoru 2:1 (2-bit)

Vstupy a výstupy

  • vstupy X00, X01, X10, X11 – vstupy multiplexoru
  • vstup A1 – adresový vstup
  • výstup Y – výstup multiplexoru

Pravdivostní tabulka

Klasická pravdivostní tabulka pro toto zapojení by byla velmi dlouhá (měla by 32 řádků, protože máme 5 vstupů). Proto ji trochu zjednodušíme a tím pádem zpřehledníme.

A Y1 Y2
0 X01 X02
1 X11 X12

Schéma multiplexoru 4:1 (1-bit)

Horní část schématu by měla být již jasná, jedná se pouze o spínání vstupů hradly AND a jejich svedení do jednoho výstupu jedním hradlem OR. V dolní části schématu však vidíme obvod, který převádí 2-bitový adresový vstup na 4-bitový výstup tak, aby v každou chvíli byl v logické 1 pouze jeden z nich – a ostatní byly rovny logické 0. Tento obvod se také nazývá dekodér na kód 1 z N. Princip jeho funkce se myslím dá pochopit ze schématu.

schéma multiplexoru 4:1 (1-bit)

Vstupy a výstupy

  • vstupy X00, X01, X10, X11 – vstupy multiplexoru
  • vstupy A1, A2 – adresové vstupy
  • výstup Y – výstup multiplexoru

Pravdivostní tabulka

Pravdivostní tabulku opět zjednodušíme, jako jsme to udělali předtím. Doufám, že je vám funkce multiplexoru už jasná – je to v podstatě jen ten zmiňovaný vícepolohový přepínač, který na výstup vyvede vstup zadaný hodnotou adresové sběrnice.

A1 A2 Y
0 0 X00
0 1 X01
1 0 X10
1 1 X11

Řetězení multiplexorů

Složitější multiplexory můžeme sestavit z několika jednoduchých. Například multiplexor 8:1 lze sestavit ze dvou multiplexorů 4:1 a z jednoho multiplexoru 2:1. Výstupy z obou multiplexorů 4:1 jsou zavedeny na vstup multiplexoru 2:1 a adresové vstupy jsou celkem tři. To odpovídá multiplexeru 8:1 (protože třetí mocnina dvojky je právě osm). Pozor však musíme dát na pořadí bitů adresové sběrnice.