Multiplexer e funzioni logiche realizzate con decoder e multiplexer
In questa pagina 4
Il multiplexer (MUX) è il blocco combinatorio che seleziona un dato tra più ingressi: con il valore di un segnale di selezione sceglie una linea in ingresso e la manda sull'unica linea di uscita. È uno dei blocchi più usati nei datapath (per scegliere da quale registro prendere un dato, Registri a scorrimento e contatoriPiù sorgenti per un registro di destinazione si gestiscono con un MUX che sceglie la sorgente (e un encoder se i segnali di controllo sono 1-hot) più il Load. Lo shift register è una catena di FF con uscita di ognuno collegata all'ingresso del successivo: ingresso e uscita seriali, caricamento parallelo (Shift ha priorità su Load), versione bidirezionale con un MUX 4-to-1 per stadio (S1S0: 00 hold, 01 shift left, 10 shift right, 11 load). Usi: conversione serie/parallelo, interfacce, linee di ritardo, generatori pseudo-casuali. Contatori: ripple (asincrono, il clock di ogni FF è l'uscita del precedente, ritardo crescente) e sincrono (stesso clock, più veloce; EN e CO per la cascata).Registri a scorrimento e contatori →), nelle memorie e nei flip-flop con enable.
Multiplexer -to-1
Un MUX ha ingressi dati , ingressi di selezione e un'uscita . Il segnale di selezione può essere binario o 1-hot; qui è binario: se vale in binario, allora .
MUX 2-to-1 (): . Se allora , se allora .
MUX 4-to-1 ():
L'equazione generale è : i mintermini degli ingressi di selezione fanno da "porte" per i dati.
Realizzazioni e costo del 4-to-1
- Diretta: 2 inverter, 4 AND a 3 ingressi, 1 OR a 4 ingressi: costo ingressi.
- Con decoder: un decoder 2-to-4 genera i mintermini, quattro AND a 2 ingressi li combinano con i dati (circuiti di enable, Progettazione di una rete combinatoria - approccio gerarchico e porte NAND-NORUna rete combinatoria ha uscite che dipendono solo dagli ingressi presenti (nessuna memoria, nessuna retroazione); una sequenziale dipende anche dalla storia (stato, memoria, feedback). Progetto: specifiche, tabella di verità, funzione a costo minimo, diagramma logico, verifica. Con molti ingressi si usa l'approccio gerarchico (blocchi e sottoblocchi riusabili; regolarità). Blocchi base: funzioni di una variabile, vettori, enabling. Mappatura tecnologica: in CMOS NAND e NOR sono più compatte, quindi SOP $\to$ NAND-NAND e POS $\to$ NOR-NOR.Progettazione di una rete combinatoria - approccio gerarchico e porte NAND-NOR →) e una OR a 4 ingressi somma: .
Il secondo è più caro, ma ha struttura gerarchica e si estende: un MUX 64-to-1 costruito così (decoder 6-to-64 gerarchico da 182, 64 AND a 2 ingressi, una OR a 64 ingressi) costa ; costruito in modo "piatto" (6 inverter, 64 AND a 7 ingressi, una OR a 64) costa (Decoder, encoder e priority encoderUn decoder $n$-to-$m$ ($m\le2^n$) converte un ingresso binario a $n$ bit in un'uscita 1-hot (un solo 1, nella posizione indicata): le sue uscite sono i mintermini degli ingressi, realizzati con $m$ AND; per decoder grandi si usa l'approccio gerarchico (costo in ingressi: 3-to-8 = 27, 6-to-64 = 182) e un enable. Ogni funzione = decoder + OR dei suoi mintermini. L'encoder fa l'operazione inversa (1-hot $\to$ binario) ma sbaglia con più ingressi a 1 o tutti a 0: il priority encoder risolve con una priorità e un'uscita V (valid).Decoder, encoder e priority encoder →).
MUX a vettori
Si possono selezionare interi vettori: un quad 4-to-1 multiplexer ha quattro ingressi da 4 bit ciascuno, selezione a 2 bit e un'uscita a 4 bit. È un decoder 2-to-4 (costo 10) che comanda quattro MUX 4-to-1 a 1 bit realizzati con AND/OR (ognuno senza il decoder condiviso): ingressi. Serve per scegliere tra 4 registri a 4 bit.
Funzioni logiche con un decoder
Come visto nella nota sui decoder, un decoder + una OR realizzano una SOP: i mintermini sono già pronti. Per il sommatore completo (Sommatori binari - half adder, full adder e ripple carryHalf adder (2 ingressi): $S=X\oplus Y$, $C=XY$. Full adder (3 ingressi, con riporto in ingresso $Z$): $S=X\oplus Y\oplus Z$, $C=XY+XZ+YZ=G+PZ$ con $P=X\oplus Y$, $G=XY$; si realizza con due half adder e una OR. Il ripple carry adder a $n$ bit concatena $n$ full adder: il riporto "ondeggia" dal LSB al MSB, quindi il ritardo cresce linearmente con $n$. È un circuito iterativo (gerarchico e regolare). Il moltiplicatore a 2 bit usa 4 AND e 2 half adder.Sommatori binari - half adder, full adder e ripple carry →) e con un 3-to-8 e due OR a 4 ingressi. Vale quando la funzione ha pochi mintermini; se ne ha più della metà conviene una NOR sui mintermini del complemento.
Funzioni logiche con un multiplexer
MUX -to-1 per variabili
Una funzione di variabili si realizza con un MUX -to-1: le variabili sono collegate agli ingressi di selezione (rispettando l'ordine dei bit: la variabile più significativa va a ), e agli ingressi dati si applica il valore della tabella di verità, riga per riga: , una costante 0 o 1 (value fixing). Perché funziona: per la riga il MUX seleziona , che è proprio il valore che la funzione deve avere.
MUX -to-1: l'ultima variabile come dato
Si può usare un MUX più piccolo, con un ingresso di selezione in meno: si collegano alla selezione solo variabili e agli ingressi dati si applicano le costanti , oppure la variabile rimasta o il suo complemento . Per ogni valore della selezione, le due righe della tabella (con e ) danno una coppia di valori:
| ingresso dati | ||
|---|---|---|
| 0 | 0 | |
| 1 | 1 | |
| 0 | 1 | |
| 1 | 0 |
Esempio. con un MUX 8-to-1 e selezione . Per ogni valore di si guarda la coppia :
| minterm | |||
|---|---|---|---|
| 000 | |||
| 001 | |||
| 010 | |||
| 011 | |||
| 100 | |||
| 101 | |||
| 110 | |||
| 111 |
Quindi , , , (attenzione all'ordine: va a , a ).
Esempio: sommatore completo con MUX 4-to-1. Con selezione e dato : vale per ; vale . Bastano due MUX 4-to-1 (un "dual MUX") e un inverter, invece di due MUX 8-to-1.
Con le condizioni di don't care la scelta degli ingressi può diventare più libera: un ingresso dati con coppia può essere scelto come meglio conviene (Mappe di Karnaugh - POS, condizioni di don't care e paritàPer la POS minima si raggruppano gli 0 della mappa, si ottiene la SOP minima di $\overline F$ e si scrive $F$ come prodotto di somme (variabile diretta se vale 0 nel gruppo, negata se vale 1). Le condizioni di don't care (X) sono combinazioni di ingresso che non si presentano o la cui uscita è indifferente: si usano come 1 o come 0 a seconda di quel che allarga i gruppi (mai raggruppamenti fatti solo di X). Le funzioni XOR a più variabili (disparità) e XNOR (parità) hanno mappa a scacchiera: non si semplificano con i gruppi.Mappe di Karnaugh - POS, condizioni di don't care e parità →).
Errori comuni
- Collegare le variabili agli ingressi di selezione nell'ordine sbagliato (la più significativa va alla selezione più significativa).
- Dimenticare di usare quando la coppia è .
- Credere che il MUX serva solo a "scegliere": è anche un generatore di funzioni universale.
- Confondere ingressi dati e di selezione nel conteggio: un MUX 8-to-1 ha 8 dati + 3 selezioni.
Versione ripasso
- MUX -to-1: . 2-to-1: . 4-to-1 costo (diretto) o (con decoder); 64-to-1: gerarchico, piatto. MUX a vettori (quad 4-to-1): costo .
- Funzione con decoder: decoder + OR dei mintermini (NOR sul complemento se più di metà).
- MUX -to-1 per variabili: variabili sulla selezione, (value fixing).
- MUX -to-1: variabili sulla selezione; dato secondo la coppia .
- Esempio: , selezione : . Full adder: ; (selezione ) (Decoder, encoder e priority encoderUn decoder $n$-to-$m$ ($m\le2^n$) converte un ingresso binario a $n$ bit in un'uscita 1-hot (un solo 1, nella posizione indicata): le sue uscite sono i mintermini degli ingressi, realizzati con $m$ AND; per decoder grandi si usa l'approccio gerarchico (costo in ingressi: 3-to-8 = 27, 6-to-64 = 182) e un enable. Ogni funzione = decoder + OR dei suoi mintermini. L'encoder fa l'operazione inversa (1-hot $\to$ binario) ma sbaglia con più ingressi a 1 o tutti a 0: il priority encoder risolve con una priorità e un'uscita V (valid).Decoder, encoder e priority encoder →).
- Errori: ordine della selezione; dimenticato.
Esercizi su questo argomento
- Esercizio 13 · funzione con don't care, forme minime SOP e multiplexer (tema d'esame settembre 2025)
- Esercizio 20 · quiz su algebra di Boole, forme canoniche, mappe di Karnaugh e blocchi combinatori (temi d'esame 2022-2026)
- Esercizio 23 · quiz su VHDL, assegnazioni, process e flip-flop (temi d'esame 2022-2026)