Una variabile logica può assumere solo due valori, lo stato logico 0 o lo stato logico 1 (per una tensione il livello alto H o basso L).
In un circuito combinatorio, con variabili logiche in ingresso e uscita, il valore delle uscite dipende solo da quello degli ingressi.
La funzione logica svolta da un circuito combinatorio descrive il legame tra ingressi e uscite. Le funzioni logiche sono esprimibili:
L'algebra di Boole è nata nel 1800 per risolvere problemi logici. Nel secolo successivo è stata applicata all'elettronica digitale facendo corrispondere alle variabili booleane, che possono essere vere o false, delle variabili logiche, che valgono 0 o 1.
Gli assiomi sui quali si fonda l'algebra di Boole sono i seguenti:
assioma | duale |
---|---|
`1*1=1` | `0+0=0` |
`1*0=0` | `0+1=1` |
`0*1=0` | `1+0=1` |
`0*0=0` | `1+1=1` |
`bar 1 = 0` | `bar 0 = 1` |
Gli operatori logici (non aritmetici!) che compaiono sono:
Con gli operatori logici è possibile definire una espressione logica di una funzione (al posto della tabella della verità). Negli assiomi, e più in generale per ogni espressione logica, vale il principio della dualità: per ogni espressione logica vera anche la sua duale, ottenuta scambiando AND con OR e 0 con 1, risulta vera.
La figura 2 è particolarmente interessante perché mostra una interpretazione circuitale degli operatori logici appena definiti (per gli interruttori 0 corrisponde ad aperto e 1 a chiuso, per la lampada 0 a spento e 1 ad acceso).
proprietà | enunciato | duale |
---|---|---|
commutativa | `A+B=B+A` | `A*B=B*A` |
associativa | `(A+B)+C=A+(B+C)` | `(A*B)*C=A*(B*C)` |
distributiva | `A*(B+C)=(A*B)+(A*C)` | `A+(B*C)=(A+B)*(A+C)`1) |
teorema annullamento | `A+1=1` | `A*0=0` |
teorema identità | `A+0=A` | `A*1=A` |
teorema complementi | `A+bar A=1` | `A* bar A = 0` |
teorema idempotenza | `A+ A = A` | `A*A=A` |
primo teorema assorbimento | `A+(A*B)=A` | `A*(A+B)=A` |
secondo teorema assorbimento | `A+(bar A *B)=A+B` | `A*(bar A +B)= A*B` |
teorema di De Morgan2) | `bar(A+B)=bar A * bar B` | `bar (A*B)=bar A + bar B` |
NB Quando si usano più operatori logici le precedenze sono: NOT → AND → OR
Le funzioni logiche AND, OR e NOT sono dette primarie perché combinandole è possibile realizzare qualsiasi altra funzione logica. Ognuna di esse ha un simbolo, una tabella della verità e una espressione logica.
Osserviamo che:
La funzione logica AND - prodotto logico - si rappresenta col simbolo di figura 3a. La sua tabella della verità - figura 3c - mostra come l'uscita valga 1 solo se tutti gli ingressi valgono 1.
La funzione logica OR - somma logica - si rappresenta col simbolo di figura 5a. La sua tabella della verità - figura 5c - mostra come l'uscita valga 1 se almeno uno degli ingressi vale 1.
La funzione logica NOT - negazione o complementazione logica - si rappresenta col simbolo di figura 7a. La sua tabella della verità - figura 7c - mostra come l'uscita corrisponda al valore dell'ingresso negato.
Una funzione logica può essere realizzata con soluzioni circuiti diverse tra loro. La soluzione migliore è quella che usa meno funzioni logiche possibili. Il problema della minimizzazione di una funzione logica consiste proprio nel trovare la soluzione circuitale che fa uso del numero minore di porte logiche. Si può minimizzare una funzione
Dalle funzioni logiche primarie si ricavano altre funzioni utili.
La funzione logica NAND - AND negato - si rappresenta col simbolo di figura 10a. La sua tabella della verità - figura 10c - mostra come l'uscita valga 0 solo se tutti gli ingressi valgono 1. Il cerchio che segue il simbolo della porta AND rappresenta la negazione.
La funzione logica NOR - OR negato - si rappresenta col simbolo di figura 11a. La sua tabella della verità - figura 11c - mostra come l'uscita valga 1 solo se tutti gli ingressi valgono 0.
La funzione logica EX-OR (anche indicata come XOR) si rappresenta col simbolo di figura 12a. La sua tabella della verità - figura 12c - mostra come l'uscita valga 1 se è dispari il numero di 1 in ingresso.
Osservazioni:
La funzione logica EX-NOR (indicata anche con XNOR) corrisponde alla funzione EX-OR negata e si rappresenta col simbolo di figura 13a. La sua tabella della verità - figura 13c - mostra come l'uscita valga 1 se è pari il numero di 1 in ingresso. Nel caso di due soli ingressi l'uscita vale 1 se gli ingressi sono uguali tra loro.
I gruppi universali permettono di realizzare qualunque funzione logica. Sono un gruppo universale le funzioni primarie - AND, OR e NOT - ma anche la sola funzione NAND e la sola funzione NOR.
La figura 15 mostra come collegando insieme i due ingressi di una porta si ottiene la funzione NOT.
La fiugra 16 mostra come ottenere la funzione AND facendo seguire alla NAND la funzione NOT realizzata come in figura 15.
La funzione OR è più difficile da ottenere ma si dimostra, utilizzando il teorema di de Morgan che:
`A+B =bar (bar (A+B))=bar ( bar A*bar B )`
che porta alla soluzione circuitale di figura 17.
La figura 18 mostra come collegando insieme i due ingressi di una porta si ottiene la funzione NOT.
La funzione OR è allora ottenibile facendo seguire alla NOR la funzione NOT realizzata come in figura 18, come in figura 19.
La funzione AND si ottiene con un procedimento simile a quanto visto per realizzare la funzione OR con le NAND, come mostrato in figura 20.
Gli esempi 6 e 7 mostrano come realizzare una funzione logica utilizzando un solo tipo di porte logiche (NAND e NOR rispettivamente). Questa soluzione permette di semplificare il circuito e risparmiare sul numero di componenti utilizzati. Ad esempio la figura 28 mostra come sia più conveninete la soluzione con sole porte NAND perché anche se il numero di porte logiche è maggiore il circuito può essere realizzato con un solo integrato invece che tre.
Volendo è possibile seguire una procedura per ridurre funzioni logiche espresse come somma di prodotti (o prodotto di somme) con sole porte NAND o NOR come negli esempi 8, 9 e 10. Per farlo bisogna:
Nei circuiti digitali gli stato logici 0 e 1 vengono associati a un livello di tensione alto H o basso L. I valori alto e basso corrispondono in realtà a due intervalli separati da un fascia “proibita” che devone essere evitata per non avere incertezza nello stato logico.
Si parla di:
La logica positiva è quella più utilizzata. In logica negativa la funzione svolta da circuito è duale rispetto a quella in logica positiva (una NAND diventa una NOR, ecc.).
Le funzioni logiche vengono anche chiamate porte logiche (logic gates) perché il loro funzionamento può anche essere interpretato come quello di un interruttore che lascia passare o blocca un segnale digitale. Ad esempio, se nella figura 30 usiamo uno dei due ingressi per un segnale digitale e l'altro come terminale di controllo, vediamo che l'uscita replica il segnale digitale quando il segnale di controllo è alto4).
Dalla tavola della verità è possibile ricavare due espressioni canoniche che descrivono la funzione come:
dove un mintermine è il prodotto di tutte le variabili logiche di ingresso, eventualmente complementate e un maxtermine è la somma di tutte le variabili logiche di ingresso, eventualmente complementate.
Per ricavare dalla tabella della verità l'espressione della funzione nella prima forma canonica, cioè come somma di mintermini, bisogna:
Ad esempio per la tabella di figura 33 bisogna considerare le righe 1, 2, 5 e 7, dove l'uscita vale 1. Sommando i mintermini corrispondenti alle quattro combinazioni si ottiene:
`Y = bar A bar B bar C + bar A bar B C + A bar B bar C + A B bar C`
Per ricavare dalla tabella della verità l'espressione della funzione nella seconda forma canonica, cioè come prodotto di maxtermini, bisogna:
Ad esempio, sempre per la tabella di figura 33, bisogna considerare le righe 3, 4, 6 e 8, dove l'uscita vale 0. Il prodotto logico dei maxtermini corrispondenti alle quattro combinazioni è:
`Y = (A + bar B + C)(A+ bar B + C)(bar A + B + bar C)(bar A + bar B + bar C)`
Le mappe di Karnaugh sono una rappresentazione alternativa alla tabella della verità di una funzione logica. Si usano quando le variabili in ingresso sono al massimo quattro e permettono, con un procedimento, di esprimere la funzione logica come somma di prodotti o prodotto di somme in forma minima (col minor numero di operatori logici possibile).
Nella mappa di Karnaugh gli ingressi sono disposti sia in orizzontale che in verticale e, con più di due ingressi, vengono raggruppati come mostrato in figura 36. Le possibili combinazioni degli ingressi sono indicate nei due assi e ordinati in modo tra due combinazioni successive cambi un solo valore5). La tabella si riempie indicando il valore dell'uscita - 1 o 0 - per le varie combinazioni.
Per minimizzare una funzione logica espressa nella prima forma canonica (eventualmente ricavabile dalla tabella della verità) si procede così:
Nell'individuare i “rettangoli” bisogna prendere quelli più grandi possibili che permettono di “coprire” tutti gli 1 con meno rettangoli.
L'esempio 12 mostra come applicare il procedimento: dalla tabella della verità si ricava la prima espressione canonica, poi costruita la mappa si individuano 2 possibili soluzioni equivalenti (3 rettangoli da 2 caselle) e quindi i termini da sommare. E' proposto anche il circuito che realizza la funzione con delle porte logiche.
Volendo ottenere una espressione minima come prodotto di somme si procede così:
Si veda l'esempio 13 per la seconda forma canonica.
Considerando anche i casi particolari:
In Multisim è disponibile lo strumento virtuale Logic Converter. Questo strumento è utilissimo perché permette di ricavare:
Questo strumento permette di verificare facilmente tutti gli esercizi del testo. A questo scopo conviene utilizzare le porte TIL (Technology Indipendend Logic) che non specificano la famiglia logica ma si comportano che porte logiche ideali, disponibili nel gruppo Misc Digital.
Torna all'indice.