Reti Logiche - UniNa STiDuE

annuncio pubblicitario
Testo di riferimento:
[Congiu] - 2.4 (pagg. 37–57)
Reti Logiche Combinatorie
00.b
Analisi
Minimizzazione booleana
Sintesi
Rete logica combinatoria: definizione
Una rete logica combinatoria è una rete
logica nella quale, in ogni istante, i valori
presenti alle uscite sono determinati
unicamente dai valori presenti agli ingressi
nel medesimo istante.
2
34
Una rete logica combinatoria è quindi
• priva di stato
(non contiene elementi di memoria);
• interamente descritta dalla sua
tabella di verità
Architettura degli Elaboratori
© 2009
Primo esempio: il decodificatore 3/8
3
Un decodificatore è una rete
combinatoria che attiva
l’i-esima uscita se e solo se
il valore binario codificato
dagli ingressi è i
34
Tabella di verità per un decodificatore con 3 ingressi e 23=8 uscite:
Architettura degli Elaboratori
Decodificatore: realizzazione
© 2009
4
34
Sono rappresentate
solo le funzioni
F0, F1 e F4.
Le porte NOT
sono rappresentate
con circoletti “c”.
Architettura degli Elaboratori
© 2009
Porte logiche: notazione algebrica
Nome
Simbolo
grafico
Tabella
di verità
5
Notazione
algebrica
AND
Y = A·B
OR
Y = A+B
NOT
Y=A
XOR
Y = A⊕B
Architettura degli Elaboratori
34
© 2009
Reti logiche: rappresentazioni
6
Quanto abbiamo visto per le porte logiche
vale in generale per le reti logiche.
In altre parole, sono tra loro equivalenti
le tre rappresentazioni…
34
• …mediante uno schema grafico
• …mediante una tabella di verità
• …mediante una espressione algebrica
Sceglieremo in ciascun caso la rappresentazione
più opportuna per quel caso.
Architettura degli Elaboratori
© 2009
Funzione di equivalenza (1 di 3)
7
34
È possibile ottenere E
attraverso la
“somma di prodotti”
E= A•B+A•B
© 2009
Architettura degli Elaboratori
Funzione di equivalenza (2 di 3)
8
34
...è possibile ottenere E
anche attraverso il
“prodotto di somme”
E= (A+B) •(A+B)
Architettura degli Elaboratori
© 2009
Funzione di equivalenza (3 di 3)
9
34
Diversi circuiti logici
equivalenti che realizzano
la stessa funzione logica
© 2009
Architettura degli Elaboratori
Algebra di Boole o booleana
10
34
L’analisi delle proprietà delle espressioni
algebriche costruite da variabili binarie e
operatori logici, si deve al matematico G. Boole
(1815-1864), ed è nota come algebra booleana.
S = B•(A•B) + A•(A•B)
Architettura degli Elaboratori
?
© 2009
Algebra di Boole: proprietà (1 di 2)
A
A·1 = A
A·0 = 0
A·A = A
A·A = 0
A=A
A+0 = A
A+1 = 1
A+A = A
11
34
A+A = 1
Proprietà commutativa, associativa e distributiva:
A·B = B·A
A+B = B+A
A+(B+C) = (A+B)+C
A·(B·C) = (A·B)·C
A·(B+C) = A·B+A·C
A+(B·C) = (A+B)·(A+C)
Architettura degli Elaboratori
Algebra di Boole: proprietà (2 di 2)
A
Legge di De Morgan:
© 2009
12
34
A+B=A·B
A·B=A+B
Architettura degli Elaboratori
© 2009
Sintesi di un half-adder (1 di 2)
13
34
S’ = A•B+A•B = A⊕B
C’ = A•B
Architettura degli Elaboratori
© 2009
Sintesi di un half-adder (2 di 2)
14
Utilizziamo l’algebra booleana e le sue proprietà
per riscrivere S’ utilizzando solo porte NAND:
34
S’ = A•B + A•B
S’ = A•B • A•B
S’ = (A•B+B•B) • (A•B+A•A)
S’ = B•(A+B) • A•(A+B)
S’ = B•(A•B) • A•(A•B)
Architettura degli Elaboratori
© 2009
Half-adder con sole porte NAND
15
S’ = B•(A•B) • A•(A•B)
C’ = A•B
34
© 2009
Architettura degli Elaboratori
Sintesi di un full-adder (1 di 2)
16
34
Half-Adder
S = A•B•C” + A•B•C” + A•B•C” + A•B•C”
S = (A•B + A•B)•C” + (A•B + A•B)•C”
S’ = (A⊕B)
S = (A⊕B)•C” + (A⊕B)•C” = (A⊕B) ⊕ C”
C’ = A•B
S = S’ ⊕ C”
C = A•B•C” + A•B•C” + A•B•C” + A•B•C”
C = (A•B + A•B)•C” + A•B•(C” + C”) = (A⊕B)•C” + A•B
C = S’•C” + C’
Architettura degli Elaboratori
© 2009
Sintesi di un full-adder (2 di 2)
17
34
S = S’ ⊕ C”
C = S’•C” + C’
Architettura degli Elaboratori
Full-adder con sole porte NAND
C = S’•C” + C’ = S’•C” • C’
Architettura degli Elaboratori
© 2009
18
34
© 2009
Sommatore binario da 4 bit
19
34
Architettura degli Elaboratori
Sommatore binario da 16 bit
© 2009
20
34
Architettura degli Elaboratori
© 2009
Minimizzazione: Mappe di Karnaugh (1/7)
Tra le proprietà dell’algebra di Boole, le seguenti
consentono di semplificare notevolmente le espressioni
booleane:
21
34
A•B + A•B = A•(B + B) = A
A•(B•C + B•C + B•C + B•C) = A
Le mappe di Karnaugh sono una particolare forma di
tabella di verità, che consente di individuare
immediatamente la possibilità di fare queste
semplificazioni.
© 2009
Architettura degli Elaboratori
Minimizzazione: Mappe di Karnaugh (2/7)
22
Ad esempio, la seguente tabella di verità della funzione Y=Y(A,B,C)
A
0
0
0
0
1
1
1
1
B
0
0
1
1
0
0
1
1
C
0
1
0
1
0
1
0
1
Y
0
0
0
1
0
1
1
1
A
B
0
0
0
1
1
1
1
0
0
0
0
1
0
1
0
1
1
1
può essere ridisegnata così: C
34
Mappa di Karnaugh della funzione Y
Nelle mappe di K. i valori della funzione sono scritti dentro le caselle.
Dalla tabella di verità o dalla mappa di Karnaugh è immediato ottenere
l’espressione booleana della funzione Y come “somma” di “prodotti”, cioè
come OR di tanti termini AND quante sono le caselle in cui la funzione vale 1;
ciascuno di questi termini AND (detti minterm) è costituito dall’AND delle
variabili di ingresso, negate oppure no a seconda che il valore della variabile
associato a quella casella sia 0 oppure 1:
Y = A•B•C + A•B•C + A•B•C + A•B•C
Architettura degli Elaboratori
© 2009
Minimizzazione: Mappe di Karnaugh (3/7)
23
Nel caso di funzioni di 4 variabili, ad es. Z=Z(A,B,C,D), la mappa di
Karnaugh ha 4 righe e quattro colonne:
A0
CD B 0
0
1
1
1
1
0
00
0
0
1
0
01
1
0
1
1
11
1
1
1
1
10
1
1
1
0
34
Mappa di Karnaugh della funzione Z
I valori delle variabili A,B,C,D individuano le “coordinate” delle caselle:
le coppie di valori di A e B (di C e D) associate alle colonne (alle righe)
sono ordinate in modo che tra due caselle adiacenti (della medesima riga
o della medesima colonna) cambi il valore di una sola delle variabili,
mentre quello di tutte le altre rimane lo stesso; ciò vale anche tra le
caselle estreme di ciascuna riga e di ciascuna colonna (che possono
quindi essere considerate “adiacenti”, in senso circolare).
Architettura degli Elaboratori
© 2009
Minimizzazione: Mappe di Karnaugh (4/7)
In questo modo a ciascuna coppia di caselle adiacenti contrassegnate con il
valore 1 corrispondono, nella espressione booleana, due termini “prodotto”
(minterm) nei quali una variabile è presente negata in uno e non negata
nell’altro, mentre tutte le altre variabili hanno lo stesso valore.
24
34
E` allora possibile semplificare l’espressione sostituendo quei due termini
con un unico termine nel quale non è più presente la variabile che cambia
valore.
Ad esempio le ultime due caselle della seconda riga nella mappa della
funzione Y portano alla seguente semplificazione:
A•B•C + A•B•C = A•C
Architettura degli Elaboratori
© 2009
Minimizzazione: Mappe di Karnaugh (5/7)
Allo stesso modo, quaterne di caselle adiacenti tutte con il valore 1 (sulla
stessa riga o sulla stessa colonna) corrispondono a quattro termini che si
riducono ad uno; ad esempio le quattro caselle della terza riga nella mappa
della funzione Z portano alla seguente semplificazione:
25
34
C•D•(A•B + A•B + A•B + A•B) = C•D
le quattro caselle della terza colonna nella mappa della funzione Z portano
alla seguente semplificazione:
A•B•(C•D + C•D + C•D + C•D) = A•B
Così pure quaterne adiacenti disposte secondo un quadrato producono un
unico termine; ad esempio le quattro caselle in basso a sinistra nella mappa
della funzione Z portano alla seguente semplificazione:
A•C•(B•D + B•D + B•D + B•D) = A•C
Analogo discorso vale per gruppi di otto caselle adiacenti tutte con il
valore 1.
© 2009
Architettura degli Elaboratori
Minimizzazione: Mappe di Karnaugh (6/7)
Per semplificare l’espressione di una funzione, si individuano, nella mappa di
K., i gruppi di (2 o 4 o 8) caselle adiacenti con il valore 1.
Spesso conviene sfruttare la proprietà A+A=A, che consente di utilizzare
più volte la stessa casella (lo stesso minterm), per formare gruppi diversi e
ottenere il maggior numero di semplificazioni possibile.
Individuando un insieme di gruppi (da 1, 2, 4 o 8) che copra tutte le caselle
in cui compare il valore 1, si ottiene una espressione semplificata,
costituita dall’OR dei termini corrispondenti a ciascun gruppo.
26
34
Ad es. per la funzione Z, si possono individuare i gruppi segnati in figura:
A0
CD B 0
0
1
1
1
1
0
00
0
0
1
0
01
1
0
1
1
11
1
1
1
1
10
1
1
1
0
A•C
A•B
B•D
Si ottiene, immediatamente, l’espressione semplificata: Z=A•C+A•B+B•D
Architettura degli Elaboratori
© 2009
Minimizzazione: Mappe di Karnaugh (7/7)
27
Funzioni booleane parzialmente definite: il loro valore è specificato solo
per alcune combinazioni dei valori delle variabili.
Le altre combinazioni o non si verificano mai o il valore della funzione non
interessa: don’t care conditions (d.c.c.).
34
In una mappa di K. è spesso utile inserire un valore 1 al posto di d.c.c. (per
formare ulteriori raggruppamenti).
Es. Funzione parzialmente definita W (i trattini individuano d.c.c.):
A
0
0
0
0
1
1
1
1
B
0
0
1
1
0
0
1
1
C
0
1
0
1
0
1
0
1
W
1
1
0
A 0
B 0
0
1
1
1
1
0
C
0
-
-
-
1
1
1
-
0
-
0
1
1
1
1
0
A 0
B 0
Si possono sostituire due
d.c.c. con altrettanti 1:
C
0
1
-
-
1
1
1
-
0
1
si forma la quaterna con cui si ottiene l’espressione semplificata: W = B
© 2009
Architettura degli Elaboratori
Encoder
28
34
Y0
X0
0
X
X2 X3 1 0
0
1
1
1
1
0
0 0
-
1
-
0
0 1
1
-
-
-
X0
1 1
-
-
-
-
X1
1 0
0
-
-
-
X2
Y0 = X1 + X3
Analogamente:
Y1 = X2 + X3
Architettura degli Elaboratori
Y0
Y1
X3
© 2009
Multiplexer
29
34
X0
X1
Y
X7
0
1
2
3
4
5
6
7
DEC 3/8
C2 C1 C0
© 2009
Architettura degli Elaboratori
Demultiplexer
30
34
Y0
Y1
Y2
X
Y3
0
1
2
3
DEC 2/4
C1 C0
Architettura degli Elaboratori
© 2009
Sintesi a due livelli
31
34
Sintesi come “somma di prodotti”
Architettura degli Elaboratori
Sintesi tramite PLA
© 2009
32
PLA = “Programmable Logic Array”
34
Tipicamente, p < 2i
Architettura degli Elaboratori
© 2009
Sintesi tramite ROM (1 di 2)
33
34
Architettura degli Elaboratori
Sintesi tramite ROM (2 di 2)
© 2009
34
34
Architettura degli Elaboratori
© 2009
Fine
00.b
Reti logiche combinatorie
Scarica