Reti Logiche Combinatorie
Modulo 4
Università di Cagliari
Dipartimento di Ingegneria Elettrica ed Elettronica
Laboratorio di Microelettronica e Bioingegneria (EOLAB)
Logica combinatoria


Un blocco di logica puramente combinatoria è un blocco
con N variabili di ingresso e M variabili di uscita che
sono funzione (booleana) degli ingressi presenti in un
certo istante.
Ad ogni istante le uscite dipendono solo dagli ingressi in
quell’istante e NON dalla storia passata del circuito
x1
x2
z1
z2
xN
A.A. 2013/2014
zM
Elettronica
M. Barbaro
Logica sequenziale


Un blocco di logica sequenziale è un blocco logico le cui uscite
dipendono non solo dagli ingressi attuali ma anche da tutta la storia
passata degli ingressi (la sequenza di ingressi)
Un modello che descrive il loro comportamento è rappresentato in
Figura, dove [zM,…,z0] rappresentano le uscite e [yK,..,y0] le
cosiddette variabili di stato (vedremo meglio in seguito parlando di
reti logiche sequenziali)
[xN,…,x0]
[zM,…,z0]
[yK,…,y0]
A.A. 2013/2014
Elettronica
M. Barbaro
Combinatorio e sequenziale

Il migliore esempio per distinguere un
comportamento combinatorio da uno
sequenziale è quello del telecomando:


Quando si preme un tasto corrispondente ad un
canale (1, 2, 3, etc.) il telecomando ha un
comportamento combinatorio, perché sintonizza il
televisore sul canale desiderato, a prescindere da
quello che si sta guardando il quel momento
Quando invece si preme il tasto avanti o indietro si
ha un comportamento sequenziale perché il nuovo
canale sintonizzato dipende da quello che si sta
guardando attualmente (se sto guardando Rai2
vedrò Rai3 e così via)
A.A. 2013/2014
Elettronica
M. Barbaro
Reti combinatorie: analisi

La procedura di analisi di una generica rete
combinatoria descritta in termini grafici per
mezzo di un diagramma è molto semplice




Si etichettano tutte le uscite di una porta logica che
sono funzione dei soli ingressi con un nome
arbitrario
Si etichettano con un nome arbitrario tutte le uscite
di una porta logica che siano funzione degli ingressi
e dei segnali etichettati precedentemente
Si ripete il processo fino ad ottenere le uscite finali
della rete
Si sostituisce ad ogni variabile la sua espressione
logica costruendo così l’espressione logica
completa
A.A. 2013/2014
Elettronica
M. Barbaro
Analisi: esempio
T2 = ABC
F1 = T2 + T3
T1 = A+B+C
T3 = T1 F2’
F2=AB+AC+BC
A.A. 2013/2014
Elettronica
M. Barbaro
Analisi: tabella di verità

La procedura per ricavare la tabella di verità è
altrettanto semplice:




Si determina il numero n di ingressi della rete e si
crea una tabella con 2n righe
Si etichettano le uscite delle singole porte con nomi
arbitrari
Si determina la tabella di verità di quelle porte che
sono funzione dei soli ingressi
Si procede trovando la tabella di verità per quelle
uscite che sono funzione degli ingressi e di segnali
definiti precedentemente
A.A. 2013/2014
Elettronica
M. Barbaro
Reti combinatorie : sintesi

La procedura di sintesi fa uso degli strumenti
dell’algebra di Boole




Dalle specifiche del circuito si determina il numero di
ingressi ed uscite
Per ogni uscita si ricavano le tabelle di verità
Si minimizza l’implementazione di ciascuna funzione
(per mezzo di mappe di Karnaugh o metodi più
sofisticati)
Si disegna il diagramma circuitale con le porte
logiche e se ne verifica il funzionamento
A.A. 2013/2014
Elettronica
M. Barbaro
Reti combinatorie


Vedremo adesso una panoramica dei principali
blocchi logici combinatori utilizzati come blocchi
base per l’implementazione di sistemi digitali
complessi
Per alcuni di questi circuiti seguiremo tutta la
fase di sintesi, come esempio, altri li
analizzeremo solamente.
A.A. 2013/2014
Elettronica
M. Barbaro
Addizionatore

La specifica di un circuito
addizionatore è puramente
discorsiva: si tratta di un
circuito in grado di prendere in
ingresso due numeri binari a N
bit (A e B) e generare in uscita
la somma su N bit (S) ed un bit
di riporto
B0
A1
B1
A2
B2
A[3:0]
+
S[4:0]
B[3:0]
A.A. 2013/2014
A0
Elettronica
A3
B3
M. Barbaro
HA
S0
C0
FA
S1
C1
FA
S2
C2
FA
S3
C3 = S4
Addizionatore: sintesi




Gli ingressi sono in totale 2N (N bit di A e N di B)
Le uscite sono N+1 (N bit per la somma S più un bit di
riporto Cout)
Piuttosto che implementare direttamente tutta la rete se
ne può sfruttare la natura gerarchica esplicitata nello
schematico del lucido precedente
Si possono cioè sviluppare due blocchi



