Minimizzazione di reti/funzioni logiche con le Mappe di ... · Mappe di Karnaugh • Etichettiamo...

40
Minimizzazione di reti/funzioni logiche con le Mappe di Karnaugh 12 ottobre 2015

Transcript of Minimizzazione di reti/funzioni logiche con le Mappe di ... · Mappe di Karnaugh • Etichettiamo...

Page 1: Minimizzazione di reti/funzioni logiche con le Mappe di ... · Mappe di Karnaugh • Etichettiamo ogni casella con la corrispondente configurazione degli input –Ogni casella identifica

Minimizzazione di reti/funzioni logiche

con le Mappe di Karnaugh

12 ottobre 2015

Page 2: Minimizzazione di reti/funzioni logiche con le Mappe di ... · Mappe di Karnaugh • Etichettiamo ogni casella con la corrispondente configurazione degli input –Ogni casella identifica

Punto della situazione

• Stiamo studiando le reti logiche costruite a partire dalle porte logiche AND, OR, NOT per progettare l’ALU (Unità Logico Aritmetica), componente essenziale del calcolatore.

• Reti logiche = espressioni booleane

• Obiettivo di oggi: minimizzazione di espressioni SOP con le mappe di Karnaugh

Page 3: Minimizzazione di reti/funzioni logiche con le Mappe di ... · Mappe di Karnaugh • Etichettiamo ogni casella con la corrispondente configurazione degli input –Ogni casella identifica

Operatori logici

• Una funzione di variabili binarie e a valore binario viene detta funzione logica o di commutazione.

• Ogni funzione logica può essere definita in termini di semplici operatori logici di 1 o 2 variabili: AND, OR, NOT.

• Esistono però degli altri operatori logici importanti: XOR, NAND, NOR.

Page 4: Minimizzazione di reti/funzioni logiche con le Mappe di ... · Mappe di Karnaugh • Etichettiamo ogni casella con la corrispondente configurazione degli input –Ogni casella identifica

La combinazione delle variabili e degli operatori viene chiamata espressione logica o booleana.

Page 5: Minimizzazione di reti/funzioni logiche con le Mappe di ... · Mappe di Karnaugh • Etichettiamo ogni casella con la corrispondente configurazione degli input –Ogni casella identifica

Espressione SOPLetterale = variabile o la sua negazione

• Un’espressione booleana è in forma normale SOP(Sum Of Products) quando è l’OR/somma di AND/prodotto di letterali

• Mintermine = prodotto di letterali in cui compare ognivariabile o vera o negata

• Una espressione normale SOP è in forma canonica SOP se i suoi termini sono tutti mintermini

Scambiando Somma con Prodotto si definiscono le espressioni POS

3131321 xxxxxxx

321321321 xxxxxxxxx

Page 6: Minimizzazione di reti/funzioni logiche con le Mappe di ... · Mappe di Karnaugh • Etichettiamo ogni casella con la corrispondente configurazione degli input –Ogni casella identifica

Risultati principali

Corrispondenza fra funzioni logiche e reti logiche:

Analisi: data una rete determinare la funzione calcolata

Sintesi: data una funzione logica costruire una rete che la calcola

• Per ogni funzione logica possiamo costruire una rete logica che la realizza e viceversa

• Ogni funzione logica può essere espressa in termini soltanto di AND, OR, NOT.

Page 7: Minimizzazione di reti/funzioni logiche con le Mappe di ... · Mappe di Karnaugh • Etichettiamo ogni casella con la corrispondente configurazione degli input –Ogni casella identifica

Analisi e Sintesi di reti

• Analisi è abbastanza semplice:– Calcola per ogni porta logica di cui sono specificati

tutti gli input l’espressione booleana associataall’output• Fino ad ottenere l’espressione associata al terminale d’uscita

della rete

• Per la sintesi di una funzione logica f:1. Da f alla tavola di verità2. Dalla tavola di verità all’espressione «SOP»3. Dall’espressione «SOP» ad una rete a due stadi: il primo di

