1
62
Minimizzazioni di circuiti
63
Esempio
xyz +x¬yz = xz(y + ¬y) = xz1 xz
64
Minimizzazione
Perché minimizzare? ¨ Riduzione del numero di porte su un chip ¨ Circuiti più affidabili ¨ Riduzione del costo per produrre il chip ¨ Introduzione di più circuiti sullo stesso chip ¨ Riduzione del tempo per calcolare output
Minimizzazione è un problema NP
65
Come minimizzare?
n Le semplificazioni di una funzione logica possono essere effettuate mediante i teoremi dell'algebra di Boole
n Esiste un metodo molto più pratico di semplificazione che è quello costituito dalle mappe di Karnaugh
2
66
Le mappe di Karnaugh (K-mappe)
b ¬b
a
¬a
ab a¬b
¬ab ¬a¬b
b ¬b
a
¬a
1 0
n Tecnica grafica per rappresentare funzioni booleane
n Esempio ¨ and
0 0
67
Le mappe di Karnaugh (cont.)
n Siano n il numero di variabili n Sono molto pratiche per n≤4 n Sono alquanto difficili da usare per n=5 e n=6 n Sono impossibili da usare per n>6
68
Vedremo … … come le K-mappe sono usate per semplificare funzioni booleane con:
¨ due variabili
¨ tre variabili
¨ quattro variabili
69
K-mappe per due variabili n Ci sono 4 possibili mintermini n K-mappa: matrice con 4 celle
¨ una cella contiene 1 se la cella che rappresenta un mintermine è presente nella somma di prodotti
n Celle adiacenti: celle che hanno un lato in comune ¨ Le celle sono disposte in modo tale che passando da una qualsiasi
ad una adiacente sulla stessa riga o sulla stessa colonna cambia di valore una sola variabile.
¨ Esempio: n ¬xy è adiacente a xy; e n ¬xy è adiacente a ¬x¬ y
3
70
Esercizio
Trovare le K-mappe per:
a) xy+¬xy b) x¬y + ¬xy c) x¬y + ¬xy + ¬x¬y
71
Soluzione a) xy +¬xy b) x¬y + ¬xy c) x¬y + ¬xy + ¬x¬y
Basta mettere 1 nella cella c quando il mintermine rappresentato da c è presente nella somma di prodotti
72
Vale …
n celle adiacenti: ¨ x¬y ; ¨ ¬x ¬y
n x¬y + ¬x ¬y = (x + ¬x) ¬y = ¬y
73
Esempio: semplificazioni
a) y b) x¬y + ¬xy c) ¬x + ¬y
a) xy +¬xy b) x¬y + ¬xy c) x¬y + ¬xy + ¬x¬y
The goal is to identify the largest possible blocks, and to cover all the 1s with the fewest blocks using the largest blocks first and always using the largest possible blocks.
4
74
Vedremo … … come le K-mappe sono usate per semplificare funzioni booleane con:
¨ due variabili
¨ tre variabili
¨ quattro variabili
75
K-mappe per tre variabili n Ci sono 8 possibili mintermini n K-mappa: matrice con 8 celle n Celle adiacenti: celle che hanno un lato in comune
¨ Devono essere considerate adiacenti anche le celle all'estremità di una riga o di una colonna, come se la mappa fosse disegnata su una superficie chiusa su se stessa
¨ Le celle sono disposte in modo tale che passando da una qualsiasi ad una adiacente sulla stessa riga o sulla stessa colonna cambia di valore una sola variabile.
76
Blocchi che possono essere combinati Minimizzazione considerando blocchi di:
• 2 celle • 4 celle • 8 celle
y¬z(x+¬x) +¬y¬z(x+¬x)= y¬z+¬y¬z= ¬z(y+¬y)= ¬z
77
Implicanti Implicante: il prodotto di letterali corrispondenti ad un blocco di tutti 1 nella K-mappa Implicante primo: blocco di 1 che non è contenuto in un blocco più grande di 1 Obiettivo:
¨ Trovare i più grandi blocchi nella mappa e coprire tutti gli 1 con il minimo numero di blocchi, usando prima i blocchi più grandi;
¨ si scelgono sempre i blocchi più grandi, ma dobbiamo scegliere un blocco se questo è l’unico che copre un 1 o più nella mappa (implicante primo essenziale)
.
5
78
Esercizio
Usare le K-mappe per semplificare:
79
Soluzione
x¬z + ¬y¬z+ ¬xyz ¬y+ ¬xz
x¬z +¬x¬ y x+¬y+ z
Nota: x¬z e ¬x ¬y sono implicanti primi essenziali. Ma ¬y ¬z è un implicante primo che non è essenziale perchè coperto da altri due
implicanti primi
80
Vedremo … … come le K-mappe sono usate per semplificare funzioni booleane con:
¨ due variabili
¨ tre variabili
¨ quattro variabili
81
K-mappe per quattro variabili n Ci sono 16 possibili mintermini n K-mappa: matrice con 16 celle n Minimizzazione considerando blocchi di:
¨ 2 celle ¨ 4 celle ¨ 8 celle ¨ 16 celle
6
82
Esempi
83
Esempio
Usare le K-mappe per semplificare:
84
Soluzione
wyz + wx¬z + w¬x¬y + ¬w¬xy + ¬w x¬yz
¬y ¬z +
w¬xy + ¬x¬z
¬z +¬wx +
w¬xy
Don’t Care Conditions
n Vi possono essere delle funzioni non completamente specificate: funzioni in cui, in corrispondenza di certi valori di ingresso, non si vuole un fissato valore di uscita, ovvero qualunque valore dell’uscita è accettabile.
n Nella mappa si indicano con d (don’t care). In fase di semplificazione di una funzione ad essi si può assegnare valore 1 oppure 0 a seconda se permettono di ottenere accoppiamenti più grandi e quindi maggiori semplificazioni.
85
7
Don’t Care Conditions: un esempio
n Codifica Binary-coded decimal (BCD) ¨ rappresentare le cifre decimali in codice binario ¨ ogni cifra di un numero è rappresentata da un codice
binario di quattro bit, il cui valore è compreso tra 0 (0000) e 9 (1001). Le restanti sei combinazioni non sono usate
¨ Per esempio, 873 is encoded as 1000 0111 0011
86
Don’t Care Conditions: un es.: (cont.)
Costruire un circuito che produce 1 se la cifra decimale è maggiore oppure uguale a 5
87
88 89
Esercizi
8
90
Esercizio
Trovare mintermine che vale 1 nei seguenti casi: a) x=y=0, z=1; b) x=0, y=1, z=0; c) x=0, y=z,=1; d) x=y=z=0
91
Soluzione
a) ¬x¬yz b) ¬xy¬z c) ¬xyz d) ¬x¬y¬z
a) x=y=0, z=1; b) x=0, y=1, z=0; c) x=0, y=z =1; d) x=y=z=0
Esercizio
Trovare l’espansione somma di prodotti delle seguenti funzioni:
92
Soluzione: a)
¬x¬yz + ¬xy¬z + ¬xyz + x¬y¬z + x¬yz + xy¬z + + xyz
93
9
Soluzione: b) Con la tabella di verità: ¬xyz + xy¬z + xyz ============== (x+z)y = xy + yz = xy1 + 1yz = xy(z + ¬z) + (x + ¬x) yz xyz + xy¬z + xyz + ¬xyz xyz + xy¬z + ¬xyz
94
Soluzione: c)
x¬y¬z + x¬yz + xy¬z + xyz
95
Soluzione: d)
x¬y¬z + x¬yz
96 97
Costruire una K-mappa per
F(x,y,z) =x ¬z + xyz +y¬z
Usare questa mappa per trovare gli implicanti, gli implicanti primi e gli implicanti essenziali di F(x,y,z)
10
98
Soluzione
Implicanti: xyz, xy¬z, x¬y¬z, ¬xy ¬z, xy, x¬z, y¬z Implicanti primi: xy, x¬z, y¬z Implicanti essenziali: xy, x¬z, y¬z
1 1
1
1
F(x,y,z) =x ¬z + xyz +y¬z
99
Esercizio
Usare una K-mapppa per minimizzare le seguenti funzioni: a) ¬xyz + ¬x ¬yz b) xyz + xy ¬z + ¬xyz + ¬xy ¬z
100
Soluzione
1 1
a) ¬xyz + ¬x ¬yz
¬xz ¬xyz + ¬x ¬yz ¬xz(y + ¬ y) ¬xz(1) ¬xz 101
Soluzione b) xyz + xy ¬z + ¬xyz + ¬xy ¬z
1
1 1
1
y
xyz + xy ¬z + ¬xyz + ¬xy ¬z xy(z +¬z) + ¬xy(z +¬z) xy(1) + ¬xy(1) xy+ ¬xy y(x+ ¬x) y1 y
11
102
Riprendiamo l’esercizio ….
Una commissione è costituita da tre membri. Una proposta passa se riceve almeno 2 voti favorevoli. Realizzare una funzione che stabilisce se una proposta passa o non passa. Disegnare il circuito risultante.
103
Soluzione n x=1 (risp. x=0) se il primo membro vota sì (risp. vota no) n y=1 (risp. y=0) se il secondo membro vota sì (risp. vota no) n z=1 (risp. z=0) se il terzo membro vota sì (risp. vota no)
x y z F
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 1
¬xyz + x¬yz + xy¬z +xyz
104
Soluzione (cont) ¬xyz + x¬yz + xy¬z +xyz xz(¬y + y) + ¬xyz + xy¬z xz + ¬xyz + xy¬z z(x + ¬xy) + xy¬z z(x + y) + xy¬z zx + zy + xy¬z zx + y(z + x¬z) zx + y(z + x) zx + yz + xy xy + xz +yz
x + ¬xy x(1+y) + ¬xy x + xy + ¬xy x +(x + ¬x)y x+y
105
… usando K-mappa
1 1
1
1
xy + xz +yz
¬xyz + x¬yz + xy¬z +xyz
12
Esercizio
Comparatore (a<=b) 1 bit
106
Soluzione
107
Tabella di verità
b ¬b
a 1
¬a 1 1
K-mappa
q = b + ¬a
Esercizio Sia s = xyz una sequenza binaria (x è il bit di peso maggiore). Si consideri la funzione booleana f( x, y, z) che è vera se |M|=|C| dove, supponendo che s sia la rappresentazione di un numero intero e “| |” rappresenti il modulo:
¨ M è il numero intero corrispondente alla sequenza di bit s, sapendo che la macchina usa la rappresentazione in modulo e segno;
¨ C è il numero intero corrispondente alla sequenza di bit s, sapendo che la macchina usa la rappresentazione in complemento alla base.
n Scrivere la tabella di verità di f. n Determinare l’espressione booleana di f espressa in forma normale disgiunta
(somma di prodotti) e semplificarla mediante le mappe di Karnaugh. n Fornire il circuito risultante della funzione ridotta.
108
Soluzione: tabella di verità
109
x y z M C f |M| = |C|
0 0 0 0 0 1 0 0 1 1 1 1 0 1 0 2 2 1 0 1 1 3 3 1 1 0 0 -0 -4 0 1 0 1 -1 -3 0 1 1 0 -2 -2 1 1 1 1 -3 -1 0
f = ¬x¬y¬z + ¬x¬yz + ¬xy¬z + ¬xyz + xy¬z
13
Soluzione: semplificazione
110
yz y¬z ¬y¬z ¬yz
x 1
¬x 1 1 1 1
f = ¬x¬y¬z + ¬x¬yz + ¬xy¬z + ¬xyz + xy¬z
f_ridotta =¬x + y¬z
Soluzione: circuito f=¬x + y¬z
z
x
y f
Esercizio Determinare la funzione minima della seguente mappa di Karnaugh e realizzare il circuito corrispondente.
112
ab a¬b ¬a¬b ¬ab
cd 1
c¬d 1
¬c¬d 1 1
¬cd 1 1 1 1
Soluzione
¬c¬b + ¬cd + abd + ¬abc¬d
113
c
a
d
b
14
Esercizio Determinare la funzione minima della seguente mappa di Karnaugh.
114
ab a¬b ¬a¬b ¬ab
cd 1
c¬d 1 1 1
¬c¬d 1 1 1
¬cd 1
Soluzione
115
ab a¬b ¬a¬b ¬ab
cd 1
c¬d 1 1 1
¬c¬d 1 1 1
¬cd 1
Minima: ac¬d + a¬b¬c + ¬a¬bc + ¬a¬c¬d
Non minima
ab a¬b ¬a¬b ¬ab
cd 1
c¬d 1 1 1
¬c¬d 1 1 1
¬cd 1