Sei sulla pagina 1di 5

Note ulteriori sui circuiti combinatori di decodifica ed instradamento1

I circuiti combinatori sono quella classe di circuiti digitali i cui segnali di uscita sono unicamente
dipendenti dai segnali di ingresso; non presentano una “memoria storica” dello stato precedente.
Nell’astrazione a livello sistema, un circuito combinatorio si può vedere come un sistema ingresso-
uscita. Di contro, nei circuiti sequenziali l’elemento di memoria è importante, definisce lo stato in cui
il circuito si trova e i segnali di uscita nei circuiti sequenziali sono dipendenti sia dai segnali di
ingresso che dallo stato del sistema. Pertanto, i circuiti sequenziali si possono immaginare come
sistemi ingresso-stato-uscita. Questa dispensa ha lo scopo di fornire ulteriori dettagli nei riguardi dei
circuiti combinatori.
Una porta logica (NOT, AND, NAND, NOR, XOR etc.) è un circuito combinatorio. Oltre alle porte
logiche, ci sono ulteriori circuiti combinatori che vale la pena studiare e per i quali è opportuno
comprendere il modo in cui questi vengono realizzati a livello ‘dispositivo’. Ai fini di questo corso,
se ne vedranno 3: DECODER, DEMULTIPLEXER e MULTIPLEXER.

DECODER
È un circuito combinatorio di decodifica che presenta N segnali di ingresso e 2N segnali di uscita. Si
può schematizzare così:

Gli N ingressi definiscono quale delle 2N uscite dev’essere portata allo stato logico alto (V=VOH),
mentre tutte le rimanenti sono allo stato logico basso (V=VOL). Solo una delle uscite dev’essere quindi
attivata. Proviamo a costruire un decoder con N=2; avremo quindi 2 ingressi e 22=4 uscite:

La tabella della verità del circuito avrà una forma di questo tipo:

1 Si ringraziano (in ordine alfabetico) A. Rabboni e L. Staiano per i loro appunti, molto utili per me nel costruire questo documento.
Guardando per quali combinazioni degli ingressi X0 ed X1 le singole uscite sono alte, risulta che:

Il passaggio dalla AND di letterali alla NOR è ottenuto applicando il teorema di De Morgan (col
quale siete sicuramente esperti). Le uscite, quindi, sono tutte delle NOR. Pensiamo di adottare una
logica a rapporto per realizzare le singole NOR, con un dispositivo di pull-up del tipo NMOS a
svuotamento con Gate e Source cortocircuitati. Il circuito finale si può disegnare nel seguente modo:

Si noti che le linee verticali in cui ci sono le Y non cortocircuitano quelle orizzontali su cui viaggiano
le X (e la loro versione negata). La connessione avviene tramite degli NMOS che eseguono il
pull-down. Perché non farlo con logiche CMOS? È chiaro che si può fare in CMOS, ma sarebbe
necessario occuparsi anche di organizzare la rete di pull-up, la quale dovrebbe essere collegata agli
ingressi. Finché N=2 la soluzione sarebbe anche fattibile2, ma lo scenario cambia notevolmente
quando N è molto grande.
La forma del disegno molto “squadrata” è utile per immaginare come si potrebbe poi realmente
realizzare sul silicio (cosa che è interamente fuori da questo insegnamento).

DEMULTIPLEXER
È un circuito combinatorio di instradamento che presenta 1 segnale di ingresso, N segnali di controllo
e 2N segnali di uscita. Gli N bit di controllo (S) hanno il fine di definire quale delle uscite (Y)
dev’essere uguale al segnale di ingresso (X), mentre tutte le altre devono essere poste allo stato 0
(V=VOL).

2Per i più intraprendenti: provate a fare il disegno della rete di pull-up immaginando una struttura quadrata. Considerate che i dispositivi
nel pull-up devono essere messi in serie e non in parallelo.
Si può schematizzare così:

Proviamo a vedere che succede nel caso N=2. Questo è lo schema specifico:

Per questo circuito vale la seguente tabella della verità:

Si può quindi vedere che le funzioni logiche Y3, Y2, Y1 ed Y0 hanno la seguente forma:

Ancora una volta è stato applicato De Morgan. Ci sono sempre delle NOR, questa volta a 3 ingressi,
uno dei quali è sempre il segnale X negato. Sempre ponendoci nella logica a rapporto NMOS ED, la
forma del circuito finale sarà molto simile a quella del DECODER, ma con una riga in più:
Valgono quindi considerazioni analoghe a quanto detto prima per il DECODER.

MULTIPLEXER
È un circuito combinatorio di instradamento che presenta 2N segnali di ingresso, N segnali di controllo
e 1 segnale di uscita. Gli N bit di controllo (S) hanno il fine di definire quale degli ingressi (X)
dev’essere instradato sull’uscita (Y). Si può schematizzare in questo modo:

Ancora una volta, particolarizziamolo al caso N=2.

La tabella della verità sarà in apparenza molto semplice


Si potrebbe procedere in via “classica” con le porte logiche3, ma una delle strategie più utilizzate
consiste nel far uso di pass transistor (transistor a porta di trasmissione). Utilizziamo i pass transistor
CMOS in una configurazione come segue:

Vi invito a far molto caso al posizionamento dei segnali S0 ed S1 (coi loro negati) e soprattutto ai
dispositivi NMOS e PMOS. Fate inoltre caso al fatto che per ogni combinazione di S0 ed S1 esiste
solo uno degli ingressi che è collegato all’uscita Y, mentre tutti gli altri trovano almeno un pass
transistor “aperto”. Apparentemente, questo circuito fa utilizzo di 16 transistor; se credete sia giusto
è perché vi siete dimenticati di considerare due invertitori “nascosti” necessari ad ottenere il negato
dei segnali S0 ed S1; quindi (a prescindere dalla logica a rapporto o CMOS), ci sono altri 4 dispositivi
da considerare nel conteggio, per un totale di 20 dispositivi.

3Per i più intraprendenti 2.0: provate a sviluppare il circuito pensando a delle porte logiche. Contate il numero di dispositivi che viene
fuori. Sorprese?

Potrebbero piacerti anche