Il multiplexer è un selettore, dati n ingressi vi è una singola uscita, e un certo numero di ingressi, detto ingressi di controllo per selezionare uno dei input.
In questo caso, vediamo prima l'inscatolamento del multiplexer e vediamo di fare alcuni commenti al riguardo, successivamente vediamo al suo interno com'è fatto.
L'immagine sopra mostra la struttura di un multiplexer con 2 input e un unico output.
Un terzo ingresso (nell'immagine S) è l'ingresso di controllo che consente al multiplexer di selezionare uno dei due ingressi.
Quindi C, in base al valore di S, avrà il valore di A oppure il valore di B.
Il numero di ingressi di controllo è determinato dal numero di input tra cui si vuole scegliere. Nel caso sopra abbiamo solo 2 ingressi, e per scegliere tra di loro ne basta uno solo: S = 0, o S = 1, ci consente di scegliere tra i due input da mandare in uscita.
L'inscatolamento del multiplexer è diverso da quello del decoder, quello del decoder era un quadrato, mentre i bordi della scatola del multiplexer sono arrotondati.
Multiplexer | Decoder | |
---|---|---|
Ingressi | 2 | n |
Output | 1 | |
Funzione | Sceglie uno dei due ingressi da dirigere verso l'output grazie ad S | Codifica una uscita su |
Costruiamo un multiplexer con due linee di input, una di controllo e una di uscita.
Se S = 0, viene selezionata (si "accende", viene posta a 1) la porta AND collegata a
Osserviamo meglio il multiplexer:
L'ingresso di controllo assomiglia ad un circuito combinatorio che abbiamo già visto: il decoder.
Di fatti l'ingresso di controllo e le porte AND, codificano una uscita, che viene poi messa in AND con ogni singolo input, la porta OR, infine manda in uscita uno degli ingressi.
Con una notazione più compatta il multiplexer può essere implementato come segue:
ovvero il pallino dell'invertitore è direttamente incluso nella porta AND collegata ad A.
Avendo 8 ingressi (8 bit in ingresso) dovremmo selezionare uno di questi 8 ingressi, per farlo ci servono 3 bit, poiché
Nel caso superiore, il multiplexer ci consente di selezionare tra un certo numero di ingressi, tuttavia non sempre è quello che vogliamo.
Immaginiamo che in ogni ingresso
Per esempio, per un circuito che implementa effettivamente la somma di un'operazione come la somma, il circuito sopra sarebbe poco utile.
Riprendiamo il circuito precedente con due ingressi:
Immaginiamo che i valori di S siano i seguenti:
Verrà mandato in uscita la somma tra
come fa a fare la somma.
Adesso supponiamo di voler fare la somma anche tra
aggiungiamo un altro multiplexer che fa il medesimo lavoro di quello che era già presente, e facciamo si che l'ingresso di controllo S sia condiviso tra i due, in modo tale che la somma venga effettuata per tutti i bit, o non venga fatta per nessuno.
Con un ragionamento del tutto analogo, possiamo creare un circuito che fa la somma tra due numeri ognuno con un certo numero di bit (per esempio 64 bit):
Questi ragionamenti pongono le basi per costruire circuiti logici che fanno somme tra bit: gli addizionatori.