porte AND, il secondo con una sola porta OR

Page 8: Minimizzazione di reti/funzioni logiche con le Mappe di ... · Mappe di Karnaugh • Etichettiamo ogni casella con la corrispondente configurazione degli input –Ogni casella identifica

Tavole di verità di minterminiPer ogni mintermine, la tavola di verità ha un solo valore 1.

Per esempio:

se f = x3 x2 x1 allora avrà un solo 1 in corrispondenza di x3=0, x2=1, x1=1.

• Ricorda:

• Il prodotto è 1 sse ogni fattore è 1x3 x2 x1 f

0 0 0 0

0 0 1 0

0 1 0 0

0 1 1 1

1 0 0 0

1 0 1 0

1 1 0 0

1 1 1 0

Viceversa, se la tavola di verità di f ha un solo valore 1 necessariamente f è un mintermine.

f = x3 x2 x1

Page 9: Minimizzazione di reti/funzioni logiche con le Mappe di ... · Mappe di Karnaugh • Etichettiamo ogni casella con la corrispondente configurazione degli input –Ogni casella identifica

Dalla tavola di verità alla SOP: esempio 1Supponiamo di avere una funzione f data tramite la sua tavola di verità

Espressione canonica SOP

x3 x2 x1 f

0 0 0 0

0 0 1 1

0 1 0 0

0 1 1 1

1 0 0 1

1 0 1 0

1 1 0 1

1 1 1 0

x3 x2 x1

x3 x2 x1

x3 x2 x1

x3 x2 x1

f(x3,x2 ,x1) = x3 x2 x1 + x3 x2 x1 + x3 x2 x1 + x3 x2 x1

Page 10: Minimizzazione di reti/funzioni logiche con le Mappe di ... · Mappe di Karnaugh • Etichettiamo ogni casella con la corrispondente configurazione degli input –Ogni casella identifica

Nota

Dall’espressionecanonica SOP alla rete a due livelli SOP /AND-to-OR: nel primo livello varie porte AND, nel secondo livello solo una porta OR

Nota: le porte sono state estese in modo da poter avere più di 2 ingressi

Page 11: Minimizzazione di reti/funzioni logiche con le Mappe di ... · Mappe di Karnaugh • Etichettiamo ogni casella con la corrispondente configurazione degli input –Ogni casella identifica
Page 12: Minimizzazione di reti/funzioni logiche con le Mappe di ... · Mappe di Karnaugh • Etichettiamo ogni casella con la corrispondente configurazione degli input –Ogni casella identifica

Minimizzazione di reti combinatorie

Sinonimi:Reti logiche, reti combinatorieFunzioni logiche, booleane, di commutazione

Page 13: Minimizzazione di reti/funzioni logiche con le Mappe di ... · Mappe di Karnaugh • Etichettiamo ogni casella con la corrispondente configurazione degli input –Ogni casella identifica

Valutazione delle Prestazioni di una Rete Combinatoria

• Per ogni funzione di commutazione esistonodiverse reti combinatorie che la realizzano– Qual è la migliore?

• Quella che ha le migliori prestazioni

• Le prestazioni di una rete combinatoria vengonomisurate in termini di– Velocità– Costo

• Obiettivo: una tecnica che ci permetta di sintetizzare la rete in modo da massimizzare le prestazioni

15

Page 14: Minimizzazione di reti/funzioni logiche con le Mappe di ... · Mappe di Karnaugh • Etichettiamo ogni casella con la corrispondente configurazione degli input –Ogni casella identifica

Costo di una rete/espressione logica

• Il costo della rete dipende da– Numero di porte logiche– Numero di linee di input

• Tra tutte le reti AND-to-OR (SOP) che realizzano unacerta funzione di commutazione una rete è minimale se– Ha il minor numero di porte AND– Tra tutte quelle che hanno il minor numero di porte AND ha

il minor numero di linee di input

