Le porte logiche sono i mattoni elementari dei circuiti digitali. Ricevono uno o più ingressi, interpretati come valori logici 0 e 1, e producono un'uscita secondo una regola precisa. Combinate tra loro, permettono di confrontare dati, prendere decisioni, sommare numeri, selezionare segnali e costruire strutture molto più complesse come registri, memorie e unità aritmetico-logiche.

Intel descrive la gerarchia dei chip moderni in modo molto chiaro: i transistor vengono combinati per creare porte logiche; le porte vengono collegate in circuiti; i circuiti formano processori composti da milioni o miliardi di transistor. Capire AND, OR e NOT significa quindi osservare il primo livello organizzato che trasforma semplici stati elettrici in elaborazione.

Prima di iniziare: che cosa significano davvero 0 e 1?

Il NIST definisce il bit come una cifra binaria che può assumere valore 0 oppure 1. Nei diagrammi logici questi due valori sono astratti: indicano falso e vero, basso e alto, disattivato e attivato oppure altre due condizioni stabilite dal progetto.

È utile immaginare 0 come assenza e 1 come presenza di una condizione, ma non bisogna trasformare questa analogia in una legge fisica. Nei circuiti reali, entrambi i valori sono rappresentati da intervalli di tensione e dipendono dalla famiglia logica, dall'alimentazione e dalle soglie degli ingressi. Un livello logico 0 non significa necessariamente “nessuna tensione”, così come un livello 1 non corrisponde a una tensione universale.

Tabella di verità: tutte le risposte possibili

La tabella di verità elenca ogni combinazione degli ingressi e mostra l'uscita prodotta dalla porta. Con un ingresso esistono due combinazioni. Con due ingressi ne esistono quattro: 00, 01, 10 e 11. In generale, con n ingressi una tabella completa contiene 2ⁿ righe.

Le lettere A e B indicano normalmente gli ingressi; Y oppure Q indicano l'uscita. La tabella non descrive come la porta è costruita internamente: specifica soltanto il comportamento logico che deve rispettare.

Tabelle di verità e simboli delle porte logiche NOT, AND, OR, NAND, NOR, XOR e XNOR Le sette funzioni fondamentali confrontate attraverso simboli, regole e combinazioni degli ingressi.

La porta NOT: l'invertitore

NOT possiede un solo ingresso. L'uscita è sempre il valore opposto:

  • se A = 0, Y = 1;
  • se A = 1, Y = 0.

La funzione può essere scritta come Y = NOT A, Y = ¬A oppure con una linea sopra A. Nei simboli di stile ANSI/IEEE, il triangolo punta convenzionalmente verso l'uscita; il piccolo cerchio, chiamato spesso bolla di inversione, è il segno decisivo che indica la negazione.

Simbolo della porta logica NOT con ingresso A, uscita Y e bolla di inversione La bolla sull'uscita indica che il segnale viene invertito: 0 diventa 1 e 1 diventa 0.

Un invertitore può trasformare un segnale attivo alto in uno attivo basso, generare il complemento di un bit o adattare la polarità di un controllo. La bolla può comparire anche sugli ingressi o sulle uscite di altri simboli: in ogni caso segnala una negazione o una condizione attiva bassa.

La porta AND: tutte le condizioni devono essere vere

Una AND a due ingressi produce 1 soltanto quando A e B valgono entrambi 1:

Y = A AND B

È la porta del “tutto deve essere soddisfatto”. Un macchinario può partire soltanto se il pulsante di avvio è premuto e la protezione è chiusa. Un dato può passare soltanto se è presente e il segnale di abilitazione è attivo.

Nell'algebra booleana AND viene spesso indicata con un punto, una moltiplicazione implicita oppure il simbolo ∧: Y = A · B. Non è una normale moltiplicazione numerica, anche se sui singoli bit la tabella produce gli stessi risultati di 0 × 0, 0 × 1 e 1 × 1.

La porta OR: basta almeno una condizione vera

OR produce 1 se almeno uno degli ingressi vale 1. L'unico caso con uscita 0 è A = 0 e B = 0:

Y = A OR B