HA: Half-adder, somma due bit e genera la somma ed il riporto
FA: Full-adder, somma tre bit e ne genera somma e riporto
L’addizionatore completo è poi ottenuto dall’opportuna
interconnessione di blocchi HA e FA
A.A. 2013/2014
Elettronica
M. Barbaro
HA: sintesi
A
B
0
1
0
1
A
B
S
C
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
1
1
Le due mappe
non sono
minimizzabili
ulteriormente
A
B
0
0
1
A.A. 2013/2014
S=A’B+AB’
1
C=AB
1
Elettronica
M. Barbaro
Implementazione
Questa funzione è
l’operatore XOR
A.A. 2013/2014
Elettronica
M. Barbaro
FA: sintesi
A
B
Cin
S
C
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
A.A. 2013/2014
S=AB’Cin’+A’BCin’+A’B’Cin+ABCin
AB
Cin 00 01 11 10
1
1
0
1
1 1
AB
Cin 00 01 11
1
0
1
1
1
Elettronica
C=AB+BCin+ACin
10
1
M. Barbaro
FA: sintesi

L’espressione di S non è ulteriormente
minimizzabile ma può essere ulteriormente
manipolata:
(AB)
(AB)’

S = Cin’ (A’B+AB’) + Cin (AB+A’B’)

Per DeMorgan: (A’B+AB’)’ = ((A’B)’ (AB’)’) =
= (A+B’) (A’+B) = AA’+AB+A’B’+B’B =
= AB+A’B’

S = (AB)Cin
A.A. 2013/2014
Elettronica
M. Barbaro
Implementazione (1)
Implementazione diretta con porte AND e OR
A.A. 2013/2014
Elettronica
M. Barbaro
Implementazione (2)
HA
HA
Implementazione con due HA ed una porta OR
A.A. 2013/2014
Elettronica
M. Barbaro
Sommatore / sottrattore



Avendo un sommatore fatto di soli FA si può
implementare facilmente un circuito
sommatore/sottrattore ricordando che per
sottrarre due numeri basta sommare il primo
all’opposto del secondo
In complemento a 2, per generare l’opposto di
un numero basta complementare tutti i bit e
sommare 1
Usando un sommatore fatto di soli full-adder per
sommare 1 basta portare ad 1 il carry in
ingresso del primo FA
A.A. 2013/2014
Elettronica
M. Barbaro
Implementazione
M=0, il circuito è un semplice sommatore
M=1, il circuito è un sottrattore (le XOR complementano i bit in ingresso e M entra nel carry)
A.A. 2013/2014
Elettronica
M. Barbaro
Moltiplicatore binario
Circuito per la moltiplicazione di due numeri a 2 bit
A.A. 2013/2014
Elettronica
M. Barbaro
Decoder



Un decoder è un circuito con N segnali di
ingresso e M segnali di uscita
A seconda della combinazione in ingresso viene
selezionata una delle linee d’uscita (la
combinazione di ingresso viene decodificata)
Il decoder più importante è quello binario che ha
in ingresso N bit ed in uscita 2N segnali

A seconda della combinazione binaria in ingresso
viene selezionata una delle uscite (se in ingresso ho
il codice 0 seleziono l’uscita 0, se ho il codice 1
l’uscita 1 e così via)
A.A. 2013/2014
Elettronica
M. Barbaro
Implementazione
Decoder con abilitazione (E). Le mappe non sono evidentemente minimizzabile perché
per ogni codice di ingresso una ed una sola linea d’uscita va alta
A.A. 2013/2014
Elettronica
M. Barbaro
Decoder complessi
All’aumentare del numero di ingressi posso realizzare il decoder utilizzando decoder
più piccoli in parallelo
A.A. 2013/2014
Elettronica
M. Barbaro
Logica combinatoria con decoder
Un decoder può essere usato per implementare qualsiasi funzione logica. A seconda della combinazione
d’ingresso una sola uscita è alta, si mettono in OR le uscite che corrispondono alle righe per cui la
funzione deve essere 1
A.A. 2013/2014
Elettronica
M. Barbaro
Encoder



Un encoder svolge l’operazione inversa, dati N
ingressi, genera M uscite per identificare quale
degli ingressi era alto tramite un opportuno
codice
Come sempre, il codice binario è il più semplice,
avrò allora N ingressi e log2N uscite che
codificano quale linea d’ingresso è risultata alta
Siccome più ingressi possono essere alti
contemporaneamente, si stabilisce un
meccanismo di priorità in base al quale se più
ingressi sono alti si mette in uscita il codice che
corrisponde all’ingresso a massima priorità
A.A. 2013/2014
Elettronica
M. Barbaro
Implementazione
A.A. 2013/2014
Elettronica
M. Barbaro
Implementazione
A.A. 2013/2014
Elettronica
M. Barbaro
Multiplexer


Un multiplexer è un circuito che, in base ad un
codice di ingresso, fa passare in uscita il valore
di uno di N segnali in ingresso
Se N sono gli ingressi, il codice di selezione
deve essere composto da log2N bit
A.A. 2013/2014
Elettronica
M. Barbaro
Implementazione
A.A. 2013/2014
Elettronica
M. Barbaro
Logica combinatoria con multiplexer
Anche i multiplexer possono essere dei blocchi base per implementare una qualsiasi
funzione logica
A.A. 2013/2014
Elettronica
M. Barbaro