• Un’ espressione in forma normale SOP è minimale se– Ha il minor numero di termini prodotto possibile– Tra tutte le espressioni equivalenti che hanno il minor

numero di prodotti ha il minor numero di letterali

16

Page 15: Minimizzazione di reti/funzioni logiche con le Mappe di ... · Mappe di Karnaugh • Etichettiamo ogni casella con la corrispondente configurazione degli input –Ogni casella identifica

Minimizzazione di espressioni booleane

• La minimizzazione di espressioni booleane non è un processo semplice e diretto. Si possonoutilizzare le identità o regole dell’algebra booleana.

• Per poche variabili invece è possibile utilizzare la Mappa di Karnaugh per semplificare il processo

– una rappresentazione particolare delle tavole di veritàche consente di individuare facilmente i minterminiadiacenti

– Utile fino a 4 variabili

17

Page 16: Minimizzazione di reti/funzioni logiche con le Mappe di ... · Mappe di Karnaugh • Etichettiamo ogni casella con la corrispondente configurazione degli input –Ogni casella identifica
Page 17: Minimizzazione di reti/funzioni logiche con le Mappe di ... · Mappe di Karnaugh • Etichettiamo ogni casella con la corrispondente configurazione degli input –Ogni casella identifica

Sintesi di una Rete Minimale

• Data una funzione di commutazione, vogliamosintetizzare una rete combinatoria che la realizza e che

– Sia a due livelli

– Abbia costo minimo

19

Page 18: Minimizzazione di reti/funzioni logiche con le Mappe di ... · Mappe di Karnaugh • Etichettiamo ogni casella con la corrispondente configurazione degli input –Ogni casella identifica

MinterminiSia f una funzione su 3 variabili x3, x2, x1.

Letterale = variabile o la sua negazione

Mintermine = prodotto di letterali in cui compare ogni variabile o vera o negata

Ad ogni mintermine associamo una tripla binaria b3b2b1 dove bi=1 se xi compare in forma vera, 0 altrimenti. Per esempio:

0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 1

x3 x2 x1

m0

m1

m2

m3

m4

m5

m6

m7

mintermini

