Multiplexer sind Datenselektoren: Es gibt k Bündel von je n Bit als Dateneingänge, von denen jeweils einer auf den n-Bit-breiten Ausgang durchgeschaltet wird. Die Auswahl erfolgt durch eine m-Bit-breite Steuergrösse s . Zumeist ist k eine Potenz von 2 und m = log2(k) . Man spricht dann von einem n-fach-k-zu-1-Multiplexer.
Das folgende Bild stellt eine Schema des Multiplexers dar:
drawmux(2)
Der Multiplexer ist eines der wichtigsten Bausteine auf der R-T-Ebene.
Der 2-zu-1-Multiplexer ist funktional vollständig.
Das Verhalten des n-fach-k-zu-1-Multiplexers ist in allen Programmiersprachen mit speziellen Sprachkonstrukten beschreibbar, ein 4-zu-1-Multiplexer mit den Eingängen a, b, c, d und der Steuergrösse s (s{0,1,2,3} in MATLAB z.B. durch
switch s case 0, y = a; case 1, y = b; case 2, y = c; case 3, y = d; end
Multiplexer lassen sich mit relativ geringem Aufwand realisieren.
Der 2-zu-1-Multiplexer für ein Bit wurde schon als Schaltfunktion besprochen:
y = ~s∩a s∩b
Für eine Breite von n Bit der Eingänge wird dieses n mal parallel realisiert. Den 4-zu-1-Multiplexer realisiert man entweder direkt in der Form
y = s1'∩s2'∩a s1∩s2'∩b s1'∩s2∩c s1∩s2∩d
oder unter rekursiver Verwendung von 2-zu-1-Multiplexern mux(s,a,b) :
y = mux( s2, mux(s1,a,b), mux(s1,c,d) )
Übung: Geben Sie den Realisierungsaufwand M1, M2, Z1, Z2 für beide Strukturen in Abhängigkeit der Bitbreite k und der Anzahl der Eingänge n = 2m an.
Die rekursive Methode ist besonders aufwandsarm, aber langsamer.