Funzioni Booleane
- Una funzione booleana è un'espressione algebrica che descrive una relazione logica tra variabili binarie.
- Le funzioni booleane possono essere rappresentate in tabelle di verità, che mostrano il valore della funzione per tutte le combinazioni possibili delle variabili.
- Un diagramma di circuito logico può essere creato da un'espressione booleana, mostrando come le porte logiche sono connesse per implementare la funzione.
- Le funzioni booleane possono essere semplificate usando le identità dell'algebra booleana, riducendo il numero di porte e connessioni necessarie in un circuito.
- Un letterale è una singola variabile in un termine di un'espressione booleana, che può essere in forma complementata o non complementata.
- Un termine è un prodotto di letterali, e un'espressione booleana è una somma di termini.
Funzioni Booleane
L'algebra booleana è un'algebra che si occupa di variabili binarie e operazioni logiche.
Una funzione booleana descritta da un'espressione algebrica consiste di variabili binarie, le costanti 0 e 1, e i simboli delle operazioni logiche. Per un dato valore delle variabili binarie, la funzione può essere uguale a 1 o 0. Come esempio, consideriamo la funzione booleana
La funzione
L'operazione di complemento stabilisce che quando
Una funzione booleana può essere rappresentata in una tabella di verità. Il numero di righe nella tabella di verità è
0 | 0 | 0 | 0 |
0 | 0 | 1 | 1 |
0 | 1 | 0 | 0 |
0 | 1 | 1 | 0 |
1 | 0 | 0 | 1 |
1 | 0 | 1 | 1 |
1 | 1 | 0 | 1 |
1 | 1 | 1 | 1 |
Le combinazioni binarie per la tabella di verità sono ottenute dai numeri binari contando da 0 fino a
Una funzione booleana può essere trasformata da un'espressione algebrica in un diagramma circuitale composto da porte logiche connesse in una struttura particolare. Il diagramma del circuito logico (chiamato anche schema) per
C'è un invertitore per l'input
C'è solo un modo in cui una funzione booleana può essere rappresentata in una tabella di verità. Tuttavia, quando la funzione è in forma algebrica, può essere espressa in una varietà di modi, ognuno dei quali ha logica equivalente. L'espressione particolare usata per rappresentare la funzione determinerà l'interconnessione delle porte nel diagramma del circuito logico. Viceversa, l'interconnessione delle porte determinerà l'espressione logica. Ecco un fatto chiave che motiva il nostro uso dell'algebra booleana: manipolando un'espressione booleana secondo le regole dell'algebra booleana, è talvolta possibile ottenere un'espressione più semplice per la stessa funzione e quindi ridurre il numero di porte nel circuito e il numero di input del circuito. I progettisti sono motivati a ridurre la complessità e il numero di porte perché il loro sforzo può ridurre significativamente il costo di un circuito.
Consideriamo, per esempio, la seguente funzione booleana:
Questa funzione ha la seguente tabella di verità:
0 | 0 | 0 | 0 |
0 | 0 | 1 | 1 |
0 | 1 | 0 | 0 |
0 | 1 | 1 | 1 |
1 | 0 | 0 | 1 |
1 | 0 | 1 | 1 |
1 | 1 | 0 | 0 |
1 | 1 | 1 | 0 |
Uno schema di un'implementazione di questa funzione con porte logiche è mostrato nella figura che segue:
Le variabili di input
Ora consideriamo la possibile semplificazione della funzione applicando alcune delle identità dell'algebra booleana:
La funzione è ridotta a solo due termini e può essere implementata con meno porte logiche e meno connessioni come mostrato nella figura seguente:
È ovvio che il secondo circuito è più semplice di quello precedente, tuttavia entrambi implementano la stessa funzione. Per mezzo di una tabella di verità, è possibile verificare che le due espressioni sono equivalenti. L'espressione semplificata è uguale a 1 quando
Pertanto, i due circuiti hanno gli stessi output per tutte le possibili combinazioni binarie di input delle tre variabili. Ogni circuito implementa la stessa identica funzione, ma quello con meno porte e meno input alle porte è preferibile perché richiede meno connessioni e componenti: in altre parole, il secondo circuito è più semplice e più economico da costruire.
In generale, ci sono molte rappresentazioni equivalenti di una funzione logica. Trovare la rappresentazione più economica della logica è un compito di progettazione molto importante a cui dedicheremo le prossime lezioni.
Manipolazioni Algebriche
Quando un'espressione booleana viene implementata con porte logiche, ogni termine richiede una porta e ogni variabile all'interno del termine designa un input per quella porta.
Definiamo un letterale come una singola variabile all'interno di un termine, in forma complementata o non complementata.
La funzione
ha tre termini e otto letterali, mentre la versione minimizzata:
ha due termini e quattro letterali.
Riducendo il numero di termini, il numero di letterali, o entrambi, in un'espressione booleana, è spesso possibile ottenere un circuito più semplice. La manipolazione dell'algebra booleana consiste principalmente nel ridurre un'espressione con lo scopo di ottenere un circuito semplificato. Le funzioni fino a cinque variabili possono essere semplificate tramite il metodo delle mappe di Karnaugh che vedremo nelle prossime lezioni.
Per funzioni booleane complesse e con molti output differenti, i progettisti di circuiti digitali utilizzano programmi di minimizzazione computerizzati in grado di produrre circuiti ottimali con milioni di porte logiche. I concetti introdotti in queste lezioni forniscono il quadro di riferimento per questi strumenti. L'unico metodo manuale disponibile è un procedimento tentativo basato sulle relazioni fondamentali e su altre tecniche di manipolazione, che, pur diventando familiari con l'uso, rimangono comunque soggette ad errori umani. Gli esempi che seguono illustrano la manipolazione algebrica dell'algebra booleana per familiarizzare il lettore con questo importante compito di progettazione.
Esempi di minimizzazione
Proviamo a minimizzare le seguenti espressioni booleane in modo da ottenere un numero minimo di letterali.
Se si osserva bene, questa espressione è la duale della precedente. La minimizzazione procede come segue:
Per dualità dall'esempio precedente, si ha:
Complemento di una Funzione
Il complemento di una funzione
Estensione del primo teorema di DeMorgan a tre variabili
Vogliamo dimostrare che:
Per prima cosa, poniamo
per il teorema di DeMorgan abbiamo che
Sostituendo
all'interno della parentesi, per il teorema di DeMorgan, si ha:
e per la proprietà associativa:
abbiamo dimostrato il teorema.
I teoremi di DeMorgan per qualsiasi numero di variabili assomigliano al caso a due variabili nella forma e possono essere derivati per sostituzioni successive simili al metodo usato nella dimostrazione precedente. Questi teoremi possono essere generalizzati come segue:
Il risultato fondamentale che si ricava dai teoremi di DeMorgan è il seguente:
Complemento di una funzione
Per ottenere il complemento di una funzione booleana bisogna:
- Scambiare gli operatori AND e OR;
- Complementare ogni letterale.
Esempi di Complemento di una Funzione
Vediamo ora alcuni esempi di come calcolare il complemento di una funzione booleana.
Si trovi il complemento della funzione:
Sfruttando il risultato fondamentale, per calcolare il complemento di
poi complementiamo ogni letterale:
Si trovi il complemento della funzione:
Anche in questo caso, dapprima convertiamo gli operatori AND in OR e viceversa:
Poi complementiamo ogni letterale:
Se poi espandiamo l'ultima espressione, otteniamo:
Esempio
Rappresentiamo il diagramma logico della funzione booleana:
Andiamo per ordine. Per prima cosa, abbiamo bisogno di una porta OR a due ingressi che combini i due termini
Poi, abbiamo bisogno di due porte AND a due ingressi, una per ciascun termine:
Infine, abbiamo bisogno di due invertitori per generare i complementi delle variabili
Adesso troviamo la tabella di verità per la funzione booleana dell'esempio:
La risposta è:
x | y | F |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |