Circuiti di commutazione, codifica e decodifica

Circuiti di commutazione, codifica e decodifica
Vediamo ora i più comuni circuiti per la codifica, decodifica e commutazione di
informazioni rappresentate sotto forma binaria. Tali circuiti costituiscono gli elementi
costruttivi per la definizione di sistemi più complessi. Faremo riferimento alle tavole
di verità per la definizione di questi circuiti, ma poi li tratteremo come unità
funzionali più complesse, il cui funzionamento si intende noto senza ulteriori
specificazioni a livello di tavole di verità.
Multiplexer
L'esempio di funzione a tre ingressi e una uscita visto in precedenza é un multiplexer
ad 1 bit con due ingressi dati (i0 e i1) ed un segnale di controllo (ingresso i2). Come si
può facilmente notare dalla mappa che ne descrive il funzionamento, i2=0 implica u=i0,
mentre i2=1 implica u=i1. Il valore dell'ingresso di controllo i2 consente quindi di
riportare in uscita al multiplexer uno dei due valori in ingresso (i0 oppure i1).
L'idea di circuito multiplexer può essere estesa in diversi modi. Per esempio si può
mantenere un solo ingresso di controllo, ma commutare uno tra due insiemi di variabili
di ingresso su un solo insieme di variabili di uscita (ogni insieme di variabili di ingresso
deve avere la stessa cardinalità dell'insieme di variabili di uscita. In figura é
rappresentato lo schema realizzativo di un multiplexer operante su due insiemi di
ingresso, ciascuno composto da tre variabili booleane.
La simbologia usata per la rappresentazione di un multiplexer a prescindere dalla sua
realizzazione in termini di porte logiche elementari é la seguente:
Un secondo tipo di estensione del circuito multiplexer viene ottenuto utilizzando una
codifica binaria su più bit per la scelta tra più di due ingressi da connettere sull'unica
uscita. In figura é illustrato il caso di un multiplexer a 4 ingressi (ciascuno da un bit)
comandato da due segnali di controllo in ingresso:
La combinazione degli ingressi c1 e c0 determina la scelta dell'ingresso (per esempio
c1=1 e c0=1 "sceglie" i3) da connettere all'uscita u. Notare che in tal caso il numero di
ingressi di controllo deve essere pari al logaritmo in base 2 del numero di ingressi che
possono essere scelti per la connessione con l'uscita.
Ovviamente i due tipi di estensione del multiplexer (commutazione di più bit e scelta
tra più di due ingressi) possono essere combinati in modo da formare, per esempio un
multiplexer con 8 insiemi di ingresso, ciascuno da 32 bit, comandato attraverso la
codifica su 3 ingressi di controllo.
Demultiplexer
Un circuito demultiplexer viene definito come l'inverso di un circuito multiplexer,
ossia come un elemento funzionale capace di commutare un solo ingresso su due o più
uscite. Per convenzione, le uscite "non attivate" assumono il valore costante 0,
indipendentemente dal valore assunto dall'ingresso "dati". Notare che questa
convenzione pone un vincolo sui codici che possono essere utilizzati per trattare le
informazioni in uscita da un demultiplexer: il valore 0 deve poter essere interpretato
come un valore non significativo, una condizione di riposo, ecc., in quanto questo valore
viene assegnato a tutte le uscite non connesse con l'ingresso.
In figura é riportato un esempio di realizzazione di un demultiplexer a 2 uscite
(comandato da un segnale di controllo c) in grado di commutare informazioni
codificate su due bit.
La rappresentazione "astratta" di un tale dispositivo (prescindendo dalla sua
realizzazione in termini di funzioni And e Not) é la seguente:
Circuiti demultiplexer possono essere realizzati con numero arbitrario di bit di
ingresso e uscita, e con numero di ingressi di controllo pari al logaritmo in base 2 del
numero di gruppi di uscite. La codifica binaria dei segnali di controllo individua
univocamente l'insieme delle uscite attive che possono riprodurre inalterata la
configurazione sull'insieme degli ingressi dati. Le altre uscite (quelle non
corrispondenti al codice binario selezionato mediante gli ingressi di controllo)
assumono il valore costante 0.
Decoder e indirizzamento
Circuiti di tipo multiplexer e demultiplexer hanno in comune tra loro una parte per la
decodifica delle configurazioni booleane di controllo. Tale parte viene normalmente
chiamata decoder. Un circuito di tipo decoder può essere pensato come un caso
particolare di circuito demultiplexer, nel quale il segnale da commutare su una sola
delle uscite é la costante 1. In figura é riportato a titolo di esempio lo schema di
realizzazione di un decoder binario da 3 bit.
Circuiti di tipo decoder vengono normalmente utilizzati come componenti per la
realizzazione di meccanismi di indirizzamento binario. Le uscite possono essere usate
per abilitare il funzionamento di moduli simili l'uno all'altro, individuati tramite un
indirizzo binario.
Notare che le uscite di un decoder possono essere messe in corrispondenza con le
righe di una tavola di verità per un circuito combinatorio con numero di ingressi pari al
numero di bit di controllo del decoder. Per esempio, le 8 uscite del decoder riportato
in figura possono essere messe in corrispondenza con le 8 righe della tavola di verità
di un qualsiasi circuito combinatorio con 3 variabili di ingresso. Unendo con una
funzione Or tutte e sole le uscite del decoder corrispondenti a quelle righe della
tavola di verità contenenti il valore 1, é quindi possibile realizzare in modo sistematico
qualsiasi tavola di verità.