5)101(123 101 mmxxx

5)101(123 101 mmxxx

0)000(123 000 mmxxx

Page 19: Minimizzazione di reti/funzioni logiche con le Mappe di ... · Mappe di Karnaugh • Etichettiamo ogni casella con la corrispondente configurazione degli input –Ogni casella identifica

Minimizzazione di una Espressione SOP

• Si parte dall’espressione in forma canonica SOP

• Due mintermini sono detti adiacenti se differiscono su unasola variabile

21

1234 xxxx1234 xxxx

2341123412341234 )( xxxxxxxxxxxxxxxx

Un’espressione che contiene due mintermini adiacenti puòessere minimizzata nel seguente modo

Da 2 prodotti e 8 occorrenze di letterali siamo passati a 1 prodotto e 3 letterali

Abbiamo bisogno di un metodo che ci permette di individuarevelocemente i mintermini adiacenti

Page 20: Minimizzazione di reti/funzioni logiche con le Mappe di ... · Mappe di Karnaugh • Etichettiamo ogni casella con la corrispondente configurazione degli input –Ogni casella identifica

Rappresentazione di una funzione sulla Mappa

f = m0 + m2 + m3 + m4 + m5

0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 1

10111100

fx3 x2 x1

f0f1f2f3f4f5f6f7

m0

m1

m2

m3

m4

m5

m6

m7

mintermini f0

f1

f2

f3

f6

f7

f4

f5

1

0

1

1

0

0

1

1

1 1

Rappresentata con la tavola di verità e .... con la mappa di Karnaugh

Nella colonna i mintermini vicini non sono adiacenti: m1=001 non è adiacente di m2=010.Nella mappa invece si!

Page 21: Minimizzazione di reti/funzioni logiche con le Mappe di ... · Mappe di Karnaugh • Etichettiamo ogni casella con la corrispondente configurazione degli input –Ogni casella identifica

Mappe di Karnaugh• Sono tabelle a due dimensioni che rappresentano la tavola di verità della

funzione in un modo diverso.

• Hanno 2n quadrati se n è il numero di variabili

• Ogni quadrato contiene il valore fi di un mintermine mi

23

f0

f1

f0

f1

f2

f3

f0

f1

f2

f3

f6

f7

f4

f5

f0

f1

f4

f5

f12

f13

f8

f9

f3

f2

f7

f6

f15

f14

f11

f10

Page 22: Minimizzazione di reti/funzioni logiche con le Mappe di ... · Mappe di Karnaugh • Etichettiamo ogni casella con la corrispondente configurazione degli input –Ogni casella identifica

Mappe di Karnaugh• Etichettiamo ogni casella con la corrispondente configurazione degli

input– Ogni casella identifica un mintermine– Le etichette di caselle adiacenti sulla mappa differiscono per un solo bit

e corrispondono a mintermini adiacenti. Sono adiacenti anche le caselledella prima e ultima colonna, etc. La mappa è un toroide (o ciambella….)

24

0

1

00

01

10

11

0000

0001

0100

0101

1100

1101

1000

1001

000

001

010

011

110

111

100

101

0011

0010

0111

0110

1111

1110

1011

1010

Adiacenti

Adiacenti

Adiacenti

Page 23: Minimizzazione di reti/funzioni logiche con le Mappe di ... · Mappe di Karnaugh • Etichettiamo ogni casella con la corrispondente configurazione degli input –Ogni casella identifica

Mappe di Karnaugh• Etichettiamo ogni casella con la corrispondente configurazione degli

input– Ogni casella identifica un mintermine– Le etichette di caselle adiacenti sulla mappa differiscono per un solo bit

e corrispondono a mintermini adiacenti

25

0

1

00

01

10

11

000

001

010

011

110

111

100

101

0000

0001

0100

0101

1100

1101

1000

1001

0011

0010

0111

0110

1111

1110

1011

1010

x4x3

00 01 11 10x2x1

00

01

11

10

Adiacenti

x3x2

00 01 11 10x1

Adiacenti

0

1

Page 24: Minimizzazione di reti/funzioni logiche con le Mappe di ... · Mappe di Karnaugh • Etichettiamo ogni casella con la corrispondente configurazione degli input –Ogni casella identifica

Etichettatura delle Mappe di KarnaughLe righe sui bordi della tabelle identificano le aree dellatabella contenenti caselle in cui una certa variabile èpresente in forma vera (1)

26

x1 x1

x2

x1

x2

x3

x1

x2

x3

x4

0

1

00

01

10

11

0000

0001

0100

0101

1100

1101

1000

1001

000

001

010

011

110

111

100

101

0011

0010

0111

0110

1111

1110

1011

1010

Page 25: Minimizzazione di reti/funzioni logiche con le Mappe di ... · Mappe di Karnaugh • Etichettiamo ogni casella con la corrispondente configurazione degli input –Ogni casella identifica

Rappresentazione di Prodotti sulla Mappa28

x1

x2

x3

x4

23 xxf

x2

x3

Un prodotto di letterali appare sulla mappa come l’intersezionedelle regioni corrispondenti a ciascuno dei letterali Tutte le celle nella regione individuata contengono 1 e le altre

contengono 0

23 xx

Page 26: Minimizzazione di reti/funzioni logiche con le Mappe di ... · Mappe di Karnaugh • Etichettiamo ogni casella con la corrispondente configurazione degli input –Ogni casella identifica

…continua

x1

x2

x3

x4

0000

0001

0100

0101

1100

1101

1000

1001

0011

0010

0111

0110

1111

1110

1011

1010

0

0

1

1

1

1

0

0

0

0

0

0

0

0

0

0

23 xxf

Page 27: Minimizzazione di reti/funzioni logiche con le Mappe di ... · Mappe di Karnaugh • Etichettiamo ogni casella con la corrispondente configurazione degli input –Ogni casella identifica

Rappresentazione di Prodotti sulla Mappa

• Sulla mappa per 4 variabili– Un prodotto di 1 letterale identifica una regione di 8 celle– Un prodotto di 2 letterali identifica una regione di 4 celle– Un prodotto di 3 letterali identifica una regione di 2 celle– Un prodotto di 4 letterali (mintermine) identifica una singola

cella

• Le celle della regione devono essere adiacenti– Celle su bordi opposti della mappa sono adiacenti– La mappa è un toroide

• Per convenzione la regione identificata da un prodotto di letterali contenente 2k celle è detta k-cubo

30

Page 28: Minimizzazione di reti/funzioni logiche con le Mappe di ... · Mappe di Karnaugh • Etichettiamo ogni casella con la corrispondente configurazione degli input –Ogni casella identifica

Alcuni possibili cubi

Page 29: Minimizzazione di reti/funzioni logiche con le Mappe di ... · Mappe di Karnaugh • Etichettiamo ogni casella con la corrispondente configurazione degli input –Ogni casella identifica

Riprendiamo l’esempio di prima

f (x3, x2, x1) = m0 + m2 + m3 + m4 + m5

f0

f1

f2

f3

f6

f7

f4

f5x1

x3

x2

1

0

1

1

0

0

1

1x1

x3

x2

123123123123123 xxxxxxxxxxxxxxxf

2323123

11231123123 )()(

xxxxxxx

xxxxxxxxxxx

Dalla tavola di verità otteniamo la f come somma di 5 mintermini (le 5 occorrenze di 1) e poi possiamo ridurre 2 coppie di mintermini adiacenti in 2 prodotti di letterali. Sulla mappa possiamo individuare facilmente le coppie di minterminiadiacenti.

Page 30: Minimizzazione di reti/funzioni logiche con le Mappe di ... · Mappe di Karnaugh • Etichettiamo ogni casella con la corrispondente configurazione degli input –Ogni casella identifica

Costruzione di Espressioni SOP a partire dallaMappa di Karnaugh

• Data la rappresentazione di una funzione sulla Mappa di Karnaugh possiamo “ricoprirla” con una serie di cubi taliche– Ogni cubo contenga solo celle con valore 1

– Ogni 1 della tavola di verità sia ricoperto da almeno un cubo

33

Ogni cubo rappresentaun prodotto di letterali

L’unione dei cubi èun’espressione normalein forma SOP

1

x3

x2

1

0 1 0 1

0 1

2323123 xxxxxxxf

x1

Page 31: Minimizzazione di reti/funzioni logiche con le Mappe di ... · Mappe di Karnaugh • Etichettiamo ogni casella con la corrispondente configurazione degli input –Ogni casella identifica

Insiemi minimali di Cubi• Tra tutti gli insiemi di cubi che ricoprono una funzione

quelli minimali sono gli insiemi che:

– Contengono il minor numero possibile di cubi/termini prodottoe, a parità di numero, quelli più grandi

34

Insieme di cubi minimale

1

x3

x2

1

0 1 0

0

Insieme di cubi non minimale

x1

23123123123 xxxxxxxxxxxf 2323123 xxxxxxxf

1

x3

x2

1

0 1 0 1

0 1

x1 1

1

Page 32: Minimizzazione di reti/funzioni logiche con le Mappe di ... · Mappe di Karnaugh • Etichettiamo ogni casella con la corrispondente configurazione degli input –Ogni casella identifica

Procedura di Minimizzazione

Data la funzione di commutazione f espressa tramite la suatavola di verità rappresentata su una mappa di Karnaugh

1. Per ogni 1 nella mappa determiniamo i cubi massimali, cioè non contenuti in altri cubi, che lo contengono e che ricoprono solo celle contenenti 1

2. Individuiamo i cubi massimali essenziali– Cubi che ricoprono 1 coperti solo da quel cubo massimale

3. Scegliamo un insieme minimale di cubi massimali chericoprono gli 1 lasciati scoperti dai cubi essenziali

Page 33: Minimizzazione di reti/funzioni logiche con le Mappe di ... · Mappe di Karnaugh • Etichettiamo ogni casella con la corrispondente configurazione degli input –Ogni casella identifica

Esempio di Minimizzazione 1

36

),,,,,,,,,( 15141211876310 mmmmmmmmmmORf

x1

x2

x3

x4

Cubi massimali:

x1

x2

x3

x4

Cubi essenziali:

Page 34: Minimizzazione di reti/funzioni logiche con le Mappe di ... · Mappe di Karnaugh • Etichettiamo ogni casella con la corrispondente configurazione degli input –Ogni casella identifica

Esempio di Minimizzazione 1 (ctd.)

37

),,,,,,,,,( 15141211876310 mmmmmmmmmmORf

x1

x2

x3

x4

Cubo essenziale

4214322132 xxxxxxxxxxf

10 termini /porte AND40 letterali/ linee di input

4 termini /porte AND10 letterali/linee di input

Insieme minimale:

Page 35: Minimizzazione di reti/funzioni logiche con le Mappe di ... · Mappe di Karnaugh • Etichettiamo ogni casella con la corrispondente configurazione degli input –Ogni casella identifica

Esempio di Minimizzazione 2

),,,,,,,( 14111076310 mmmmmmmmORf

x1

x2

x3

x4

Cubi essenziali

x1

x2

x3

x4

Cubi massimali

Page 36: Minimizzazione di reti/funzioni logiche con le Mappe di ... · Mappe di Karnaugh • Etichettiamo ogni casella con la corrispondente configurazione degli input –Ogni casella identifica

Esempio di Minimizzazione 2 (ctd.)

),,,,,,,( 14111076310 mmmmmmmmORf

x1

x2

x3

x4

Cubo essenziale

432432

421321

xxxxxx

xxxxxxf

x1

x2

x3

x4

432432

321421

xxxxxx

xxxxxxf

Due soluzioni distinte minimali!

Page 37: Minimizzazione di reti/funzioni logiche con le Mappe di ... · Mappe di Karnaugh • Etichettiamo ogni casella con la corrispondente configurazione degli input –Ogni casella identifica

Esempio (maggioranza)Sia f(x3,x2,x1) la funzione che vale 1 se (e solo se) la maggioranza delle variabili vale 1.

Ieri abbiamo visto:

x3 x2 x1 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

123123123123123 ),,( xxxxxxxxxxxxxxxf

f = m3 + m5 +m6 + m7

231312 xxxxxx

Page 38: Minimizzazione di reti/funzioni logiche con le Mappe di ... · Mappe di Karnaugh • Etichettiamo ogni casella con la corrispondente configurazione degli input –Ogni casella identifica

Rappresentazione della funzione sulla Mappa

f0

f1

f2

f3

f6

f7

f4

f5x1

x3

x2

0

0

0

1

1

1

0

1x1

x3

x2

f = m3 + m5 +m6 + m7

0

0

0

1

1

1

0

1x1

x3

x2

231312 xxxxxxf

Page 39: Minimizzazione di reti/funzioni logiche con le Mappe di ... · Mappe di Karnaugh • Etichettiamo ogni casella con la corrispondente configurazione degli input –Ogni casella identifica

Riepilogo e riferimenti

• Analisi e sintesi di rete logiche

• Minimizzazione di reti logiche con le mappe di Karnaugh

[PH] appendice B.1, B.2

[PH_IIIed] appendice C.1, C.2, C.3

[P] par. 4.1, 4.2, 4.3, 4.4.

Page 40: Minimizzazione di reti/funzioni logiche con le Mappe di ... · Mappe di Karnaugh • Etichettiamo ogni casella con la corrispondente configurazione degli input –Ogni casella identifica