Il multiplexer

Rieccoci qui. Dopo una settimana di pausa, riprende il nostro corso sul funzionamento dei computers. Abbiamo visto, nella prima puntata, la logica booleana e la sua implementazione nelle porte logiche. Poi, abbiamo visto come, utilizzando delle semplici porte logiche, abbiamo potuto creare un circuito in grado di eseguire una banale somma con riporto. Oggi, facciamo un altro passo avanti, e cominciamo a vedere i circuiti in grado di implementare funzioni logiche. In particolare, oggi vedremo un circuito in grado, a seconda di un certo bit in entrata, di decidere quale, tra le diverse entrate a disposizione, lasciar passare verso l’uscita: il Multiplexer.

Iniziamo ad osservare il diagramma che abbiamo in figura 1. Si tratta di un Multiplexer molto semplice, con solo 2 entrate, X0 e X1, e la solita uscita, X. Noterete poi, la presenza di un terzo bit in ingresso, A, negato in ingresso, e collegato a due porte AND, una per X0, una per X1.
Cerchiamo di capire il funzionamento di questo circuito.

Immaginiamo di impostare A a `0′, X0 a `0′ e X1 a `0′. A, negato dalla porta NOT a cui è collegato, diventerà `1′, per poi sdoppiare il suo segnale e fluire da una parte all’AND con la porta X0, dall’altra ad un secondo NOT, che lo farà tornare `0′, e poi all’AND con la porta X1.

Fino a qui, se avete seguito con un po di attenzione le precedenti puntate, non dovrebbero esserci problemi. Riassumiamo la situazione a questo punto: il primo dei due AND, quello tra A e X0, avrà in ingresso un `1′ (“not(A)”) e uno `0′ (“X0”). All’uscita della porta troveremo quindi uno `0′ (“1 AND 0 = 0”). Agli ingressi del secondo AND, avremo invece uno `0′ (“not(not(A))”) e un’altro `0′ (“X1”). All’uscita di questa porta, avremo quindi ancora `0′ (“0 AND 0 = 0”). I due AND, a questo punto, sono collegati ad uno XOR, che ritornerà in uscita `1′ se e solo se uno dei due input è `1′, che non è il nostro caso. L’uscita del multipexer sarà quindi `0′.

Ora che abbiamo visto come funzionano i collegamenti interni al mux (multiplexer), stendiamo una tabella che prenda in considerazione le diverse combinazioni di segnale:

+---+----+----++---+
| A | X0 | X1 || X |
+---+----+----++---+
| 0 |  0 |  0 || 0 |
+---+----+----++---+
| 0 |  0 |  1 || 1 |
+---+----+----++---+
| 0 |  1 |  0 || 0 |
+---+----+----++---+
| 0 |  1 |  1 || 1 |
+---+----+----++---+
| 1 |  0 |  0 || 0 |
+---+----+----++---+
| 1 |  0 |  1 || 0 |
+---+----+----++---+
| 1 |  1 |  0 || 1 |
+---+----+----++---+
| 1 |  1 |  1 || 1 |
+---+----+----++---+

Osserviamo ora molto attentamente questa tabella. Possiamo notare come nei casi in cui A vale `0′, vengono riportati in uscita i valori di X1, mentre quando vale `1′, verranno riportati i valori di X0. Chiameremo a questo punto A “bit di controllo”. A seconda di come imposteremo A, potremo scegliere quale delle due entrate avere in uscita.
Come abbiamo detto, quello che abbiamo preso in considerazione, per semplicità, è un multiplexer molto semplice. Non vi sarà però difficile intuire che nel momento in cui avessimo bisogno di piu entrate (3,4,10,20…), basterà aggiungere entrate e porte AND, il tutto collegato allo stesso XOR in uscita. Unica sostanziale differenza, è che per poter indirizzare correttamente tutti i bit d’entrata, dovremo ampliare il numero di bit di controllo. A diventerà quindi un segnale a piu bit. Un esempio veloce. Ipotiziamo di dover costruire un multiplexer che indirizzi 4 bit: X0, X1, X2 e X3. A dovrà essere un segnale a due bit: `00′ per X0, `01′ per X1, `10′ per X2, `11′ per X3. COn questa logica possiamo continuare a ingrandire il nostro multiplexer, aggiungendo un bit di controllo ogni 2 entrate che aggiungiamo.

Gli scopi di un Multiplexer sono innumerevoli, e ve ne renderete conto nelle prossime puntate. Per il momento, portiamo la nostra attenzione su un circuito che fa esattamente il contrario di un multiplexer: Il Demultiplexer. Questo circuito (mostrato in figura 2), ha la capacità di ricevere un valore in entrata (IN), e attraverso un bit di controllo analogo a quello del Multiplexer, decidere su quale canale inviarlo in uscita.

Ormai dovreste essere sufficientemente bravi da studiare da soli il Demultiplexer, e capirne il funzionamento. Provateci da soli, e la prossima volta vedremo, molto in breve, di spiegarne il funzionamento a chi non lo avesse capito da solo.

Per il momento è tutto, happy hacking 🙂

4 pensieri su “Il multiplexer

  1. Gabriele

    Ciao, volevo chiederti gentilmente: se ho 5 entrate e in uscita devo avere uno sono nei seguenti casi:
    11111
    11110 b)
    11101
    11011
    10111
    01111
    Se ho capito bene devo fare un multiplexer, con due entrate, alla prima entrata metto una sequenza di 4 bit, per esempio prendendo il caso b) 1111 e alla seconda entrata metto 0 e in uscita dovrei avere 1 ?
    Grazie se mi risponderai.

    Rispondi

Rispondi

Effettua il login con uno di questi metodi per inviare il tuo commento:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google photo

Stai commentando usando il tuo account Google. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.