Algebra booleana e logica digitale
L’algebra booleana è il linguaggio matematico alla base dei circuiti digitali. Invece di lavorare con un numero continuo di valori, utilizza due soli stati logici: 0 e 1. Attraverso operazioni come AND, OR e NOT possiamo descrivere il comportamento di porte logiche, circuiti combinatori, registri, microcontrollori e sistemi digitali complessi.
Cos’è l’algebra booleana?
L’algebra booleana fu sviluppata dal matematico George Boole e utilizza variabili che possono assumere soltanto due stati. Nell’elettronica digitale questi stati vengono associati ai valori logici 0 e 1.
1 = vero / HIGH
L’obiettivo non è eseguire normali operazioni aritmetiche, ma stabilire come una o più condizioni logiche determinano un risultato.
Variabili booleane
Una variabile booleana, per esempio A, può assumere soltanto i valori 0 oppure 1. Con più variabili aumenta il numero delle combinazioni possibili.
| Variabili | Combinazioni |
|---|---|
| 1 | 2 |
| 2 | 4 |
| 3 | 8 |
| 4 | 16 |
Le tre operazioni fondamentali: AND, OR e NOT
AND
L’uscita vale 1 soltanto quando tutte le condizioni richieste valgono 1.
OR
L’uscita vale 1 quando almeno una delle condizioni vale 1.
NOT
Inverte lo stato logico: 0 diventa 1 e 1 diventa 0.
OR: Y = A + B
NOT: Y = ¬A
Tabelle di verità
La tabella di verità elenca tutte le possibili combinazioni degli ingressi e mostra il risultato dell’operazione logica.
AND
| A | B | A · B |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
OR
| A | B | A + B |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
NOT
| A | ¬A |
|---|---|
| 0 | 1 |
| 1 | 0 |
Operazioni logiche fondamentali
Espressioni booleane
Le operazioni possono essere combinate per descrivere funzioni più complesse. Consideriamo:
Prima viene calcolato AND tra A e B. C viene invertito. Infine i due risultati vengono combinati mediante OR. L’espressione è quindi una descrizione matematica completa della funzione logica.
A · B = 0
¬C = 1
Y = 0 + 1 = 1.
Ordine delle operazioni
Come nell’algebra tradizionale, anche le espressioni booleane seguono un ordine di precedenza.
| Priorità | Operazione |
|---|---|
| 1 | Parentesi |
| 2 | NOT |
| 3 | AND |
| 4 | OR |
Proprietà fondamentali dell’algebra booleana
| Proprietà | AND | OR |
|---|---|---|
| Identità | A · 1 = A | A + 0 = A |
| Elemento dominante | A · 0 = 0 | A + 1 = 1 |
| Idempotenza | A · A = A | A + A = A |
| Complemento | A · ¬A = 0 | A + ¬A = 1 |
| Commutativa | A · B = B · A | A + B = B + A |
Legge della doppia negazione
Invertire due volte una variabile restituisce il valore iniziale.
Teoremi di De Morgan
I teoremi di De Morgan permettono di trasformare espressioni con negazioni di gruppi e sono fondamentali nella progettazione dei circuiti logici.
¬(A + B) = ¬A · ¬B
Teoremi di De Morgan rappresentati graficamente
Perché semplificare un’espressione booleana?
Due espressioni apparentemente differenti possono produrre esattamente la stessa tabella di verità. Semplificare significa trovare una forma equivalente che richieda meno operazioni logiche.
Applicando la legge di assorbimento:
A + A · B = A
Nel circuito reale questo può significare meno porte logiche, meno collegamenti, minore consumo e spesso minore ritardo di propagazione.
Dall’espressione booleana al circuito digitale
Ogni operazione booleana può essere realizzata fisicamente mediante porte logiche.
| Espressione | Porta |
|---|---|
| A · B | AND |
| A + B | OR |
| ¬A | NOT |
Per esempio l’espressione Y = (A · B) + C richiede prima una porta AND e successivamente una porta OR.
Esempio pratico: sistema di consenso
Supponiamo che una macchina possa avviarsi soltanto se sono vere entrambe le condizioni:
- A = protezione chiusa;
- B = pulsante START premuto.
Essendo una funzione AND, il motore viene abilitato soltanto quando A = 1 e B = 1.
MOTORE = A · B · ¬E
Algebra booleana e programmazione
Gli stessi concetti ricompaiono continuamente nel software dei microcontrollori.
if (A && B) { ... }&& rappresenta l’AND logico, || l’OR logico e ! la negazione logica nei linguaggi C/C++.&& e || lavorano su condizioni logiche; & e | operano sui singoli bit dei valori numerici.Errori comuni
- interpretare il simbolo + come una normale addizione;
- confondere AND con OR;
- dimenticare una negazione;
- non rispettare la precedenza degli operatori;
- confondere 0/1 logici con specifiche tensioni elettriche;
- confondere operatori logici e operatori bitwise;
- pensare che espressioni scritte diversamente debbano necessariamente produrre funzioni diverse;
- progettare un circuito complesso senza prima tentare di semplificare l’espressione.

