minimizzazioni di circuiti

14
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? Le semplificazioni di una funzione logica possono essere effettuate mediante i teoremi dell'algebra di Boole Esiste un metodo molto più pratico di semplificazione che è quello costituito dalle mappe di Karnaugh

Upload: others

Post on 20-Jul-2022

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Minimizzazioni di circuiti

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

Page 2: Minimizzazioni di circuiti

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

Page 3: Minimizzazioni di circuiti

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.

Page 4: Minimizzazioni di circuiti

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)

.

Page 5: Minimizzazioni di circuiti

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

Page 6: Minimizzazioni di circuiti

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

Page 7: Minimizzazioni di circuiti

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

Page 8: Minimizzazioni di circuiti

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

Page 9: Minimizzazioni di circuiti

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)

Page 10: Minimizzazioni di circuiti

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

Page 11: Minimizzazioni di circuiti

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

Page 12: Minimizzazioni di circuiti

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

Page 13: Minimizzazioni di circuiti

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

Page 14: Minimizzazioni di circuiti

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