Le Mappe di Karnaugh
- Il metodo delle mappe di Karnaugh fornisce una rappresentazione visiva delle funzioni booleane, facilitando la loro minimizzazione.
- Le mappe di Karnaugh sono particolarmente utili per funzioni con un numero ridotto di variabili (fino a 4 o 5).
- La minimizzazione tramite K-map si basa sull'identificazione di gruppi di 1 adiacenti, che possono essere combinati per formare termini più semplici.
- I termini più semplici prendono il nome di sotto-cubi e possono essere composti in modo da coprire più mintermini ma sempre in numero pari ad una potenza di due: 1, 2, 4, 8.
Il Metodo delle Mappe di Karnaugh
La complessità delle porte logiche digitali che implementano una funzione booleana è direttamente correlata alla complessità dell'espressione algebrica che descrive la funzione. Sebbene la rappresentazione della tabella di verità di una funzione sia unica, quando è espressa algebricamente può apparire in molte forme diverse, ma equivalenti. Le espressioni booleane possono essere semplificate con mezzi algebrici come visto nella lezione sui teoremi dell'algebra booleana.
Tuttavia, questa procedura di minimizzazione è scomoda, perché manca di regole specifiche per predire ogni passo successivo nel processo manipolativo. Il metodo delle mappe presentato in questa lezione fornisce una procedura semplice e diretta per minimizzare le funzioni booleane. Questo metodo può essere considerato come una forma pittorica di una tabella di verità. Il metodo delle mappe è anche conosciuto come il metodo della mappa di Karnaugh o K-map.
Una K-map è un diagramma composto da quadrati, con ogni quadrato che rappresenta un mintermine della funzione che deve essere minimizzata. Poiché qualsiasi funzione booleana può essere espressa come somma di mintermini, ne consegue che una funzione booleana è riconosciuta graficamente nella mappa dall'area racchiusa da quei quadrati i cui mintermini sono inclusi nella funzione. Infatti, la mappa presenta un diagramma visivo di tutti i modi possibili in cui una funzione può essere espressa in forma standard. Riconoscendo vari modelli, l'utente può derivare espressioni algebriche alternative per la stessa funzione, da cui può essere selezionata la più semplice.
Le espressioni semplificate prodotte dalla mappa sono sempre in una delle due forme standard: somma di prodotti o prodotto di somme. Si assumerà che l'espressione algebrica più semplice sia quella che ha un numero minimo di termini con il minor numero possibile di letterali in ogni termine. Questa espressione produce un diagramma circuitale con un numero minimo di porte e il numero minimo di input a ogni porta. Vedremo successivamente che l'espressione più semplice non è unica: è talvolta possibile trovare due o più espressioni che soddisfano i criteri di minimizzazione. In tal caso, qualsiasi soluzione è soddisfacente.
Mappe di Karnaugh a due Variabili
Una mappa di Karnaugh a due variabili è mostrata nella figura che segue:
Ci sono quattro mintermini per due variabili; quindi, la mappa consiste di quattro quadrati, uno per ogni mintermine. La mappa è ridisegnata di seguito per mostrare la relazione tra i quadrati e le due variabili
Lo 0 e l'1 marcati in ogni riga e colonna designano i valori delle variabili. La variabile
Se marchiamo i quadrati i cui mintermini appartengono a una data funzione, la mappa a due variabili diventa un altro modo utile per rappresentare qualsiasi delle 16 funzioni booleane di due variabili.
Come esempio, la funzione AND,
Poiché
Analogamente, la funzione OR,
Questi quadrati corrispondono ai singoli mintermini della seguente espressione algebrica:
I tre quadrati avrebbero potuto essere determinati anche dall'unione dei quadrati della variabile
In ogni esempio, i mintermini per cui la funzione è vera sono marcati con un 1.
Mappe di Karnaugh a Tre Variabili
Una mappa di Karnaugh a tre variabili è mostrata nella figura che segue:
Ci sono otto mintermini per tre variabili binarie; quindi, la mappa consiste di otto quadrati. Si noti che i mintermini sono disposti, non in una sequenza binaria, ma in una sequenza simile al codice di Gray.
La caratteristica di questa sequenza è che solo un bit cambia valore da una colonna adiacente alla successiva.
Per evidenziare questa caratteristica, ridisegniamo la mappa nella figura che segue:
In figura, la mappa è marcata con mintermini numerati in ogni riga e ogni colonna per mostrare la relazione tra i quadrati e le tre variabili. Per esempio, il quadrato assegnato a
Per comprendere l'utilità della mappa nel semplificare le funzioni booleane, dobbiamo riconoscere la proprietà di base posseduta dai quadrati adiacenti: Qualsiasi due quadrati adiacenti nella mappa differiscono per una sola variabile, che è complementata in un quadrato e non complementata nell'altro (I quadrati che sono vicini su una diagonale non sono considerati adiacenti).
Per esempio,
Qui, i due quadrati differiscono per la variabile
I prossimi quattro esempi spiegano la procedura per minimizzare una funzione booleana con una mappa di Karnaugh.
Esempio 1
Semplificare la funzione booleana che segue:
Per prima cosa costruiamo la mappa di Karnaugh inserendo un 1 in ogni quadrato del mintermine corrispondente. Questo è mostrato nella figura che segue, in cui i quadrati per i mintermini 010, 011, 100, e 101 sono marcati con 1:
Il passo successivo è trovare possibili quadrati adiacenti. Questi sono indicati nella mappa da due rettangoli colorati, ognuno che racchiude due 1:
Il rettangolo in alto a destra rappresenta l'area racchiusa da
La somma di quattro mintermini nei quadrati ombreggiati può essere sostituita da una somma di solo due termini prodotto. La somma logica di questi due termini prodotto dà l'espressione semplificata
Sotto-cubi Adiacenti
In certi casi, due quadrati nella mappa sono considerati adiacenti anche se non si toccano. Nella figura che segue,
Questa differenza può essere prontamente verificata algebricamente:
Di conseguenza, dobbiamo modificare la definizione di quadrati adiacenti per includere questo e altri casi simili. Lo facciamo considerando la mappa come disegnata su una superficie in cui i bordi destro e sinistro si toccano per formare quadrati adiacenti.
Esempio 2
Semplifichiamo la funzione booleana
La mappa per questa funzione è mostrata nella figura seguente:
Ci sono quattro quadrati marcati con 1, uno per ogni mintermine della funzione.
Adesso segniamo i quadrati adiacenti come in figura:
Due quadrati adiacenti ombreggiati nella terza colonna sono combinati per dare un termine a due letterali
Combinazioni di quattro mintermini
Consideriamo ora qualsiasi combinazione di quattro quadrati adiacenti nella mappa a tre variabili. Qualsiasi tale combinazione rappresenta la somma logica di quattro mintermini e risulta in un'espressione con solo un letterale. Come esempio, la somma logica dei quattro mintermini adiacenti 0, 2, 4, e 6 si riduce al singolo termine letterale
Il numero di quadrati adiacenti che possono essere combinati deve sempre rappresentare un numero che è una potenza di due, come 1, 2, 4, e 8.
Man mano che più quadrati adiacenti sono combinati, otteniamo un termine prodotto con meno letterali.
Un quadrato rappresenta un mintermine, dando un termine con tre letterali.
Due quadrati adiacenti rappresentano un termine con due letterali.
Quattro quadrati adiacenti rappresentano un termine con un letterale.
Otto quadrati adiacenti racchiudono l'intera mappa a tre variabili e producono una funzione che è sempre uguale a 1.
Esempio 3
Semplifichiamo la funzione booleana:
La mappa per
Troviamo i quadrati adiacenti come mostrato nella figura che segue:
Prima, combiniamo i quattro quadrati adiacenti nella prima e ultima colonna per dare il singolo termine letterale
La funzione semplificata è quindi:
Esempio 4
Se una funzione non è espressa in forma somma-di-mintermini, è possibile usare la mappa per ottenere i mintermini della funzione e poi semplificare la funzione a un'espressione con un numero minimo di termini. È necessario, tuttavia, assicurarsi che l'espressione algebrica sia in forma somma-di-prodotti. Ogni termine prodotto può essere tracciato nella mappa in uno, due, o più quadrati. I mintermini della funzione sono poi letti direttamente dalla mappa.
Chiariamo meglio con il prossimo esempio.
Per la funzione booleana
- (a) Si esprima questa funzione come somma di mintermini.
- (b) Si trovi l'espressione somma-di-prodotti minimale.
Si noti che
La funzione può essere rappresentata su di una mappa di karnaugh in questo modo:
I due quadrati corrispondenti al primo termine,
I mintermini sono letti direttamente dalla mappa come 1, 2, 3, 5, e 7. La funzione può essere riespressa in forma somma-di-mintermini come
L'espressione somma-di-prodotti, come originariamente data, ha troppi termini. Può essere semplificata, come indicato dai quadrati ombreggiati nella mappa che segue:
L'espressione risultante sarà:
Esempio 5
Semplifichiamo la funzione booleana:
Disegniamo la mappa di Karnaugh relativa:
Troviamo la copertura con i sotto-cubi più grandi:
In tal caso, il sotto-cubo rosso corrisponde al termine
Esempio 6
Semplifichiamo la funzione booleana:
Disegniamo la mappa di Karnaugh relativa:
Troviamo la copertura con i sotto-cubi più grandi:
Qui, il sotto-cubo rosso corrisponde al termine
Esempio 7
Semplifichiamo la funzione booleana:
Disegniamo la mappa di Karnaugh relativa:
Troviamo la copertura con i sotto-cubi più grandi:
In tal caso, il sotto-cubo rosso corrisponde alla singola variabile complementata
La funzione minimizzata risulta quindi: