ESERCITAZIONE DI LABORATORIO – ENCODER, DECODER, MUX E DEMUX
Autori: _______________________________________ Data: ____________________
ATTENZIONE: Se hai scaricato questa esercitazione nelle lezioni scorse e non hai ancora
cominciato a compilarla, prima di iniziare scaricala di nuovo da Classiperlo e butta via questa
versione, perché nel frattempo potrebbe essere stata modificata. Se invece avevi già cominciato
l’esercitazione, ignora questo messaggio.
A) ENCODER
Un codificatore (o encoder) è un circuito digitale combinatorio dotato di 2n (due alla enne) segnali
di ingresso e di n segnali di uscita. L'attivazione di una delle linee di ingresso produce in uscita il
codice corrispondente. Facciamo un esempio considerando un encoder con 8 ingressi e 3 uscite (si
parla in questo caso di encoder 8 a 3):
Gli ingressi sono numerati da 0 a 7 essendo l'ingresso I0 quello a priorità inferiore e l'ingresso
I1 quello a priorità maggiore (vedremo fra poco cosa vuol dire priorità). Se per esempio viene
attivato l'ingresso I6 (ponendo su tale linea un valore H e lasciando a L tutti gli altri ingressi),
l'uscita produrrà il codice binario corrispondente al numero 6, cioè A2=H, A1=H, A0=L ovvero
110.
La tabella di verità seguente dovrebbe aiutare a chiarire il concetto:
Conf
D7
D6
D5
D4
D3
D2
D1
D0
Q2
Q1
Q0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
2
0
0
0
0
0
1
0
0
0
1
0
3
0
0
0
0
1
0
0
0
0
1
1
4
0
0
0
1
0
0
0
0
1
0
0
5
0
0
1
0
0
0
0
0
1
0
1
6
0
1
0
0
0
0
0
0
1
1
0
7
1
0
0
0
0
0
0
0
1
1
1
L'encoder può essere realizzato abbastanza facilmente con una serie di porte OR, ciascuna
delle quali realizza una delle uscite, come mostrato in figura:
Si osservi che l'ingressi D0 non è collegato: infatti quando viene attivato D0 tutte le uscite
devono rimanere a valore 0, cioè in pratica D0 non influisce sulle uscite (un problema di questo
semplice encoder è che non è in grado di distinguere fra l'attivazione di D0 e l'assenza di
ingressi attivati, poiché entrambi i casi producono il medesimo codice 000 in uscita).
A1) Realizzare con Logisim il circuito di un encoder con 4 ingressi e 2 uscite e copiare
qui sotto lo schema:
A2) Trasformare il circuito dell’encoder in un sottocircuito (se non ti ricordi come si fa,
dai un’occhiata all’esercitazione precedente). Copia qui sotto una schermata che provi il fatto che
hai realizzato il sottocircuito:
B) DECODER
Il decodificatore (o decoder) è un circuito digitale combinatorio che riceve in ingresso un
codice binario su n bit e attiva l'uscita corrispondente (fra 2n uscite). Per esempio la figura
seguente mostra la tabella di verità e la realizzazione circuitale di un semplice decoder 2 a 4 (2
ingressi e 4 uscite):
B1) Usando Logisim realizzate lo schema del decoder 2:4 mostrato nella figura precedente. Copiate
qui sotto lo schema realizzato:
B2) Trasformate il circuito del decoder in un sottocircuito avente due ingressi A0 e A1 e 4 uscite
D0, D1, D2, D3.
C) MULTIPLEXER (MUX)
Il multiplexer (spesso abbreviato in MUX) è un circuito digitale combinatorio in grado di
selezionare una fra 2n linee di ingresso (linee dati) e di collegare tale linea selezionata su
un'unica uscita. A tale scopo in generale un MUX possiede, oltre a 2n ingressi di dato, anche n
ingressi di selezione. La figura seguente mostra il semplice schema di un principio di un MUX
con 4 ingressi di dato e 2 ingressi di selezione:
La corrispondente tabella di verità è la seguente:
S1 S0 U
0
0 A
0
1 B
1
0 C
1
1 D
Si noti come è stata scritta la colonna dell'uscita U. Se per esempio sugli ingressi di selezione
ho 10, vuol dire che è stato selezionato il terzo ingresso dati e dunque U = C.
Un MUX può essere facilmente realizzato a partire da un decoder, come mostra lo schema
seguente:
C1) Realizzate con Logisim lo schema del MUX mostrato nella figura precedente
(usando il sottocircuito del decoder realizzato prima). Copiare qui sotto lo schema (completo di
ingressi e uscite):
C2) Trasformate anche il MUX in un sottocircuito con i propri ingressi e la sua uscita
(ebbene sì, in Logisim un sottocircuito può contenere al proprio interno un altro sottocircuito):
D) SINTESI DI TABELLE DI VERITA’ CON MUX
I MUX possono anche essere usati per realizzare funzioni logiche espresse mediante tabelle di
verità. Per una tabella di verità con 3 ingressi occorre per esempio un MUX da 8 a 3. Per
sintetizzare la tabella di verità basta collegare a 0 oppure a 1 gli ingressi corrispondenti alle
diverse righe della tabella.
Supponiamo ad esempio di voler realizzare la seguente tabella di verità:
ABU
0 0 0
0 1 0
1 0 1
1 1 0
A tale scopo possiamo usare un MUX nel seguente modo:
D1) Usando il sottocircuito per il MUX realizzato prima, realizzare con Logisim lo
schema nella figura qui sopra (GND – Ground o massa – indica un valore costante 0). Copiare
qui sotto il circuito completo:
E) DEMULTIPLEXER (DEMUX)
Il demultiplexer (spesso abbreviato in DEMUX o DMUX ) è un circuito digitale combinatorio
che realizza le funzioni opposte al multiplexer. In pratica esso presenta una sola linea di
ingresso dati e n linee di selezione: a seconda del codice impostato sulle linee di selezione,
l'ingresso dati viene inviato a 1 fra 2n linee di uscita. Lo schema di principio di un DMUX con 2
linee di selezione e 4 uscite è il seguente:
La corrispondente tabella di verità è la seguente:
S1 S0 A B C D
0
0 I0 0 0 0
0
1 0 I0 0 0
1
0 0 0 I0 0
1
1 0 0 0 I0
Un DEMUX come quello in esempio può essere realizzato usando un decoder:
E1) Usando il sottocircuito per il decoder realizzato prima, realizzare con Logisim lo
schema del DEMUX mostrato in figura precedente. Copiare qui sotto il circuito:
F) PLEXERS DI LOGISIM
In realtà non c’è bisogno di realizzare encoder, decoder, mux e demux, dal momento che Logisim
contiene già al proprio interno questi circuiti.
Date un’occhiata alla sezione Plexers:
Usando il mux e demux contenuti in Logisim vogliamo realizzare il seguente circuito:
SPIEGAZIONI:
Il BUS indica una linea di collegamento a un singolo bit (un solo filo). S1 e S0 sono due ingressi di
selezione binari, mediante i quali è possibile collegare uno degli ingressi con la corrispondente
uscita (es. A con A selezionando 00, B con B sezionando 01 e così via)
F1) Copiare qui sotto lo schema completo realizzato in Logisim: