💾 Elettronica digitale · Guida 03

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.

Livello: baseAlgebra booleanaLogica digitale0 e 1

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.

0 = falso / LOW
1 = vero / HIGH

L’obiettivo non è eseguire normali operazioni aritmetiche, ma stabilire come una o più condizioni logiche determinano un risultato.

Attenzione:nell’algebra booleana 0 e 1 rappresentano stati logici, non semplicemente quantità numeriche.

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.

VariabiliCombinazioni
12
24
38
416
Combinazioni = 2NN è il numero delle variabili binarie di ingresso.

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.

AND: Y = A · B
OR: Y = A + B
NOT: Y = ¬A
Il simbolo + non indica la normale addizione.In algebra booleana A + B rappresenta l’operazione logica OR.

Tabelle di verità

La tabella di verità elenca tutte le possibili combinazioni degli ingressi e mostra il risultato dell’operazione logica.

AND

ABA · B
000
010
100
111

OR

ABA + B
000
011
101
111

NOT

A¬A
01
10

Operazioni logiche fondamentali

Operazioni logiche fondamentali AND OR e NOT con simboli e tabelle di verità
Le tre operazioni fondamentali dell’algebra booleana: AND, OR e NOT, con simboli logici, espressioni e tabelle di verità.

Espressioni booleane

Le operazioni possono essere combinate per descrivere funzioni più complesse. Consideriamo:

Y = (A · B) + ¬C

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.

EsempioA = 1, B = 0, C = 0

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
1Parentesi
2NOT
3AND
4OR
Buona praticaUsare le parentesi quando un’espressione può risultare ambigua rende il circuito più semplice da comprendere e riduce gli errori.

Proprietà fondamentali dell’algebra booleana

ProprietàANDOR
IdentitàA · 1 = AA + 0 = A
Elemento dominanteA · 0 = 0A + 1 = 1
IdempotenzaA · A = AA + A = A
ComplementoA · ¬A = 0A + ¬A = 1
CommutativaA · B = B · AA + B = B + A

Legge della doppia negazione

¬(¬A) = A

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

¬(A + B) = ¬A · ¬B
Regola praticaQuando la negazione attraversa una parentesi, AND diventa OR, OR diventa AND e ogni variabile viene negata.

Teoremi di De Morgan rappresentati graficamente

Teoremi di De Morgan rappresentati graficamente con circuiti logici equivalenti
Rappresentazione grafica dei due teoremi di De Morgan con espressioni equivalenti, porte logiche e tabelle di verità.

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.

EsempioY = A + A · B

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.

EspressionePorta
A · BAND
A + BOR
¬ANOT

Per esempio l’espressione Y = (A · B) + C richiede prima una porta AND e successivamente una porta OR.

Equazione, tabella di verità e schema logico sono tre modi diversi per descrivere la stessa funzione.

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.
MOTORE = A · B

Essendo una funzione AND, il motore viene abilitato soltanto quando A = 1 e B = 1.

Aggiungiamo un arresto di emergenzaSe E vale 1 quando l’emergenza è attiva, una possibile funzione diventa:

MOTORE = A · B · ¬E

Algebra booleana e programmazione

Gli stessi concetti ricompaiono continuamente nel software dei microcontrollori.

Esempio concettualeif (A && B) { ... }

&& rappresenta l’AND logico, || l’OR logico e ! la negazione logica nei linguaggi C/C++.
Operatori logici e bitwise non sono la stessa cosa.&& 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.