edutecnica

Funzioni booleane

       

Volendo riprendere alcuni concetti intravisti nelle pagine precedenti possiamo definire:

Variabili booleane : sono variabili che possono assumere solo due valori distinti, 0, 1; vengono indicate con lettere maiuscole; come A, B, C.. .

Funzione booleana : è una funzione che dipende dai valori assunti dalle variabili booleane e quindi può assumere solo i valori 0, 1; possiamo indicare una generica funzione booleana come

Y=f(A,B,C)

Tabella della verità : la tabella della verità di una data funzione booleana esprime i valori assunti dalla stessa per tutte le possibili combinazioni delle sue variabili indipendenti.

La tabella della verità rappresenta una prima sintesi della rete combinatoria, non è detto però che l'espressione logica ottenuta rappresenti la funzione minima che realizza la rete combinatoria. Come per le coniche della geometria analitica, per esprimere una funzione booleana può esserci una forma canonica; per l'esattezza esistono due possibili forme canoniche .

1a forma canonica : forma canonica della somma (forma AND-OR)

Abbiamo questa forma quando la funzione è costituita dalla somma logica di vari termini, ciascuno dei quali è dato dal prodotto logico di tutte le variabili indipendenti della funzione stessa. Ad es.

             è in forma canonica

                  non è in forma canonica perchè il secondo termine manca della variabile C.

In quest'ultimo caso abbiamo già visto come sia possibile riportare una funzione di questo tipo in forma canonica; basta moltiplicare il termine mancante della variabile per la stessa sommata del suo complemento.

questo possiamo farlo perchè per il teorema del complemento C+C=1; da cui

che è la funzione iniziale posta in forma canonica.

Per realizzare la forma AND-OR si rilevano dalla tabella della verità gli 1 della funzione; la funzione risultante sarà costituita da tanti termini quanti sono gli 1 della stessa, ciascun termine è dato dal prodotto logico di tutte le variabili di ingresso, in forma naturale se la variabile vale 1, in forma complementata se la variabile vale 0.

ciascun termine della funzione f si chiama mintermine ed è associato ad una combinazione dei valori delle variabili indipendenti che verificano (mandano a 1) la funzione logica di uscita Y. Anche se non è ancora stata semplificata, la funzione può in ogni caso essere associata ad un circuito.

gli indici dei mintermini sono in questo caso Y=∑(1, 2, 4).

2a forma canonica : forma canonica del prodotto (forma OR-AND)

Abbiamo questa forma quando la funzione è costituita dal prodotto logico di vari fattori, ciascuno dei quali è dato dalla somma logica di tutte le variabili indipendenti della funzione stessa. Ad es.

          è in forma canonica

                    non è in forma canonica perchè nel primo fattore manca la variabile B

In questo caso, ciascun termine della funzione viene chiamato maxtermine. Per realizzare la forma canonica del prodotto, si rilevano dalla tabella della verità gli 0 della funzione, la funzione risultante sarà costituita da tanti fattori quanti sono gli 0 della stessa; ciascun fattore è dato dalla somma logica di tutte le variabili di ingresso, in forma naturale se la variabile è vale 0, in forma complementata se vale 1.
Ad es. prendiamo la precedente tabella dove avevamo come forma canonica della somma Y=∑(1, 2, 4); se vogliamo considerare la forma canonica del prodotto sarà Y=Π(0, 2, 3, 6, 7) dunque :

è chiaro che in questo caso la forma canonica della somma risulta la più semplice e conveniente da adottare, proprio perchè la quantità di 1 presenti in tabella per la funzione di uscita Y sono meno degli 0.
L'implementazione circuitale, ha un costo in termini di impiego di porte logiche, ma abbiamo visto che con l'utilizzo del metodo della mappe di karnaugh, la funzione e il circuito conseguente possono essere ulteriormente semplificati.

ottenendo la funzione risultante   

decisamente più semplice.

Le mappe di Karnaugh sono una tecnica grafica di minimizzazione che permette di passare direttamente dalla forma tabellare della funzione a quella minima. Si devono disegnare dei diagrammi (mappe) con tante caselle N quante sono le possibili configurazioni delle n variabili di ingresso cioè N=2n.  Negli esercizi eseguiti usiamo funzioni:
● a due variabili con una mappa a 4 caselle
● a tre variabili con una mappa a 8 caselle
●a quattro variabili con una mappa a 16 caselle.
esistono problemi di logica booleana che prevedono la presenza di un numero maggiore di variabili di ingresso, ci aspettiamo, in tal caso una maggiore laboriosità per l'esecuzione della minimizzazione, questo in considerazione del fatto che con
● cinque variabili, si deve avere una mappa a 32 caselle
● sei variabili, si deve avere una mappa a 64 caselle
per problemi che prevedono un numero ancora maggiore di variabili di ingresso l'utilizzo dei metodi grafici è sconsigliato, si consigliano invece metodi algebrici.