È utile quando più condizioni alternative devono attivare la stessa azione. Un allarme generale può accendersi se interviene il sensore di fumo oppure quello di temperatura. Un sistema può ricevere un comando da una sorgente automatica oppure da un comando manuale.

In algebra booleana OR viene spesso indicata con + oppure ∨. Attenzione: il simbolo più non rappresenta l'addizione binaria completa. Infatti nell'OR 1 OR 1 = 1, mentre nell'addizione 1 + 1 = 10₂.

NAND: una AND seguita da NOT

NAND significa NOT AND. L'uscita è 0 soltanto quando tutti gli ingressi sono 1; negli altri casi è 1:

Y = NOT (A AND B)

Il simbolo è quello della AND con una bolla di inversione sull'uscita. NAND è particolarmente importante perché è una porta universale: collegando esclusivamente porte NAND si possono ricostruire NOT, AND, OR e, di conseguenza, qualsiasi funzione combinatoria booleana.

Costruire altre porte con NAND

  • NOT: collegare insieme i due ingressi: NAND(A, A) = NOT A.
  • AND: invertire l'uscita di una NAND con una seconda NAND usata come NOT.
  • OR: invertire separatamente A e B e applicare NAND, secondo le leggi di De Morgan.

Questa proprietà non significa che ogni circuito debba essere realizzato soltanto con NAND. Significa che NAND è funzionalmente completa e può essere molto utile per uniformare un progetto o sfruttare i componenti disponibili.

NOR: una OR seguita da NOT

NOR significa NOT OR. Produce 1 soltanto quando tutti gli ingressi sono 0:

Y = NOT (A OR B)

Anche NOR è una porta universale. Collegando soltanto porte NOR è possibile costruire tutte le altre funzioni booleane. Due NOR incrociate possono inoltre formare un semplice latch SR, cioè una struttura con retroazione capace di mantenere uno stato. Qui si passa dalla logica puramente combinatoria ai primi elementi di memoria.

XOR: vero quando gli ingressi sono diversi

XOR significa exclusive OR. Con due ingressi, l'uscita vale 1 quando uno solo dei due ingressi è 1:

Y = A XOR B

La tabella produce 0 per 00 e 11, e 1 per 01 e 10. Per questo XOR può essere vista come un rilevatore di differenza. Texas Instruments descrive formalmente la funzione con il simbolo ⊕ e mostra come un ingresso possa controllare se l'altro segnale viene trasmesso normalmente oppure invertito.

XOR è fondamentale nell'aritmetica binaria. In un mezzo sommatore, la somma di due bit è:

S = A XOR B

mentre il riporto è:

C = A AND B

XOR viene inoltre impiegata per calcolare bit di parità, confrontare segnali, applicare maschere e invertire selettivamente gruppi di bit.

XNOR: vero quando gli ingressi sono uguali

XNOR è l'opposto di XOR:

Y = NOT (A XOR B)

Produce 1 per 00 e 11, cioè quando gli ingressi sono uguali. Per questo è chiamata anche porta di equivalenza e può essere usata come comparatore di un singolo bit.

Per confrontare parole di più bit, si può applicare XNOR a ciascuna coppia di bit e poi collegare tutte le uscite a una AND. Il risultato complessivo vale 1 soltanto se ogni posizione coincide.

Le leggi di De Morgan: spostare le inversioni

Le leggi di De Morgan permettono di trasformare circuiti AND in circuiti OR e viceversa, spostando le negazioni:

NOT (A AND B) = (NOT A) OR (NOT B)

NOT (A OR B) = (NOT A) AND (NOT B)

Queste equivalenze sono importanti per semplificare schemi, usare porte disponibili, comprendere i segnali attivi bassi e verificare che due circuiti apparentemente diversi realizzino la stessa funzione.

Dall'espressione booleana al circuito

Consideriamo la funzione:

Y = (A AND B) OR (NOT C)

Per costruirla si può procedere in tre passaggi:

  1. collegare A e B a una AND;
  2. collegare C a una NOT;
  3. collegare le due uscite a una OR.

