Impara › Argomento 1
Porte logiche: NOT, AND, OR, NAND, NOR, XOR e XNOR
7 min di lettura · Team bitGateLab
Tutta l'elettronica digitale, da un semaforo a un processore, si costruisce con pochi blocchi che prendono decisioni con zeri e uni: le porte logiche. Qui conoscerai le sette porte fondamentali, come si disegnano, come si scrivono in algebra di Boole e qual è la loro tabella di verità. Alla fine vedrai perché con un solo tipo di porta, NAND o NOR, puoi costruire tutte le altre.
Livelli logici: che cosa significano lo 0 e l'1
In un circuito digitale ogni segnale può trovarsi soltanto in uno di due stati. La tensione bassa (vicina a 0 V) si chiama 0 logico o falso, e la tensione alta (vicina all'alimentazione, per esempio 5 V o 3.3 V) si chiama 1 logico o vero. Una porta riceve uno o più ingressi e fornisce un'uscita che dipende unicamente dal valore attuale dei suoi ingressi: non ricorda nulla. Per questo si dice che le porte formano la logica combinatoria.
Il modo più completo di descrivere una porta è la sua tabella di verità: un elenco di tutte le combinazioni possibili degli ingressi con l'uscita che corrisponde a ciascuna. Con n ingressi ci sono 2n combinazioni, quindi una porta a due ingressi ha 4 righe e una a tre ingressi ne ha 8.
Le tre porte fondamentali
NOT (invertitore)
Ha un solo ingresso e fornisce il contrario: se entra 0 esce 1 e se entra 1 esce 0. Si scrive Y = A (troverai anche A' o ¬A). Il suo simbolo è un triangolo con un pallino sulla punta; quel pallino è il segno universale di "qui si inverte".
| A | Y = A |
|---|---|
| 0 | 1 |
| 1 | 0 |
AND (E)
L'uscita vale 1 solo quando tutti gli ingressi valgono 1. Si scrive come un prodotto: Y = A·B o semplicemente Y = AB. Pensa a due interruttori in serie: la lampada si accende soltanto se sono chiusi entrambi.
OR (O)
L'uscita vale 1 quando almeno un ingresso vale 1. Si scrive come una somma: Y = A + B. Equivale a due interruttori in parallelo. Attenzione: in algebra di Boole 1 + 1 = 1, non 2.
Porte derivate: NAND, NOR, XOR e XNOR
NAND è una AND seguita da un invertitore: Y = AB. La sua uscita è 0 solo quando tutti gli ingressi sono 1. NOR è una OR invertita: Y = A + B, e vale 1 solo quando tutti gli ingressi sono 0. Nel simbolo, entrambe hanno il pallino sull'uscita.
XOR (OR esclusivo) vale 1 quando gli ingressi sono diversi: Y = A ⊕ B = AB + AB. Con più di due ingressi, la XOR vale 1 quando c'è un numero dispari di uni, per questo si usa per calcolare i bit di parità. XNOR è il suo complemento, Y = A ⊕ B = AB + A B, e vale 1 quando gli ingressi sono uguali: è un comparatore di uguaglianza a un bit.
Questa è la tabella di verità complessiva delle sei porte a due ingressi:
| A | B | AND | OR | NAND | NOR | XOR | XNOR |
|---|---|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 |
| 0 | 1 | 0 | 1 | 1 | 0 | 1 | 0 |
| 1 | 0 | 0 | 1 | 1 | 0 | 1 | 0 |
| 1 | 1 | 1 | 1 | 0 | 0 | 0 | 1 |
Esempio: valutare un piccolo circuito. Calcola Y = (A + B) · C per A = 0, B = 1, C = 1.
- OR: A + B = 0 + 1 = 1.
- Inversione: 1 = 0.
- AND con C: 0 · 1 = 0.
Risultato: Y = 0. Con A = 0, B = 0, C = 1 la OR dà 0, l'invertitore dà 1 e la AND dà 1, quindi Y = 1.
NAND e NOR: porte universali
Una porta è universale se con sole copie di essa puoi costruire NOT, AND e OR, e quindi qualsiasi funzione logica. NAND e NOR hanno questa proprietà. Ne deriva una conseguenza pratica: un produttore può fabbricare un solo tipo di cella e realizzare con essa l'intero progetto, e tu puoi risolvere un circuito completo con un unico chip della famiglia 74HC (per esempio, il 74HC00 contiene quattro NAND a due ingressi).
Tutto con le NAND
- NOT: unisci i due ingressi di una NAND. Se A entra in entrambi, A·A = A.
- AND: una NAND seguita da una NAND usata come invertitore: AB = AB.
- OR: inverti ogni ingresso con una NAND e riuniscili in una terza NAND: A·B = A + B (per De Morgan).
Tutto con le NOR
- NOT: unisci gli ingressi di una NOR: A + A = A.
- OR: una NOR seguita da una NOR invertente.
- AND: inverti ogni ingresso con una NOR e riuniscili in un'altra NOR: A + B = AB.
Esempio: XOR con quattro NAND. Siano N1 = AB, N2 = A·N1, N3 = B·N1 e Y = N2·N3. Controlla i quattro casi:
| A | B | N1 | N2 | N3 | Y |
|---|---|---|---|---|---|
| 0 | 0 | 1 | 1 | 1 | 0 |
| 0 | 1 | 1 | 1 | 0 | 1 |
| 1 | 0 | 1 | 0 | 1 | 1 |
| 1 | 1 | 0 | 1 | 1 | 0 |
La colonna Y coincide con quella della XOR. Quattro porte, un solo chip.
Errori comuni
- Pensare che 1 + 1 = 2 in una OR. Nella logica booleana la somma satura: 1 + 1 = 1.
- Confondere AB (NAND, un'unica barra su tutto) con A B (due barre separate, che equivale a NOR). La lunghezza della barra cambia il risultato.
- Credere che una XOR a tre ingressi valga 1 "quando un solo ingresso è 1". In realtà vale 1 con un numero dispari di uni, e questo comprende il caso 1, 1, 1.
- Lasciare ingressi non collegati in un chip CMOS reale. Un ingresso flottante può essere letto come 0 o come 1 a caso; collegalo a massa o all'alimentazione.
Provalo nel simulatore
Il modo migliore per memorizzare queste tabelle è generarle da te. Nell'editor di circuiti puoi inserire una porta, cambiare i suoi ingressi e vedere subito l'uscita; poi confronta con la tabella di verità calcolata dallo strumento.
- Inserisci due ingressi, una porta NAND e un'uscita, e collegali.
- Porta gli ingressi nelle quattro combinazioni e annota l'uscita in ciascun caso.
- Genera la tabella di verità del circuito e confrontala con quella di questo articolo.
- Costruisci la XOR con quattro NAND dell'esempio e verifica che la sua tabella coincida con quella di una XOR singola.
- Se vuoi portarlo sulla breadboard virtuale, inserisci un chip NAND della famiglia 74HC, alimentalo e osserva il LED di uscita.
Esercizi
- Scrivi la tabella di verità di Y = A + B.
Risposta
Per AB = 00, 01, 10, 11 l'uscita è 1, 0, 1, 1. Vale 0 solo quando A = 0 e B = 1.
- Quante righe ha la tabella di verità di una AND a 4 ingressi e in quante l'uscita vale 1?
Risposta
24 = 16 righe; l'uscita vale 1 in una sola (1111).
- Ricava l'uscita di una XOR a tre ingressi con A = 1, B = 1, C = 1.
Risposta
1 ⊕ 1 = 0 e 0 ⊕ 1 = 1. L'uscita è 1, perché ci sono tre uni (numero dispari).
- Quante porte NOR ti servono, come minimo con questo metodo, per formare una AND a due ingressi?
Risposta
Tre: due NOR usate come invertitori (una per A e una per B) e una terza NOR che riceve A e B, la cui uscita è A + B = AB.
Per trasformare e semplificare le espressioni con queste porte, prosegui con l'algebra di Boole.