Mappe di Karnaugh a 5 variabili

       

Le mappe di Karnaugh con più di quattro variabili binarie devono essere costruite sempre rispettando la regola che nel passaggio da una casella a quella adiacente (contigua) sulla stessa riga o sulla stessa colonna deve cambiare una sola variabile.
Per quanto riguarda la semplificazione di una funzione a cinque variabili essa può essere fatta mediante una mappa di Karnaugh con 32 caselle oppure con due mappe da 16 caselle. Nel primo caso (come si vede nello schema seguente) sono da considerare adiacenti in aggiunta a quelle conosciute, anche le caselle simmetriche rispetto alla linea mediana verticale (rossa). Per esempio la casella 5 oltre ad essere adiacente alla 4, 1, 7, 13 è adiacente anche alla casella simmetrica 21.

Se vogliamo risolvere il problema con due mappe da 16 celle, oltre a tutte le relazioni di adiacenza già viste , ogni casella della mappa (a) in cui A vale sempre 0 è adiacente alla corrispondente della mappa in (b) in cui A vale sempre 1 e viceversa. Queste ultime adiacenze possono essere ben localizzate pensando di sovrapporre le due mappe e considerando adiacenti le caselle che corrispondono verticalmente.


Mappe di Karnaugh a 6 variabili

       

La semplificazione di una funzione logica a sei variabili binarie mediante il metodo delle mappe K incomincia a diventare piuttosto laboriosa, in quanto è necessario ricorrere ad una mappa di 64 caselle (26=64) come quella nel disegno seguente in cui si hanno due assi di simmetria (verticale e orizzontale).

In alternativa, la minimizzazione può essere effettuata con quattro mappe da 16 caselle ognuna. In quest'ultimo caso, oltre alle adiacenze valide per una mappa a quattro variabili sono da considerarsi adiacenti anche quelle caselle che si corrispondono orizzontalmente e verticalmente, così ad esempio la casella 13 (A=B=0) .

è adiacente alle caselle 5, 15, 9, 12, verticalmente alle caselle 45 (A=1, B=0) orizzontalmente alla 29 (A=0, B=1) mentre non è adiacente alla casella 61 (A=B=1) in quanto passando dalla 13 alla 61 variano sia A che B. Analogamente la casella 29 (A=0, B=1) è adiacente alle 21, 31, 25, 22 e orizzontalmente alla 13(A=B=0) everticalmente alla 61 (A=B=1) e non alla 45 in cui si ha cambiamento delle due variabili Ae B (A=1, B=0).

Naturalmente all'aumentare del numero di variabili della funzione da minimizzare aumenta il numero delle caselle della mappa di Karnaugh corrispondente e di conseguenza anche la difficoltà dell'operatore nella ricerca di più ampi raggruppamenti possibili in ragione di 2n. In pratica quando il numero di variabili è maggiore di cinque è preferibile passare ad altri sistemi di minimizzazione come quello di Quine McCluskey.

Esempio: minimizzare la funzione a 5 variabili

con la mappa a 32 caselle:

si ottengono i tre fattori:       poi riconoscendo che

     avremo alla fine

se proviamo con due mappe da 16 caselle

si ottiene lo stesso risultato

Altro esempio: minimizzare la funzione a 5 variabili

La mappa K con la registrazione dei dieci mintermini è la seguente.
Si può notare come siano possibili due raggruppamenti da quattro 1 adiacenti e uno da due.

ne consegue

allo stesso risultato si poteva arrivare usando il metodo delle due mappe da 16 caselle una per A=0 (a sinistra) e l'altra per A=1 (a destra)

infatti unendo i risultati   mentre  

in definitiva avremo come nella mappa a 32 caselle

Esempio di funzione a 6 variabili

Nella mappa a 64 caselle avremo la situazione seguente

dalla quale può essere dedotta la funzione minima

dalle quattro mappe da 16 caselle si individuare quattro raggruppamenti di 1 adiacenti, uno (blu) su un'ica mappa, uno orizzontale, uno verticale ed uno allineato orizzontalmente e verticalmente su tutte quattro le mappe.

utilizzando i colori si riconoscono gli stessi termini ottenuti con la mappa a 64 caselle che possono estratti.

Ulteriore esempio di funzione a 6 variabili con quattro mappe da 16 caselle

La scelta delle variabili A e/o B come riferimenti fissi per la scrittura di un sistema di quattro mappe per una funzione logica a 6 variabili (ma anche per 5 variabili) non è vincolante.
Di seguito riportiamo un esempio della minimizzazione per una funzione logica a 6 variabili con riferimento alle variabili E ed F costituita da diciotto mintermini.

che restituisce la funzione semplificata