La funzione è combinatoria: l'uscita dipende soltanto dagli ingressi presenti in quell'istante. Se invece aggiungiamo retroazione, latch, flip-flop e clock, l'uscita può dipendere anche dallo stato precedente. Nascono così i circuiti sequenziali, usati in registri, contatori e memorie.

Dal mezzo sommatore al sommatore completo

Un mezzo sommatore usa XOR e AND per sommare A e B. Non può però accettare il riporto proveniente dalla colonna precedente. Il sommatore completo aggiunge un terzo ingresso, il riporto in ingresso Cin.

Una forma comune è:

S = A XOR B XOR Cin

Cout = (A AND B) OR (Cin AND (A XOR B))

Collegando più sommatori completi si costruisce un sommatore a più bit. È un esempio concreto di come poche porte elementari diventino una parte dell'unità aritmetico-logica del processore.

Porte ideali e componenti reali

Una tabella di verità descrive una porta ideale, con risposta immediata e livelli perfetti. Un componente fisico possiede invece caratteristiche elettriche e temporali:

  • tensione di alimentazione: stabilisce la famiglia e i livelli compatibili;
  • soglie di ingresso: determinano quali tensioni sono riconosciute come 0 o 1;
  • ritardo di propagazione: l'uscita cambia poco dopo l'ingresso, non istantaneamente;
  • capacità di pilotaggio: un'uscita può alimentare un numero limitato di ingressi;
  • margine di rumore: misura la tolleranza ai disturbi;
  • consumo e frequenza: dipendono dalla tecnologia e dall'attività del circuito.

Texas Instruments propone famiglie e dispositivi che lavorano a tensioni differenti; Nexperia documenta componenti configurabili che possono realizzare AND, OR, NAND, NOR, XOR, XNOR, inverter, buffer e multiplexer nello stesso dispositivo. Questo mostra che le funzioni logiche non sono soltanto simboli scolastici: esistono come blocchi elettronici progettati con specifiche precise.

Un chiarimento sulle immagini didattiche

Nella tavola generale la frase “0 = assenza di segnale, 1 = presenza di segnale” è un'analogia introduttiva. Una formulazione più precisa è: 0 e 1 sono due stati logici rappresentati da livelli elettrici riconoscibili. Inoltre, nel simbolo NOT il triangolo mostra il verso convenzionale del blocco, mentre è soprattutto la bolla sull'uscita a segnalare l'inversione.

Errori frequenti

  • Confondere OR e XOR: OR vale 1 anche con ingressi 11; XOR in quel caso vale 0.
  • Dimenticare la bolla: una bolla trasforma AND in NAND, OR in NOR e XOR in XNOR.
  • Trattare 0 e 1 come tensioni universali: le soglie dipendono dal componente.
  • Confondere OR con l'addizione: 1 OR 1 = 1, ma 1 + 1 = 10₂.
  • Ignorare il ritardo: in un circuito reale le uscite non cambiano istantaneamente.
  • Usare un ingresso non collegato: un ingresso flottante può assumere uno stato imprevedibile o sensibile al rumore.

Domande frequenti

Quali sono le porte logiche fondamentali?

AND, OR e NOT sono spesso considerate le funzioni elementari. NAND, NOR, XOR e XNOR derivano da combinazioni o inversioni di queste funzioni.

Perché NAND e NOR sono dette universali?

Perché ciascuna, da sola e ripetuta più volte, può realizzare tutte le funzioni booleane necessarie a un circuito combinatorio.

XOR significa “almeno uno”?

Con due ingressi significa “uno solo”: l'uscita è 1 se gli ingressi sono diversi. OR significa invece “almeno uno”, includendo il caso in cui entrambi sono 1.

Una porta può avere più di due ingressi?

Sì. Esistono AND, OR, NAND e NOR con tre, quattro, otto o più ingressi. La regola logica viene estesa a tutti gli ingressi.

Le porte logiche possono memorizzare dati?

Una singola porta combinatoria non conserva uno stato. Collegando porte con retroazione si possono creare latch e flip-flop, che costituiscono elementi di memoria.

Fonti ufficiali e approfondimenti