Reti logiche
Logica a 2 livelli
Capitolo 2:
Logica combinatoria a due livelli
Reti Logiche
Contemporary Logic Design
Randy H. Katz
University of California, Berkeley
May 1993
Trasparenze tradotte da:
Luciano Lavagno
Universita’ di Udine
Settembre 1998
© R.H. Katz 2-1
Motivazione
Reti logiche
Logica a 2 livelli
Ulteriore estensione dei concetti del Capitolo 1:
• Tecniche di prototipazione rapida
Uso di strumenti CAD: espresso
• Tecniche di progetto adatte per diverse tecnologie
Transistor-Transistor Logic (TTL)
Complementary Metal on Oxide Silicon (CMOS)
• Diverse rappresentazioni di un progetto
Tabelle di verita’
Modelli statici di porte logiche
Forme d’onda dinamiche
© R.H. Katz 2-2
Sommario del capitolo
Reti logiche
Logica a 2 livelli
• Funzioni logiche ed interruttori
Not, AND, OR, NAND, NOR, XOR, XNOR
• Porte logiche
Leggi e teoremi dell’algebra booleana
Forme canoniche a due livelli
Funzioni non completamente specificate
• Semplificazione a due livelli
Cubi booleani
Mappe di Karnaugh
Metodo di Quine-Mc Cluskey
Metodo di “espresso”
© R.H. Katz 2-3
Reti logiche
Logica a 2 livelli
Funzioni logiche: algebra booleana
Struttura algebrica composta da:
Insieme di elementi B
Operazioni binarie {+, •}
Operazione unaria {'}
che soddisfano i seguenti assiomi (di Huntingdon):
1. B contiene almeno due elementi differenti
2. Chiusura: a,b in B,
(i) a + b in B
(ii) a • b in B
5. Distributive:
(i) a + (b • c) = (a + b) • (a + c)
(ii) a • (b + c) = a • b + a • c
3. Commutative: a,b in B,
(i) a + b = b + a
(ii) a • b = b • a
6. Complemento:
(i) a + a' = 1
(ii) a • a' = 0
4. Identita’: 0, 1 in B
(i) a + 0 = a
(ii) a • 1 = a
© R.H. Katz 2-4
Reti logiche
Logica a 2 livelli
Funzioni logiche: algebra booleana
B = {0,1}, + = OR, • = AND, ' = NOT e’ un’algebra booleana
verifichiamo che soddisfa gli assiomi:
P.es., commutativita’:
0 + 1 = 1 + 0?
0 • 1 = 1 • 0?
1=1
0=0
Teorema: ogni funzione logica che puo’ essere scritta come tabella di
verita’ puo’ essere scritta come un’espressione algebrica booleana ', +, •
Descrizione
Se X =0 alloraX' = 1
Se X=1 allora X' = 0
Tabella di verita’
Porta
X
X
X
0
1
X
1
0
Interruttori
Vero
NOT
X
Falso
X
Ripasso
dal
capitolo 1
Descrizione
Z = 1 se X ed Y
sono entrambi 1
Descrizione
Z = 1 se X o Y
X
(o entrambi) sono 1 Y
Porta
X
Y
Z
Porta
Z
Tabella di verita’
Interruttori
X Y Z
falso
0 0 0
0 1 0
1 0 0
vero
1 1 1
X
Y
Tabella di verita’
Interruttori
X
0
0
1
1
Y
0
1
0
1
Z
0
1
1
1
AND
X•Y
Falso
X+Y
Vero
X
OR
Y
© R.H. Katz 2-5
Funzioni logiche: dalle espressioni alle porte
Reti logiche
Logica a 2 livelli
Molti modi per passare da un’espressione ad
una rete logica
T2
P.es., Z = A' • B' • (C + D) = (A' • (B' • (C + D)))
T1
porta a tre ingressi
A
Z
B
B
T1
C
T
D
A
2
Z
C
D
Letterale: ogni variabile o complemento che appare in un’espressione
P.es., Z = A B' C + A' B + A' B C' + B' C
3 variabili, 10 letterali
© R.H. Katz 2-6
Reti logiche
Logica a 2 livelli
Funzioni logiche: NAND, NOR, XOR, XNOR
Esistono 16 funzioni logiche di 2 variabili:
X Y
0 0
0 1
1 0
1 1
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15
0 0 0 0 0 0 0 0 1 1
1
1
1
1
1
1
0 0 0 0 1 1 1 1 0 0
0
0
1
1
1
1
0 0 1 1 0 0 1 1 0 0
1
1
0
0
1
1
0 1 0 1 0 1 0 1 0 1
0
1
0
1
0
1
0
X• Y
X, X', Y, Y', X•Y, X+Y, 0, 1 sono
solo meta’ delle funzioni possibili
1
X
NAND
Y
X+Y
Y
Descrizione
Z = 1 se X e’ 0
o Y e’ 0
X
Tabella di verita’
Porta
X
Y
X Y Z
0 0 1
0 1 1
1 0 1
1 1 0
Z
Interruttori
Vero
X• Y
Falso
X
NOR
Descrizione
Z = 1 se sia X
sia Y sono 0
Tabella di verita’
Porta
X
Y
Z
X
0
0
1
1
Y
0
1
0
1
Z
1
0
0
0
Y
Interruttori
Vero
X+Y
Falso
X
Y
© R.H. Katz 2-7
Funzioni logiche: realizzazione con porte NAND, NOR
Reti logiche
Logica a 2 livelli
Le porte NAND, NOR sono molto piu’ numerose delle
AND, OR nei progetti normali
sono piu’ facili da costruire usando transistor
Qualsiasi espressione logica puo’ essere realizzata con porte
NAND, NOR, NOT
In realta’, NOT e’ inutile
(NOT = NAND o NOR con gli ingressi collegati insieme)
X
0
Y
0
X NOR Y
1
X
0
Y
0
X NAND Y
1
1
1
0
1
1
0
© R.H. Katz 2-8
Reti logiche
Logica a 2 livelli
Funzioni logiche: XOR, XNOR
XOR: X o Y ma non tutti e due (”disuguaglianza", "differenza")
XNOR: X ed Y sono uguali (”uguaglianza", ”coincidenza")
Descrizione
Z = 1 seX ha un valore
diverso da Y
Descrizione
Z = 1 seX ha lo stesso
valore di Y
Porta
Porta
X
Z
Y
Tabella di verita’
X
0
0
1
1
X
Z
Y
Tabella di verita’
Y
0
1
0
1
(a) XOR
X Y = X Y' + X' Y
Z
0
1
1
0
X
0
0
1
1
Y
0
1
0
1
Z
1
0
0
1
(b) XNOR
X  Y = X Y + X' Y'
© R.H. Katz 2-9
Funzioni logiche: perche’ semplificare?
Reti logiche
Logica a 2 livelli
Minimizzazione logica: ridurre la complessita’ di una realizzazione
con porte logiche
• ridurre il numero di letterali (ingressi di porte)
• ridurre il numero di porte
• ridurre il numero di livelli di porte
meno ingressi vuole dire porte piu’ veloci in alcune tecnologie (CMOS)
il fan-in (numero di ingressi) e’ limitato in alcune tecnologie (CMOS)
meno livelli di porte significano minori ritardi di propagazione
configurazioni con minimo ritardo di solito richiedono piu’ porte
il numero di porte (o di circuiti integrati) influenza il costo di produzione
Metodi tradizionali:
ridurre i ritardi aumentando le porte
Nuovi metodi:
bilanciare il minor ritardo ed il maggior numero di porte
© R.H. Katz 2-10
Funzioni logiche: realizzazioni differenti di una funzione
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
Z
0
1
0
1
0
1
1
0
Reti logiche
Logica a 2 livelli
0 1 0 1 0 1
A
B
C
0
Realizzazione a due livelli
(gli invertitori non contano)
Z1
0
Realizzazione multi-livello
Vantaggio: meno
fan-in per porta
Z2
0
Z3
Porte logiche complesse: XOR
Vantaggio: minimo numero di porte
Numero di circuiti TTL:
Z1 - tre circuiti (1x 6 invertitori, 1x AND a 3 ingressi, 1x OR a 3 ingressi)
Z2 - tre circuiti (1x 6 invertitori, 1x AND a 2 ingressi, 1x OR a 2 ingressi)
Z3 - due circuiti (1x AND a 2 ingressi, 1x XOR a 2 ingressi)
© R.H. Katz 2-11
Funzioni logiche: verifica tramite simulazione
Reti logiche
Logica a 2 livelli
Per qualsiasi stimolo in ingresso, le tre realizzazioni hanno
praticamente lo stesso comportamento in termini di
forme d’onda
Leggere differenze dovute al diverso numero di livelli di porte
Le tre realizzazioni sono logicamente equivalenti
© R.H. Katz 2-12
Porte logiche: leggi dell'algebra booleana
Reti logiche
Logica a 2 livelli
Dualita’: l’espressione duale e’ ottenuta sostituendo le operazioni AND
con OR, le operazioni OR con AND, le constanti 0 con 1, ed
1 con 0s (i letterali non sono modificati).
Ogni risultato valido per un’espressione e’ valido anche per la duale!
I teoremi piu’ utili dell’algebra booleana:
Operazioni con 0 ed 1:
1D. X • 1 = X
1. X + 0 = X
2D. X • 0 = 0
2. X + 1 = 1
Idempotenza:
3. X + X = X
3D. X • X = X
Involuzione:
4. (X')' = X
Complemento:
5. X + X' = 1
5D. X • X' = 0
Commutativita’:
6. X + Y = Y + X
6D. X • Y = Y • X
© R.H. Katz 2-13
Reti logiche
Porte logiche: leggi dell'algebra booleana
Logica a 2 livelli
Associativita’:
7D. (X • Y) • Z = X • (Y • Z)
7. (X + Y) + Z = X + (Y + Z)
=X•Y•Z
=X+Y+Z
Distributivita’:
8. X • (Y+ Z) = (X • Y) + (X • Z)
8D. X + (Y• Z) = (X + Y) • (X + Z)
Teoremi della semplificazione:
9. X • Y + X • Y' = X
10. X + X • Y = X
11. (X + Y') • Y = X • Y
9D. (X + Y) • (X + Y') = X
10D. X • (X + Y) = X
11D. (X • Y') + Y = X + Y
Legge di DeMorgan:
12. (X + Y + Z + ...)' = X' • Y' • Z' • ... 12D. (X • Y • Z • ...) ' = X' + Y' + Z' + ...
13. {F(X1,X2,...,Xn,0,1,+,•)}' = {F(X1',X2',...,Xn',1,0,•,+)}
Dualita’:
14. (X + Y + Z + ...) D = X • Y • Z • ...
14D. (X •FY • Z • ...)D = X + Y + Z + ...
15. {F(X1,X2,...,Xn,0,1,+,•)}D = {F(X1,X2,...,Xn,1,0,•,+)}
Teoremi per moltiplicare e fattorizzare:
16. (X + Y) • (X' + Z) = X • Z + X' • Y 16D. X • Y + X' • Z = (X + Z) • (X' + Y)
Teorema del consenso
17. (X • Y) + (Y • Z) + (X' • Z) =
X • Y + X' • Z
17D. (X + Y) • (Y + Z) • (X' + Z) =
(X + Y) • (X' + Z)
© R.H. Katz 2-14
Porte logiche: leggi dell'algebra booleana
Dimostrazione di teoremi usando le leggi dell’algebra:
Reti logiche
Logica a 2 livelli
P.es. dimostrare il teorema: X • Y + X • Y' = X
P.es. dimostrare il teorema: X + X • Y
= X
© R.H. Katz 2-15
Porte logiche: leggi dell'algebra booleana
Dimostrazione di teoremi usando le leggi dell’algebra:
Reti logiche
Logica a 2 livelli
P.es. dimostrare il teorema : X • Y + X • Y' = X
distributivita’ (8)
X • Y + X •Y' = X • (Y + Y')
complementarieta’ (5)
X • (Y + Y')
= X • (1)
identita’ (1D)
X • (1)
=X
P.es. dimostrare il teorema : X + X • Y
= X
identita’ (1D)
X + X•Y
= X•1 + X•Y
distributivita’ (8)
X • 1 + X • Y = X • (1 + Y)
identita’ (2)
X • (1 + Y)
= X • (1)
identita’ (1)
X • (1)
= X
© R.H. Katz 2-16
Reti logiche
Logica a 2 livelli
Porte logiche: leggi dell'algebra booleana
Legge di DeMorgan
(X + Y)' = X' • Y'
NOR e’ come AND
con ingressi complementati
(X • Y)' = X' + Y'
NAND e’ come OR
con ingressi complementati
X
0
0
1
1
Y
0
1
0
1
X
1
1
0
0
Y
1
0
1
0
X
0
0
1
1
Y
0
1
0
1
X
1
1
0
0
Y
1
0
1
0
X +Y
1
0
0
0
X•Y
1
0
0
0
X•Y X +Y
1
1
1
1
1
1
0
0
Le legge di DeMorgan puo’ essere usata per convertire espressioni AND/OR
ad espressioni OR/AND
Esempi:
Z = A' B' C + A' B C + A B' C + A B C'
Z' = (A + B + C') • (A + B' + C') • (A' + B + C') • (A' + B' + C)
© R.H. Katz 2-17
Porte logiche: leggi dell'algebra booleana
Reti logiche
Logica a 2 livelli
Usare le leggi ed i teoremi per semplificare le equazioni booleane
Esempio: la funzione di riporto in uscita del sommatore
Cout = A' B Cin + A B' Cin + A B Cin' + A B Cin
© R.H. Katz 2-18
Reti logiche
Logica a 2 livelli
Porte logiche: leggi dell'algebra booleana
Usare le leggi ed i teoremi per semplificare le equazioni booleane
Esempio: la funzione di riporto in uscita del sommatore
identita’
Cout = A' B Cin + A B' Cin + A B Cin' + A B Cin
= A' B Cin + A B' Cin + A B Cin' + A B Cin + A B Cin
= A' B Cin + A B Cin + A B' Cin + A B Cin' + A B Cin
= (A' + A) B Cin + A B' Cin + A B Cin' + A B Cin
= (1) B Cin + A B' Cin + A B Cin' + A B Cin
= B Cin + A B' Cin + A B Cin' + A B Cin + A B Cin
= B Cin + A B' Cin + A B Cin + A B Cin' + A B Cin
= B Cin + A (B' + B) Cin + A B Cin' + A B Cin
associativita’
= B Cin + A (1) Cin + A B Cin' + A B Cin
= B Cin + A Cin + A B (Cin' + Cin)
= B Cin + A Cin + A B (1)
= B Cin + A Cin + A B
© R.H. Katz 2-19
Reti logiche
Logica a 2 livelli
Porte logiche: equivalenze usando gli interruttori
A + 0= A
A • A=A
A + 1= 1
A+A =A
A
A
A
=
A
=
A
A
A
A
0
1
=
=
1
A
Identita’
Idempotenza
XY + XY = X
A• A =0
A+A=1
A
A
A
A
=
=
1
0
Complementarieta’
X + XY = X
X
Y
X
Y
X
Y
X
=
=
X
X
Teoremi di semplificazione
© R.H. Katz 2-20
Porte logiche: forme canoniche a due livelli
Reti logiche
Logica a 2 livelli
La tabella di verita’ e’ una “firma” univoca per le funzioni logiche
Diverse espressioni (e realizzazioni) possono avere la stessa
tabella di verita’
Forma canonica: forma standard per un’equazione booleana
fornisce una firma univoca in forma algebrica
Forma in somma di prodotti
anche detta forma normale disgiuntiva o espansione in mintermini
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
F
0
0
0
1
1
1
1
1
F
1
1
1
0
0
0
0
0
011
100
101
110
111
F = A' B C + A B' C' + A B' C + A B C' + A B C
F' = A' B' C' + A' B' C + A' B C'
© R.H. Katz 2-21
Porte logiche: forme canoniche a due livelli
Somma di prodotti
A
B
C
Minterms
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
A
A
A
A
A
A
A
A
B
B
B
B
B
B
B
B
C = m0
C = m1
C = m2
C = m3
C = m4
C = m5
C = m6
C = m7
Notazione abbreviata per
mintermini di 3 variabili
mintermine (uno speciale termine prodotto)
prodotto (AND) di letterali in cui ogni
variabile appare esattamente una volta,
complementata o no (ma non tutte e due)
F in forma canonica:
F(A,B,C) = m(3,4,5,6,7)
= m3 + m4 + m5 + m6 + m7
= A' B C + A B' C' + A B' C
+ A B C' + A B C
forma canonica e forma minima
F = A B' (C + C') + A' B C + A B (C' + C)
= A B' + A' B C + A B
= A (B' + B) + A' B C
B
C
Reti logiche
Logica a 2 livelli
F
A
Realizzazione
a 2 livelli AND/OR
= A + A' B C
=A + BC
F = (A + B C)' = A' (B' + C') = A' B' + A' C'
© R.H. Katz 2-22
Porte logiche: forme canoniche a due livelli
Reti logiche
Logica a 2 livelli
Prodotti di somme / forma canonica congiuntiva / espansione in maxtermini
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
Maxterms
A + B + C = M0
A + B + C = M1
A + B + C = M2
A + B + C = M3
A + B + C = M4
A + B + C = M5
A + B + C = M6
A + B + C = M7
maxtermine (uno speciale termine somma):
somma (OR) di letterali in cui ogni
variabile appare esattamente una volta,
complementata o no (ma non tutte e due)
Forma di maxtermini:
Trovare le righe in cui F e’ 0
0 nella colonna di ingresso implica
letterale non complementato
1 nella colonna di ingresso implica
letterale complementato
Notazione abbreviata per
maxtermini di 3 variabili
F(A,B,C) = M(0,1,2)
= (A + B + C) (A + B + C') (A + B' + C)
F’(A,B,C) = M(3,4,5,6,7)
= (A + B' + C') (A' + B + C) (A' + B + C') (A' + B' + C) (A' + B' + C')
© R.H. Katz 2-23
Porte logiche: forme canoniche a due livelli
Somme di prodotti, prodotti di somme e legge di DeMorgan
Reti logiche
Logica a 2 livelli
F' = A' B' C' + A' B' C + A' B C'
Usare DeMorgan per ottenere F:
(F')' = (A' B' C' + A' B' C + A' B C')'
F = (A + B + C) (A + B + C') (A + B' + C)
F' = (A + B' + C') (A' + B + C) (A' + B + C') (A' + B' + C) (A' + B' + C')
Usare DeMorgan per ottenere F:
(F')' = {(A + B' + C') (A' + B + C) (A' + B + C') (A' + B' + C) (A' + B' + C')}'
F = A' B C + A B' C' + A B' C + A B C' + A B C
© R.H. Katz 2-24
Porte logiche: forme canoniche a due livelli
Reti logiche
Logica a 2 livelli
Quattro realizzazioni alternative di F:
A
B
Forma canonica in somme di prodotti
F1
C
Forma minimizzata in somme di prodotti
F2
Forma canonica in prodotti di somme
F3
Forma minimizzata in prodotti di somme
F4
© R.H. Katz 2-25
Porte logiche: forme canoniche a due livelli
Reti logiche
Logica a 2 livelli
Verifica per simulazione delle quattro alternative
100
200
A
B
C
F1
F2
F3
F4
Otto combinazioni diverse
di tre ingressi
Eccetto per alee dovute ai ritardi,
le forme d’onda delle quattro
realizzazioni sono quasi identiche
© R.H. Katz 2-26
Porte logiche: forme canoniche a due livelli
Trasformazioni tra le varie forme
1.
Reti logiche
Logica a 2 livelli
Conversione da mintermini a maxtermini:
riscrivere la notazione abbreviata a mintermini con quella a
maxtermini e sostituire gli indici con quelli non usati
E.g., F(A,B,C) = m(3,4,5,6,7) = M(0,1,2)
2.
Conversione da maxtermini a mintermini:
riscrivere la notazione abbreviata a maxtermini con quella a
mintermini e sostituire gli indici con quelli non usati
E.g., F(A,B,C) = M(0,1,2) = m(3,4,5,6,7)
3.
Da espansione in mintermini di F ad espansione in mintermini di F':
nella notazione abbreviata, usare gli indici non usati in F
E.g., F(A,B,C) = m(3,4,5,6,7)
= M(0,1,2)
4.
F'(A,B,C) = m(0,1,2)
= M(3,4,5,6,7)
Da espansione in mintermini di F ad espansione in maxtermini di F':
riscrivere usando i maxtermini, usando gli stessi indici di F
E.g., F(A,B,C) = m(3,4,5,6,7)
= M(0,1,2)
F'(A,B,C) = M(3,4,5,6,7)
= m(0,1,2)
© R.H. Katz 2-27
Reti logiche
Logica a 2 livelli
Porte logiche: logica positiva e negativa
Convenzione normale: logica positiva / attiva alta
tensione bassa = 0; tensione alta = 1
Talvolta si usa la convenzione opposta: logica negativa / attiva bassa
F
Tavola di verita’ usando tensioni Logica positiva
A
bassa
bassa
alta
alta
B
bassa
alta
bassa
alta
F
bassa
bassa
bassa
alta
Comportamento in
termini di livelli elettrici
A
0
0
1
1
B
0
1
0
1
Logica negativa
F
0
0
0
1
A
1
1
0
0
B
1
0
1
0
F
1
1
1
0
Due interpretazioni alternative
Logica positiva: AND
Logica negativa: OR
Operatori duali
© R.H. Katz 2-28
Reti logiche
Logica a 2 livelli
Porte logiche: logica positiva e negativa
Conversione da logica positiva a negativa
F
Tavola di verita’ usando tensioni Logica positiva
A
bassa
bassa
alta
alta
B
bassa
alta
bassa
alta
F
alta
bassa
bassa
bassa
A
0
0
1
1
B
0
1
0
1
Logica negativa
F
1
0
0
0
A
1
1
0
0
B
1
0
1
0
F
0
1
1
1
Logica positiva NOR: A + B = A • B
Logica negativa NAND: A • B = A + B
Operazioni duali:
AND diventa OR, OR diventa AND
il complemento rimane tale e quale
© R.H. Katz 2-29
Reti logiche
Logica a 2 livelli
Porte logiche: logica positiva e negativa
Esempio pratico
Usare OR se gli ingressi
sono in logica negativa
Change
Reques t
(active high)
Change
Reques t
(active low )
Ac tiv e
High
Usare AND
se attivo alto
Ac tiv e
Low
Change
Lights
(active high)
Timer
Expired
(active high)
(a)
Timer
Expired
(active low )
(b)
Change
Reques t
(active low )
Change
Reques t
(active low )
Change
Lights
(active low )
Differenza tra
polarita’ di
ingressi ed uscite
Timer
Expired
(active low )
(c )
Bubble
Mismatch
Change
Lights
(active low )
Change
Lights
(active low )
Timer
Expired
(active low )
Bubble
Match
(d)
Usare NAND con ingressi
invertiti se logica negativa
© R.H. Katz 2-30
Porte logiche: funzioni non completamente specificate
Funzioni di n ingressi hanno 2n
Reti logiche
Logica a 2 livelli
possibili configurazioni di ingresso
Data una funzione, non tutte le configurazioni di ingresso sono possibili
Questo fatto puo’ essere sfruttato durante la minimizzazione!
P.es. incrementare di un una cifra BCD (Binary Coded Decimal)
I numeri BCD codificano le cifre 0 - 9
con le stringhe di bit 00002 - 10012
A
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
B
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
C
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
D
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
W
0
0
0
0
0
0
0
1
1
0
X
X
X
X
X
X
X
0
0
0
1
1
1
1
0
0
0
X
X
X
X
X
X
Y
0
1
1
0
0
1
1
0
0
0
X
X
X
X
X
X
Z
1
0
1
0
1
0
1
0
1
0
X
X
X
X
X
X
Off-set di W
On-set di W
Don't care (DC) set di W
Queste stringhe di bit
non dovrebbero mai
comparire in pratica,
quindi “non importano”
(sono dei "Don't Care”)
© R.H. Katz 2-31
Porte logiche: funzioni non completamente specificate
Don't care e forme canoniche
Reti logiche
Logica a 2 livelli
Forme canoniche della funzione incremento di 1 in BCD:
Z = m0 + m2 + m4 + m6 + m8 + d10 + d11 + d12 + d13 + d14 + d15
Z = m(0, 2, 4, 6, 8) + d(10, 11, 12 ,13, 14, 15)
Z = M1 • M3 • M5 • M7 • M9 • D10 • D11 • D12 • D13 • D14 • D15
Z= M(1, 3, 5, 7, 9) • D(10, 11, 12, 13, 14 ,15)
© R.H. Katz 2-32
Porte logiche: semplificazione a due livelli
Reti logiche
Logica a 2 livelli
Semplificazione algebrica:
non e’ un algoritmo (procedura sistematica)
come fare a sapere che e’ stata trovata la forma minima?
Strumenti CAD:
soluzioni esatte richiedono molto tempo di calcolo,
specialmente con funzioni con molti ingressi (>10)
in pratica si usano metodi “euristici”:
“tirano ad indovinare” (con criterio) per ridurre i tempi di calcolo
forniscono soluzioni “buone”, non necessariamente le migliori
Serve ancora studiare i metodi manuali:
capire come funzionano i programmi CAD,
i loro vantaggi e svantaggi
riuscire a controllare i risultati (per esempi piccoli…)
durante gli esami non potrete usare un calcolatore!
© R.H. Katz 2-33
Porte logiche: semplificazione a due livelli
Reti logiche
Logica a 2 livelli
Strumento base: il teorema di unificazione — A (B' + B) = A
A
0
0
1
1
B
0
1
0
1
F
0
0
1
1
F = A B' + A B = A (B' + B) = A
I valori di B cambiano tra righe dell’on-set
B puo’ essere eliminata, A rimane
I valori di A non cambiano tra righe dell’on-set
A
0
0
1
1
B
0
1
0
1
G
1
0
1
0
G = A' B' + A B' = (A' + A) B' = B'
I valori di B non cambiano tra righe dell’on-set
A puo’ essere eliminata, B rimane
I valori di A cambiano tra righe dell’on-set
Essenza della semplificazione:
trovare sottoinsiemi di due elementi dell’on-set in cui solo una
variabile cambia valore. La variabile puo’ essere eliminata!
© R.H. Katz 2-34
Porte logiche: semplificazione a due livelli
Cubi booleani
Tecnica visuale per identificare quando
si puo’ usare il teorema dell’unificazione
0
1
XYZ
111
011
X
Un altro modo di rappresentare
la tabella di verita’
1-cube
010
XY
11
01
110
Y
Y
00
001
Z
101
000
10
2-cube
n variabili di ingresso =
“cubo” ad n dimensioni
100
X
X
Reti logiche
Logica a 2 livelli
3-cube
WXYZ
1011
1111
0111
0011
1010
1110
0010
0110
Y
0001
1001
0101
1101
Z
1100
W
0000
X
1000
0100
4-cube
© R.H. Katz 2-35
Reti logiche
Logica a 2 livelli
Porte logiche: semplificazione a due livelli
Come trasformare tabelle di verita’ in cubi booleani
ON-set = vertici pieni
OFF-set = vertici vuoti
DC-set = vertici ad X
l’espressione ridotta
(termine prodotto)
contiene n-1 variabili
F
01
11
Cubo con n-1 dimensioni
A e’ vera e non cambia
B
B cambia
00
10
A
G
01
A cambia
B e’ falsa e non cambia
11
B
00
10
A
© R.H. Katz 2-36
Porte logiche: semplificazione a due livelli
Esempio a tre variabili: riporto in uscita del sommatore
Reti logiche
Logica a 2 livelli
(A' + A) B Cin
011
A B Cin
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
Cout
0
0
0
1
0
1
1
1
111
010
L’ON-set e’ coperto
dall’OR dei sotto-cubi
di dimensione piu’ piccola
110
001
B
A B (Cin' + Cin)
101
Cin
000
100
A
A (B + B') Cin
Cout = B Cin + A B + A Cin
© R.H. Katz 2-37
Porte logiche: semplificazione a due livelli
Reti logiche
Logica a 2 livelli
Sotto-cubi di dimensione maggiore di due
011
111
L’on-set costituisce un rettangolo,
cioe’ un cubo a due dimensioni
010
110
B
001
101
C
000
A
F(A,B,C) = m(4,5,6,7)
rappresenta un’espressione (prodotto)
con una sola variabile,
cioe’ 3 dimensioni - 2 dimensioni
100
A e’ vera e non cambia
B e C cambiano
Questo sottocubo rappresenta
il letterale A
© R.H. Katz 2-38
Porte logiche: semplificazione a due livelli
Reti logiche
Logica a 2 livelli
In un 3-cubo (cubo a 3 dimensioni):
uno 0-cubo (un solo vertice) e’ un termine con tre letterali
un 1-cubo (una linea con due vertici) e’ un termine con due letterali
un 2-cubo (un piano con quattro vertici) e’ un termine con un letterale
un 3-cubo (un cubo con otto nodi) e’ la costante 1
In generale,
un m-sottocubo dentro un n-cubo (m < n) e’ un termine con
n - m letterali
© R.H. Katz 2-39
Reti logiche
Logica a 2 livelli
Porte logiche: semplificazione a due livelli
Metodo delle mappe di Karnaugh
Difficile disegnare cubi con piu’ di 4 dimensioni
La mappa di Karnaugh e’ un metodo alternativo di disegnarli,
che serve a visualizzare le adiacenze fino a 6 dimensioni
Oltre 6 variabili, servono i calcolatori...
A
0
B
1
0
mappa a
2 variabili
0
1
1
A
AB
00
CD
2
00
01
11
00
0
4
12
8
1
5
13
9
3
7
15
11
2
6
14
10
3
01
A
AB
C
mappa a
3 variabili
00
01
11
11
10
10
0
1
C
0
2
6
4
1
3
7
5
B
D
mappa a
4 variabili
B
Schema di numerazione: 00, 01, 11, 10
Codice di Gray — cambia solo 1 bit da una
parola alla successiva
© R.H. Katz 2-40
Reti logiche
Logica a 2 livelli
Porte logiche: semplificazione a due livelli
Metodo delle mappe di Karnaugh
Adiacenze nella mappa
00
C
01
11
111
011
A
AB
10
010
0
000
010
110
100
1
001
011
111
101
110
B
001
101
C
B
000
100
A
Richiudere:
il lato sinistro sul destro
l’ultima riga sulla prima
© R.H. Katz 2-41
Reti logiche
Logica a 2 livelli
Porte logiche: semplificazione a due livelli
Esempi di applicazione del metodo delle mappe
A
0
1
0
0
1
1
0
1
B
A
A vera, non cambia
B varia
B falsa, non cambia
A varia
F=
1
0
1
1
1
0
0
G=
A
AB
00
01
11
10
0
0
0
1
0
1
0
1
1
1
Cin
0
B
B
Cout =
AB
C
A
00
01
11
10
0
0
0
1
1
1
0
0
1
1
B
F(A,B,C) =
© R.H. Katz 2-42
Reti logiche
Logica a 2 livelli
Porte logiche: semplificazione a due livelli
Esempi di applicazione del metodo delle mappe
A
0
1
0
0
1
1
0
1
B
A
A vera, non cambia
B varia
0
1
0
1
1
1
0
0
B
B falsa, non cambia
A varia
F=A
G = B'
A
AB
00
01
11
10
0
0
0
1
0
1
0
1
1
1
Cin
B
Cout = A B + B Cin + A Cin
AB
C
A
00
01
11
10
0
0
0
1
1
1
0
0
1
1
B
F(A,B,C) = A
© R.H. Katz 2-43
Reti logiche
Logica a 2 livelli
Porte logiche: semplificazione a due livelli
Altri esempi del metodo delle mappe, in 3 variabili
A
AB
C
0
00
01
11
10
1
0
0
1
F(A,B,C) = m(0,4,5,7)
F=
1
0
0
1
1
B
AB
C
A
00
01
11
10
0
0
1
1
0
F'(A,B,C) = m(1,2,3,6)
1
1
1
0
0
F' =
F' sostituisce soltanto 1 con 0 e viceversa
B
© R.H. Katz 2-44
Porte logiche: semplificazione a due livelli
Reti logiche
Logica a 2 livelli
Altri esempi del metodo delle mappe, in 3 variabili
A
AB
C
0
00
01
11
10
1
0
0
1
F(A,B,C) = m(0,4,5,7)
F = B' C' + A C
1
0
0
1
1
Nella mappa, l’adiacenza continua tra
sinistra e destra e tra alto e basso
B
AB
C
0
A
00
01
11
10
0
1
1
0
F' sostituisce soltanto 1 con 0 e viceversa
F'(A,B,C) = m(1,2,3,6)
1
1
1
0
0
F' = B C' + A' C
B
Confrontate con il metodo che usa DeMorgan
e l’algebra booleana per minimizzare il complemento!
© R.H. Katz 2-45
Porte logiche: semplificazione a due livelli
Reti logiche
Logica a 2 livelli
Altri esempi del metodo delle mappe in 4 variabili
AB
00
CD
F(A,B,C,D) = m(0,2,3,5,6,7,8,10,11,14,15)
A
01
11
10
00
1
0
0
1
01
0
1
0
0
F=
D
11
1
1
1
1
10
1
1
1
1
C
B
© R.H. Katz 2-46
Reti logiche
Logica a 2 livelli
Porte logiche: semplificazione a due livelli
Altri esempi del metodo delle mappe in 4 variabili
A
AB
00
CD
01
11
10
00
1
0
0
1
01
0
1
0
0
F(A,B,C,D) = m(0,2,3,5,6,7,8,10,11,14,15)
F = C + A' B D + B' D'
Trovate il minimo numero
di cubi piu’ grandi possibile
che coprano tutto l’ON-set
D
11
1
1
1
1
10
1
1
1
1
C
B
1011
1111
0111
0011
1010
1110
0010
0110
1001
0001
C
D
0000
1100
A
B
1101
0101
Adiacenza degli angoli
della mappa
per 4 variabili
1000
0100
© R.H. Katz 2-47
Porte logiche: semplificazione a due livelli
Reti logiche
Logica a 2 livelli
Metodo delle mappe: copertura degli zeri
AB
00
CD
A
01
11
10
00
1
0
0
1
01
0
1
0
0
F = (B + C + D) (A + C + D) (B + C + D)
D
11
1
1
1
1
10
1
1
1
1
C
B
Sostituendo F con F, 0 diventa 1 e viceversa
F=BCD+ACD+BCD
F=BCD+ACD+BCD
F = (B + C + D) (A + C + D) (B + C + D)
© R.H. Katz 2-48
Porte logiche: semplificazione a due livelli
Reti logiche
Logica a 2 livelli
Metodo delle mappe: don’t care
I don’t care possono essere trattati sia come 0 sia come 1,
a seconda di come sia piu’ vantaggioso
AB
00
CD
A
01
11
10
00
0
0
X
0
F(A,B,C,D) = m(1,3,5,7,9) + d(6,12,13)
01
1
1
X
1
F=
senza don’t care
D
11
1
1
0
0
10
0
X
0
0
F=
con don’t care
C
B
© R.H. Katz 2-49
Reti logiche
Logica a 2 livelli
Porte logiche: semplificazione a due livelli
Metodo delle mappe: don’t care
I don’t care possono essere trattati sia come 0 sia come 1,
a seconda di come sia piu’ vantaggioso
AB
00
CD
A
01
11
10
F(A,B,C,D) = m(1,3,5,7,9) + d(6,12,13)
00
0
0
X
0
F = A'D + B' C' D senza don’t care
01
1
1
X
1
F = C' D + A' D con don’t care
D
11
1
1
0
0
10
0
X
0
0
C
B
Trattando questo DC come "1", possiamo
creare un 2-cubo invece di uno 0-cubo
A
AB
CD
00
01
11
10
00
0
0
X
0
01
1
1
X
1
In forma PdS: F = D (A' + C')
Stessa funzione di prima, ma
meno letterali!
D
11
1
1
0
0
10
0
X
0
0
C
B
© R.H. Katz 2-50
Reti logiche
Logica a 2 livelli
Porte logiche: semplificazione a due livelli
Esempio di progetto: comparatore a 2 bit
A
B
C
D
N1
F1 A B = C D
=, >, < F2 A B < C D
F3 A B > C D
N2
A
0
0
1
1
B C D
0 0 0
0 1
1 0
1 1
1 0 0
0 1
1 0
1 1
0 0 0
0 1
1 0
1 1
1 0 0
0 1
1 0
1 1
F1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
F2
0
1
1
1
0
0
1
1
0
0
0
1
0
0
0
0
F3
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
0
Diagramma a blocchi
e tabella di verita’
Mappa a 4 variabili
per ognuna delle
3 funzioni
© R.H. Katz 2-51
Reti logiche
Logica a 2 livelli
Porte logiche: semplificazione a due livelli
Esempio di progetto: comparatore a 2 bit
AB
CD
A
00
01
11
10
00
1
0
0
0
01
0
1
0
0
AB
CD
A
00
01
11
10
00
0
0
0
0
01
1
0
0
0
D
11
0
0
1
0
10
0
0
0
1
C
A
00
01
11
10
00
0
1
1
1
01
0
0
1
1
D
11
1
1
0
1
10
1
1
0
0
C
B
K-map for F1
AB
CD
D
11
0
0
0
0
10
0
0
1
0
C
B
K-map for F2
B
K-map for F3
F1 =
F2 =
F3 =
© R.H. Katz 2-52
Reti logiche
Logica a 2 livelli
Porte logiche:semplificazione a due livelli
Esempio di progetto: comparatore a 2 bit
AB
CD
A
00
01
11
10
00
1
0
0
0
01
0
1
0
0
AB
CD
A
00
01
11
10
00
0
0
0
0
01
1
0
0
0
D
11
0
0
1
0
10
0
0
0
1
C
A
00
01
11
10
00
0
1
1
1
01
0
0
1
1
D
11
1
1
0
1
10
1
1
0
0
C
B
K-map for F1
AB
CD
D
11
0
0
0
0
10
0
0
1
0
C
B
K-map for F2
B
K-map for F3
F1 = A' B' C' D' + A' B C' D + A B C D + A B' C D'
F2 = A' B' D + A' C + B’ C D
F3 = B C' D' + A C' + A B D'
(A xnor B) (C xnor D)
© R.H. Katz 2-53
Porte logiche: semplificazione a due livelli
Reti logiche
Logica a 2 livelli
Esempio di progetto: sommatore a 2 bit
A
B
C
D
N1
+
N2
N3
X
Y
Z
A B C D
0 0 0 0
0 1
1 0
1 1
0 1 0 0
0 1
1 0
1 1
1 0 0 0
0 1
1 0
1 1
1 1 0 0
0 1
1 0
1 1
X Y Z
0 0 0
0 0 1
0 1 0
0 1 1
0 0 1
0 1 0
0 1 1
1 0 0
0 1 0
0 1 1
1 0 0
1 0 1
0 1 1
1 0 0
1 0 1
1 1 0
Schema a blocchi
e tabella di verita’
Mappa a 4 variabili
per ognuna delle
3 funzioni
© R.H. Katz 2-54
Reti logiche
Logica a 2 livelli
Porte logiche: semplificazione a due livelli
Esempio di progetto: sommatore a 2 bit
AB
00
CD
A
01
11
10
AB
CD
A
00
01
11
10
AB
00
CD
A
01
11
10
00
0
0
0
0
00
0
0
1
1
00
0
1
1
0
01
0
0
1
0
01
0
1
0
1
01
1
0
0
1
D
11
0
1
1
1
10
0
0
1
1
C
D
11
1
0
1
0
10
1
1
0
0
C
D
11
1
0
0
1
10
0
1
1
0
C
B
B
B
K-map for X
K-map for Y
K-map for Z
X=
Z=
Y=
© R.H. Katz 2-55
Reti logiche
Logica a 2 livelli
Porte logiche: semplificazione a due livelli
Esempio di progetto: sommatore a 2 bit
AB
00
CD
A
A
01
11
10
AB
CD
00
0
0
1
1
01
0
1
0
1
00
0
0
0
0
01
0
0
1
0
00
01
11
10
D
11
0
1
1
1
10
0
0
1
1
C
AB
00
CD
A
01
11
10
00
0
1
1
0
01
1
0
0
1
D
11
1
0
1
0
10
1
1
0
0
C
D
11
1
0
0
1
10
0
1
1
0
C
B
B
B
K-map for X
K-map for Y
K-map for Z
X=AC + BCD + ABD
Z = B D' + B' D = B xor D
Gli 1 sulla diagonale suggeriscono XOR!
realizzazione a 2 livelli non e’ il meglio
Y = A' B' C + A B' C' + A' B C' D + A' B C D' + A B C' D' + A B C D
= B' (A xor C) + A' B (C xor D) + A B (C xnor D)
= B' (A xor C) + B (A xor B xor C)
Si possono usare
meno porte se l’XOR
e’ disponibile
© R.H. Katz 2-56
Reti logiche
Logica a 2 livelli
Porte logiche: semplificazione a due livelli
Esempio di progetto: sommatore a 2 bit
A
B
\A \B \C \D
Due realizzazioni di Y,
con e senza XOR
C
D
Y1
Nota: spesso l’XOR
e’ realizzato con
4 NAND!
X
X XOR Y
Y
Y2
© R.H. Katz 2-57
Reti logiche
Logica a 2 livelli
Porte logiche: semplificazione a due livelli
Esempio di progetto: incremento di 1 in BCD
AB
00
CD
W
A
01
11
10
00
0
0
X
1
01
0
0
X
0
AB
00
CD
D
11
0
1
X
X
10
0
0
X
X
X
C
A
01
11
10
00
0
1
X
0
01
0
1
X
0
D
11
1
0
X
X
10
0
1
X
X
C
B
AB
00
CD
Y
B
A
01
11
10
00
0
0
X
0
01
1
1
X
0
AB
00
CD
D
11
0
0
X
X
10
1
1
X
X
C
Z
A
01
11
10
00
1
1
X
1
01
0
0
X
0
D
11
0
0
X
X
10
1
1
X
X
C
B
B
W=
Y=
X=
Z=
© R.H. Katz 2-58
Reti logiche
Logica a 2 livelli
Porte logiche: semplificazione a due livelli
AB
00
CD
W
A
01
11
10
00
0
0
X
1
01
0
0
X
0
AB
00
CD
D
11
0
1
X
X
10
0
0
X
X
X
C
A
01
11
10
00
0
1
X
0
01
0
1
X
0
D
11
1
0
X
X
10
0
1
X
X
C
B
AB
00
CD
Y
B
A
01
11
10
00
0
0
X
0
01
1
1
X
0
AB
00
CD
D
11
0
0
X
X
10
1
1
X
X
C
Z
A
01
11
10
00
1
1
X
1
01
0
0
X
0
D
11
0
0
X
X
10
1
1
X
X
C
B
B
W = B C D + A D'
Y = A' C' D + C D'
X = B C' + B D' + B' C D
Z = D'
© R.H. Katz 2-59
Porte logiche: semplificazione a due livelli
Definizione dei termini
Reti logiche
Logica a 2 livelli
implicante: elemento dell’ON-set, o gruppo di elementi che
possono essere combinati in una mappa
(termine prodotto in SdP)
implicante primo: implicante che non e’ contenuto in un altro
implicante
(non puo’ essere combinato con un altro implicante)
implicante (primo) essenziale: implicante primo che copre un
elemento dell’ON-set non coperto da nessun altro
Obiettivo:
“far crescere” gli implicanti fino a diventare primi
coprire l’ON-set con il minimo numero di implicanti
gli essenziali devono essere presenti in ogni copertura
© R.H. Katz 2-60
Reti logiche
Logica a 2 livelli
Porte logiche: semplificazione a due livelli
Esempi per spiegare i termini
AB
00
CD
A
01
11
10
00
0
1
1
0
01
1
1
1
0
6 implicanti primi:
A' B' D, B C', A C, A' C' D, A B, B' C D
D
11
1
0
1
1
10
0
0
1
1
essenziali
Copertura minima = B C' + A C + A' B' D
C
B
AB
00
CD
A
01
11
10
00
0
0
1
0
01
1
1
1
0
5 implicanti primi:
B D, A B C', A C D, A' B C, A' C' D
D
11
0
1
1
1
10
0
1
0
0
C
essenziali
Gli implicanti essenziali sono la copertura minima
B
© R.H. Katz 2-61
Porte logiche: semplificazione a due livelli
Reti logiche
Logica a 2 livelli
Un altro esempio
AB
00
CD
A
01
11
10
00
0
0
0
0
01
0
1
1
0
Implicanti primi:
B D, C D, A C, B' C
Essenziali
D
11
1
1
1
1
10
1
0
1
1
Gli implicanti essenziali sono la copertura minima
C
B
© R.H. Katz 2-62
Reti logiche
Porte logiche: semplificazione a due livelli
Logica a 2 livelli
Algoritmo: generare una somma di prodotti minima da una mappa
Passo 1: Scegliere un elemento dell’ON-set non ancora coperto
Passo 2: Trovare tutti i massimi gruppi di 1 ed X adiacenti all’elemento.
(ricordandosi di usare le adiacenze destra/sinistra e alto/basso)
Questo crea gli implicanti primi (numero di elementi e’ sempre
una potenza di 2)
Ripetere i passi 1 e 2 per trovare tutti gli implicanti primi
Passo 3: Riconsiderare ogni 1 nella mappa. Se e’ coperto da un solo primo,
allora il primo e’ essenziale e sara’ nella copertura. Ogni 1 coperto
non deve piu’ essere considerato.
Passo 4: Se rimangono 1 non coperti, coprirli con un numero minimo
di implicanti primi.
© R.H. Katz 2-63
Porte logiche: semplificazione a due livelli
Esempio: ƒ(A,B,C,D) = m(4,5,6,8,9,10,13) + d(0,7,15)
Reti logiche
Logica a 2 livelli
A
AB
CD
00
01
11
10
00
X
1
0
1
01
0
1
1
1
D
11
0
X
X
0
10
0
1
0
1
C
B
Mappa iniziale
© R.H. Katz 2-64
Porte logiche: semplificazione a due livelli
Esempio : ƒ(A,B,C,D) = m(4,5,6,8,9,10,13) + d(0,7,15)
A
AB
CD
00
01
11
10
00
X
1
0
1
01
0
1
1
1
AB
00
CD
A
01
11
10
00
X
1
0
1
01
0
1
1
1
D
11
0
X
X
0
10
0
1
0
1
C
Reti logiche
Logica a 2 livelli
D
11
0
X
X
0
10
0
1
0
1
C
B
Mappa iniziale
B
Primi intorno a
A' B C' D'
© R.H. Katz 2-65
Reti logiche
Logica a 2 livelli
Porte logiche: semplificazione a due livelli
Esempio : ƒ(A,B,C,D) = m(4,5,6,8,9,10,13) + d(0,7,15)
A
AB
CD
00
01
11
10
00
X
1
0
1
01
0
1
1
1
AB
00
CD
A
01
11
10
AB
CD
00
X
1
0
1
01
0
1
1
1
D
11
0
X
X
0
10
0
1
0
1
C
Mappa iniziale
00
01
11
10
00
X
1
0
1
01
0
1
1
1
D
D
11
0
X
X
0
10
0
1
0
1
11
0
X
X
0
10
0
1
0
1
C
C
B
A
B
Primi intorno a
A' B C' D'
B
Primi intorno a
A B C' D
© R.H. Katz 2-66
Porte logiche: semplificazione a due livelli
Esempio
AB
00
CD
Reti logiche
Logica a 2 livelli
A
01
11
10
00
X
1
0
1
01
0
1
1
1
D
11
0
X
X
0
10
0
1
0
1
C
B
Primi intorno a
A B C' D
© R.H. Katz 2-67
Reti logiche
Logica a 2 livelli
Porte logiche: semplificazione a due livelli
Esempio
AB
00
CD
A
01
11
10
00
X
1
0
1
01
0
1
1
1
AB
00
CD
A
01
11
10
00
X
1
0
1
01
0
1
1
1
D
11
0
X
X
0
10
0
1
0
1
C
D
11
0
X
X
0
10
0
1
0
1
C
B
Primi intorno a
A B C' D
B
Primi intorno a
A B' C' D'
© R.H. Katz 2-68
Reti logiche
Logica a 2 livelli
Porte logiche: semplificazione a due livelli
Esempio
AB
00
CD
A
01
11
10
00
X
1
0
1
01
0
1
1
1
AB
00
CD
A
01
11
10
00
X
1
0
1
01
0
1
1
1
D
11
0
X
X
0
10
0
1
0
1
C
Primi intorno a
A B C' D
A
01
11
10
00
X
1
0
1
01
0
1
1
1
D
11
0
X
X
0
10
0
1
0
1
C
B
AB
00
CD
D
11
0
X
X
0
10
0
1
0
1
C
B
Primi intorno a
A B' C' D'
B
Primi essenziali
e copertura minima
© R.H. Katz 2-69
Reti logiche
Logica a 2 livelli
Porte logiche: semplificazione a due livelli
Mappe a 5 variabili
BC
DE
00 01 11
10
A =0
00
0
4
12
8
01
1
5
13
9
11
3
7 15 11
10 2
6
14 10
BC
DE
00
A=0
A =1
00
01
11
1
11
1
1
1
1
10
10
1
01
1
BC
DE
00
BC
00
01
11
16
20
28
10
24
01 17 21 29 25
11
19 23 31 27
10
18 22 30 26
DE
00
A=1
00
1
01 1
11
1
01
1
11
10
1
1
1
10
ƒ(A,B,C,D,E) = m(2,5,7,8,10,
13,15,17,19,21,23,24,29 31)
=
© R.H. Katz 2-70
Reti logiche
Logica a 2 livelli
Porte logiche: semplificazione a due livelli
Mappe a 5 variabili
BC
DE
00 01 11
10
A =0
00
0
4
12
8
01
1
5
13
9
11
3
7 15 11
10 2
6
14 10
BC
DE
00
A=0
A =1
00
01
11
1
11
1
1
1
1
10
10
1
01
1
BC
BC
DE
00
00
01
11
16
20
28
DE
00
10
24
01 17 21 29 25
11
19 23 31 27
10
18 22 30 26
A=1
00
1
01 1
11
1
01
1
11
10
1
1
1
10
ƒ(A,B,C,D,E) = m(2,5,7,8,10,
13,15,17,19,21,23,24,29 31)
= C E + A B' E + B C' D' E'
+ A' C' D E'
© R.H. Katz 2-71
Reti logiche
Logica a 2 livelli
Porte logiche: semplificazione a due livelli
Mappe a 6 variabili
CD
EF
00
00
CD
EF
00
AB=00
01
01
11
10
0
4
12
8
1
11
10
00
5
3
7
2
6
13
15
14
AB=00
10 1
11
10
01
11
10
01
11
16
20
28
17
19
18
21
23
22
29
31
30
26
CD
01
11
11
32
36
44
33
35
10 34
37
39
38
45
47
46
10
40
41
43
42
11
10
1
11
27
01
01
01
24
25
00
1
CD
EF
00
00
AB=01
10
CD
EF
00 01
11
10
00
AB =11
48 52
60 56
01 49 53
61 57
11
51 55
63 59
10 50 54
62 58
EF
AB =10 00
10
1
11
9
00
11
01
CD
EF
AB =01 00
01
ƒ(A,B,C,D,E,F) =
m(2,8,10,18,24,
26,34,37,42,45,50,
53,58,61)
=
10 1
1
CD
EF
00
00
AB=11
01
1
01
11
10
1
11
10
1
1
CD
EF
00 01 11
AB=10 00
01
1
1
10
11
10
1
1
© R.H. Katz 2-72
Reti logiche
Logica a 2 livelli
Porte logiche: semplificazione a due livelli
Mappe a 6 variabili
CD
EF
00
00
CD
EF
00
AB=00
01
01
11
10
0
4
12
8
1
11
10
00
5
3
7
2
6
13
15
14
AB=00
10 1
11
10
01
11
10
01
11
16
20
28
17
19
18
21
23
22
29
31
30
26
CD
01
11
11
32
36
44
33
35
10 34
37
39
38
45
47
46
10
40
41
43
42
11
10
1
11
27
01
01
01
24
25
00
1
CD
EF
00
00
AB=01
10
CD
EF
00 01
11
10
00
AB =11
48 52
60 56
01 49 53
61 57
11
51 55
63 59
10 50 54
62 58
EF
AB =10 00
10
1
11
9
00
11
01
CD
EF
AB =01 00
01
ƒ(A,B,C,D,E,F) =
m(2,8,10,18,24,
26,34,37,42,45,50,
53,58,61)
= D' E F' + A D E' F
+ A' C D' F'
10 1
1
CD
EF
00
00
AB=11
01
1
01
11
10
1
11
10
1
1
CD
EF
00 01 11
AB=10 00
01
1
1
10
11
10
1
1
© R.H. Katz 2-73
Porte logiche: strumenti CAD per la semplificazione
Metodo di Quine-McCluskey
Reti logiche
Logica a 2 livelli
Metodo tabellare per trovare tutti gli implicanti primi
ƒ(A,B,C,D) = m(4,5,6,8,9,10,13) + d(0,7,15)
Fase 1: Trovare tutti gli implicanti
Tavola degli implicanti
Passo 1: Riempire la col. 1 con mintermini Colonna I
di ON-set e DC-set, raggruppati
0000
in base al numero di 1
0100
1000
0101
0110
1001
1010
0111
1101
1111
© R.H. Katz 2-74
Porte logiche: strumenti CAD per la semplificazione
Metodo di Quine-McCluskey
Reti logiche
Logica a 2 livelli
Metodo tabellare per trovare tutti gli implicanti primi
ƒ(A,B,C,D) = m(4,5,6,8,9,10,13) + d(0,7,15)
Fase 1: Trovare tutti gli implicanti
Tavola degli implicanti
Passo 1: Riempire la col. 1 con mintermini
di ON-set e DC-set, raggruppati
Colonna I Colonna II
in base al numero di 1
0000 ¦
0-00 *
-000 *
Passo 2: Usare il teorema dell’unificazione: 0100 ¦
Confrontare gli elementi del gruppo 1000 ¦
010- ¦
con N 1 con quelli con N+1 1.
01-0 ¦
Differenza su un bit => adiacenza.
0101 ¦
100- *
Eliminare la variabile e mettere
0110 ¦
10-0 *
nella colonna seguente.
1001 ¦
1010 ¦
01-1 ¦
P.es.., 0000 e 0100 da’ 0-00
-101 ¦
0000 e 1000 da’ -000
0111 ¦
011- ¦
1101 ¦
1-01 *
Quando usato in combinazione,
segnare con |. Se non combinabile, 1111 ¦
-111 ¦
segnare con *. Questi sono gli
11-1 ¦
implicanti primi.
Ripetere il passo 2 finche’ non si possono piu creare combinazioni
© R.H. Katz 2-75
Porte logiche: strumenti CAD per la semplificazione
Metodo di Quine-McCluskey
Reti logiche
Logica a 2 livelli
Metodo tabellare per trovare tutti gli implicanti primi
ƒ(A,B,C,D) = m(4,5,6,8,9,10,13) + d(0,7,15)
Fase 1: Trovare tutti gli implicanti
Tavola degli implicanti
Passo 1: Riempire la col. 1 con mintermini
di ON-set e DC-set, raggruppati
Colonna I Colonna II Colonna III
in base al numero di 1
0000 ¦
0-00 *
01-- *
-000 *
Passo 2: Usare il teorema dell’unificazione: 0100 ¦
-1-1 *
Confrontare gli elementi del gruppo 1000 ¦
010- ¦
con N 1 con quelli con N+1 1.
01-0 ¦
Differenza su un bit => adiacenza.
0101 ¦
100- *
Eliminare la variabile e mettere
0110 ¦
10-0 *
nella colonna seguente.
1001 ¦
1010 ¦
01-1 ¦
P.es.., 0000 e 0100 da’ 0-00
-101 ¦
0000 e 1000 da’ -000
0111 ¦
011- ¦
1101 ¦
1-01 *
Quando usato in combinazione,
segnare con |. Se non combinabile, 1111 ¦
-111 ¦
segnare con *. Questi sono gli
11-1 ¦
implicanti primi.
Ripetere il passo 2 finche’ non si possono piu creare combinazioni
© R.H. Katz 2-76
Porte logiche: strumenti CAD per la semplificazione
Metodo di Quine-Mc Cluskey
AB
00
CD
00 X
01
0
A
Reti logiche
Logica a 2 livelli
Implicanti primi:
01
11
10
1
0
1
0-00 = A' C' D'
-000 = B' C' D'
1
1
1
100- = A B' C'
10-0 = A B' D'
01-- = A' B
D
11
0
X
X
0
1-01 = A C' D
10
0
1
0
1
-1-1 = B D
C
B
© R.H. Katz 2-77
Reti logiche
Logica a 2 livelli
Porte logiche: strumenti CAD per la semplificazione
Metodo di Quine-Mc Cluskey
AB
00
CD
00 X
01
0
A
Implicanti primi:
01
11
10
1
0
1
0-00 = A' C' D'
-000 = B' C' D'
1
1
1
100- = A B' C'
10-0 = A B' D'
01-- = A' B
D
11
0
X
X
0
1-01 = A C' D
10
0
1
0
1
-1-1 = B D
C
B
Fase 2: Trovare il minimo insieme di primi che copre l’ON-set
(ricordando che gli essenziali devono essere sempre presenti)
Un altro metodo tabellare: la tabella degli implicanti primi
© R.H. Katz 2-78
Porte logiche: strumenti CAD per la semplificazione
Tabella degli implicanti primi
Reti logiche
Logica a 2 livelli
m4 m5 m6 m8 m9 m10 m13
0-00
-000
x
x
100-
x x
x
10-0
1-01
01--1-1
x
x
x
x
x
x
x
x
righe = implicanti primi
colonne = elementi dell’ON-set
inserire un’X se l’elemento dell’ON-set
e’ coperto dall’implicante primo
© R.H. Katz 2-79
Reti logiche
Logica a 2 livelli
Porte logiche: strumenti CAD per la semplificazione
Tabella degli implicanti primi
m4 m5 m6 m8 m9 m10 m13
0-00
-000
x
100-
-1-1
0-00
-000
x x
100-
x x
10-0
x
x
x
1-01
01--
x
x
10-0
x
x
x
m4 m5 m6 m8 m9 m10 m13
x
x
righe = implicanti primi
colonne = elementi dell’ON-set
inserire un’X se l’elemento dell’ON-set
e’ coperto dall’implicante primo
x
-1-1
x
x
1-01
01--
x
x
x
x
x
x
x
x
Se una colonna ha un solo 1,
l’implicante associato con la riga
e’ essenziale. Deve essere parte
di ogni copertura.
© R.H. Katz 2-80
Porte logiche: strumenti CAD per la semplificazione
Tabella degli implicanti primi
Reti logiche
Logica a 2 livelli
m4 m5 m6 m8 m9 m10 m13
0-00
-000
x
x
100-
x
10-0
x
-1-1
x
x
1-01
01--
x
x
x
x
x
x
x
Eliminare le colonne coperte
dagli implicanti essenziali
© R.H. Katz 2-81
Reti logiche
Logica a 2 livelli
Porte logiche: strumenti CAD per la semplificazione
Tabella degli implicanti primi
m4 m5 m6 m8 m9 m10 m13
0-00
-000
x
x
10-0
x
1-01
01--1-1
0-00
-000
x
100-
x
x
x
x
x
m4 m5 m6 m8 m9 m10 m13
x
x
x
Eliminare le colonne coperte
dagli implicanti essenziali
x
100-
x
10-0
x
-1-1
x
x
x
1-01
01--
x
x
x
x
x
x
x
x
Trovare il minimo insieme di righe
che coprono le colonne rimaste
ƒ = A B' D' + A C' D + A' B
© R.H. Katz 2-82
Porte logiche: strumenti CAD per la semplificazione
Metodo di “espresso”
Reti logiche
Logica a 2 livelli
Problema di Quine-McCluskey: il numero di primi cresce
troppo rapidamente con il numero di ingressi
limite massimo: 3 n / n, con n ingressi
trovare copertura minima e’ NP-completo, cioe’ un problema
complesso, che molto probabilmente non avra’ mai
una soluzione efficiente
Espresso (Brayton-SanGiovanni ‘84):
trova soluzione in fretta, a spese della minimalita’
non genera tutti i primi (fase 1 di Quine-McCluskey)
sceglie attentamente un sottoinsieme di primi che coprono l’ON-set
lavora quasi come una persona che cerca i primi in una mappa
© R.H. Katz 2-83
Porte logiche: strumenti CAD per la semplificazione
Reti logiche
Logica a 2 livelli
Cenni sul metodo di “espresso”
1. Espandere gli implicanti alla loro dimensione massima
Implicanti coperti non sono piu’ considerati
La qualita’ dei risultati dipende dall’ordine di espansione
Metodo euristico usato per decidere l’ordine
Il passo e’ chiamato EXPAND
2.
Estrarre una copertura non ridondante (cioe’ nessun sottoinsieme
e’ una copertura) dall’insieme degli implicanti.
Simile alla fase 2 di Quine-McCluskey (tabella dei primi)
Identificare gli implicanti essenziali
Il passo e’ chiamato IRREDUNDANT COVER
3.
A questo punto la soluzione e’ buona, ma migliorabile
Puo’ esistere una copertura con meno primi o meno letterali
Ridurre ogni primo alla minima dimensione che copre l’ON-set
Il passo e’ chiamato REDUCE
4.
Ripetere REDUCE/EXPAND/IRREDUNDANT COVER per trovare
(se possibile) altri implicanti primi
Ripetere l’operazione finche’ ci sono miglioramenti
© R.H. Katz 2-84
Porte logiche: strumenti CAD per la semplificazione
Ingresso ed uscita di espresso
Reti logiche
Logica a 2 livelli
ƒ(A,B,C,D) = m(4,5,6,8,9,10,13) + d(0,7,15)
Ingresso di espresso
.i 4
.o 1
.ilb a b c d
.ob f
.p 10
0100 1
0101 1
0110 1
1000 1
1001 1
1010 1
1101 1
0000 0111 1111 .e
Uscita di espresso
-- # ingressi
-- # uscite
-- nomi ingressi
-- nomi uscite
-- numero termini prodotto
-- A'BC'D'
-- A'BC'D
-- A'BCD'
-- AB'C'D'
-- AB'C'D
-- AB'CD'
-- ABC'D
-- A'B'C'D' don't care
-- A'BCD don't care
-- ABCD don't care
-- fine lista
.i 4
.o 1
.ilb a b c d
.ob f
.p 3
1-01 1
10-0 1
01-- 1
.e
ƒ = A C' D + A B' D' + A' B
© R.H. Katz 2-85
Reti logiche
Logica a 2 livelli
Porte logiche: strumenti CAD per la semplificazione
Espresso: perche’ iterare Expand / Irredundant cover / Reduce?
A
AB
00
01
11
10
00
1
1
0
0
01
1
1
1
1
CD
A
AB
00
01
11
10
00
1
1
0
0
01
1
1
1
1
CD
D
11
0
0
1
D
1
C
11
0
0
1
1
10
1
1
1
1
C
10
1
1
1
B
Insieme iniziale di primi
trovato dai passi 1 e 2
di espresso
4 primi, non ridondante,
ma non minima!
1
B
Risultato di REDUCE:
riduzione dei primi
mantenendo la copertura
dell’ON-set
La scelta dell’ordine di riduzione
e’ importante!
© R.H. Katz 2-86
Reti logiche
Logica a 2 livelli
Porte logiche: strumenti CAD per la semplificazione
Iterazione in espresso
A
AB
00
01
11
10
00
1
1
0
0
01
1
1
1
1
CD
A
AB
00
01
11
10
00
1
1
0
0
01
1
1
1
1
CD
D
11
0
0
1
D
1
C
11
0
0
1
1
10
1
1
1
1
C
10
1
1
1
1
B
Il secondo EXPAND genera
un insieme diverso di primi
B
IRREDUNDANT COVER genera
il risultato finale
Solo tre implicanti primi!
© R.H. Katz 2-87
Sommario logica a due livelli
Reti logiche
Logica a 2 livelli
Blocchi logici di base:
INVERTER (NOT), AND, OR, NAND, NOR, XOR, XNOR
Forme canoniche
Somme di prodotti, prodotti di somme
funzioni non completamente specificate/don't care
Minimizzazione logica
Obiettivo: realizzazione logica a due livelli con minimo numero
di porte e minimo numero di ingressi
Ottenuto usando:
o le leggi ed i teoremi dell’algebra booleana
o i cubi booleani ed il teorema dell’unificazione
o il metodo delle mappe (fino a 6 variabili)
o l’algoritmo di Quine-McCluskey
o lo strumento CAD Espresso
© R.H. Katz 2-88
Scarica

Capitolo 2: Logica combinatoria a due livelli Reti Logiche