Funzioni Booleane in Forma Standard
- Le funzioni booleane possono essere espresse in forma standard come somma di prodotti o prodotto di somme.
- La somma di prodotti consiste in termini AND seguiti da una porta OR, mentre il prodotto di somme consiste in termini OR seguiti da una porta AND.
- Le forme standard non richiedono che tutti i letterali siano presenti in ogni termine, a differenza delle forme canoniche.
- Le funzioni in forma standard sono utili per la progettazione di circuiti logici e per la minimizzazione delle funzioni booleane.
Forma Standard di una Funzione Booleana
Le due forme canoniche dell'algebra booleana sono forme di base che si ottengono dalla lettura di una data funzione dalla tabella di verità.
Sebbene utili, queste forme in casi estremamente rari sono quelle con il minor numero di letterali, perché ogni mintermine o maxtermine deve contenere, per definizione, tutte le variabili, sia complementate che non complementate. In altre parole, le forme canoniche non sono minimizzate e, pertanto, non sono le più efficienti.
Un altro modo per esprimere le funzioni booleane è in forma standard. In questa configurazione, i termini che formano la funzione possono contenere uno, due, o qualsiasi numero di letterali, ossia non è necessario che contengano tutti i letterali. Ci sono due tipi di forme standard: la somma di prodotti e i prodotti di somme.
La somma di prodotti è un'espressione booleana contenente termini AND, chiamati termini prodotto, con uno o più letterali ciascuno. La somma denota l'operazione OR di questi termini. Un esempio di una funzione espressa come somma di prodotti è
L'espressione ha tre termini prodotto, con uno, due e tre letterali. La loro somma è, in effetti, un'operazione OR.
Il diagramma logico di un'espressione somma-di-prodotti consiste di un gruppo di porte AND seguite da una singola porta OR. Questo schema di configurazione è mostrato nella figura che segue:
Ogni termine prodotto richiede una porta AND, eccetto per un termine con un singolo letterale. La somma logica è formata con una porta OR i cui input sono gli output delle porte AND e il singolo letterale. Si assume che le variabili di input siano direttamente disponibili nei loro complementi, quindi gli invertitori non sono inclusi nel diagramma. Questa configurazione di circuito è chiamata implementazione a due livelli.
Un prodotto di somme è un'espressione booleana contenente termini OR, chiamati termini somma. Ogni termine può avere qualsiasi numero di letterali. Il prodotto denota l'operazione AND di questi termini. Un esempio di una funzione espressa come prodotto di somme è
Questa espressione ha tre termini somma, con uno, due e tre letterali. Il prodotto è un'operazione AND. L'uso delle parole prodotto e somma deriva dalla similarità dell'operazione AND al prodotto aritmetico (moltiplicazione) e la similarità dell'operazione OR alla somma aritmetica (addizione). La struttura di porte dell'espressione prodotto-di-somme consiste di un gruppo di porte OR per i termini somma (eccetto per un singolo letterale), seguita da una porta AND, come mostrato nella figura seguente:
Questo tipo standard di espressione risulta in una struttura a due livelli di porte.
Funzione Booleana in Forma Standard
Una funzione booleana è espressa in Forma Standard se rispetta le seguenti regole:
-
La funzione è espressa su due livelli di porte logiche; ossia come:
- somma di prodotti: un gruppo di porte AND seguite da una porta OR;
- prodotto di somme: un gruppo di porte OR seguite da una porta AND.
-
I termini AND o OR possono contenere uno, due o più letterali, ma non è necessario che contengano tutti i letterali della funzione.
-
Ci si aspetta che le variabili di input siano disponibili anche con i loro complementi, quindi gli invertitori non sono inclusi nei diagrammi logici delle funzioni in forma standard.
Una funzione booleana può essere espressa in una forma non standard. Per esempio, la funzione
non è né in forma somma-di-prodotti né in forma prodotto-di-somme, quindi la regola 1 viene violata.
L'implementazione di questa espressione è mostrata nella figura che segue e richiede due porte AND e due porte OR. Ci sono tre livelli di porte in questo circuito.
Questa funzione può essere cambiata in una forma standard usando la legge distributiva per rimuovere le parentesi:
L'espressione somma-di-prodotti è implementata nella figura seguente:
In generale, un'implementazione a due livelli è preferita perché produce la minima quantità di ritardo attraverso le porte quando il segnale si propaga dagli input all'output. Torneremo sul tempo di ritardo delle porte logiche nelle prossime lezioni.
Tuttavia, il numero di input a una data porta potrebbe non essere pratico. Ad esempio, potrebbe non essere possibile implementare un circuito con una porta OR che ha più di 4 o 5 input. In questi casi, si potrebbe dover usare un'implementazione a tre livelli.
Esempi Pratici
Vediamo alcuni esempi pratici di funzioni booleane in forma standard.
Si prenda la funzione booleana
e la si esprima come somma di mintermini, ossia in prima forma canonica.
Per prima cosa, dobbiamo identificare i mintermini che compongono questa funzione. I mintermini sono le combinazioni di variabili che producono un risultato di 1 nella funzione. Dobbiamo, pertanto, trovare la tabella di verità della funzione
0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 1 | 0 |
0 | 0 | 1 | 0 | 1 |
0 | 0 | 1 | 1 | 1 |
0 | 1 | 0 | 0 | 0 |
0 | 1 | 0 | 1 | 0 |
0 | 1 | 1 | 0 | 0 |
0 | 1 | 1 | 1 | 0 |
1 | 0 | 0 | 0 | 1 |
1 | 0 | 0 | 1 | 1 |
1 | 0 | 1 | 0 | 1 |
1 | 0 | 1 | 1 | 1 |
1 | 1 | 0 | 0 | 1 |
1 | 1 | 0 | 1 | 1 |
1 | 1 | 1 | 0 | 1 |
1 | 1 | 1 | 1 | 1 |
Dalla tabella di verità, possiamo vedere che i mintermini che producono un risultato di 1 sono:
(riga 3 della tabella, corrispondente a ) (riga 4 della tabella, corrispondente a ) (riga 9 della tabella, corrispondente a ) (riga 10 della tabella, corrispondente a ) (riga 11 della tabella, corrispondente a ) (riga 12 della tabella, corrispondente a ) (riga 13 della tabella, corrispondente a ) (riga 14 della tabella, corrispondente a ) (riga 15 della tabella, corrispondente a ) (riga 16 della tabella, corrispondente a )
Quindi, in forma compatta la funzione
Come si può vedere, la funzione
Data la funzione
vogliamo esprimerla in seconda forma canonica, ossia come prodotto di maxtermini.
Calcoliamo la tabella di verità della funzione
0 | 0 | 0 | 0 |
0 | 0 | 1 | 0 |
0 | 1 | 0 | 1 |
0 | 1 | 1 | 1 |
1 | 0 | 0 | 0 |
1 | 0 | 1 | 1 |
1 | 1 | 0 | 0 |
1 | 1 | 1 | 1 |
I maxtermini che producono un risultato di 0 sono:
(riga 1 della tabella, corrispondente a ) (riga 2 della tabella, corrispondente a ) (riga 5 della tabella, corrispondente a ) (riga 7 della tabella, corrispondente a )
Per cui, la funzione
ossia:
Anche in questo caso, la forma canonica della funzione
Ricaviamo il diagramma logico a due livelli per implementare la funzione booleana: