Porta logica

Da Wikipedia, l'enciclopedia libera.
Schema circuitale e fotografia di un integrato contenente porte logiche NAND

In elettronica digitale e informatica, una porta logica è un circuito digitale in grado di implementare (cioè di realizzare, simulandone la "logica matematica" mediante opportuni controlli su segnali elettrici) una particolare operazione logica di una o più variabili booleane.

Descrizione[modifica | modifica sorgente]

Le porte logiche sono: le porte a due variabili AND, OR, XOR, NOR, NAND, XNOR, BUFFER e a singola variabile NOT. In particolare le porte OR, AND e NOT costituiscono un insieme funzionalmente completo: attraverso gli operatori logici che implementano è possibile generare qualsiasi funzione logica.

Si noti che le operazioni NAND e NOR costituiscono un insieme funzionalmente completo di operatori logici, ovvero consentono di rappresentare qualunque funzione logica possibile[1]. Comunque all'atto pratico, la scelta dei tipi di porta da utilizzare è determinata dalla necessità di minimizzare il numero di package necessari al circuito; ad esempio, se nella stesura finale dello schema elettrico di un progetto mancasse solo una porta NOT e fosse ancora disponibile una delle quattro porte NAND contenute in un package, si realizza la porta NOT mancante, unendo gli ingressi della NAND disponibile, sfruttandola come NOT, risparmiando così un package.

Anche se nella pratica poco usate, esistono porte logiche pneumatiche[2] e porte logiche molecolari che utilizzando DNA come input/output[3].

Porte Open collector[modifica | modifica sorgente]

Exquisite-kfind.png Per approfondire, vedi Open collector.

Alcune porte logiche hanno la loro uscita configurata elettricamente in modo particolare, sono definite open collector, ovvero a collettore aperto. In questi dispositivi, il collettore del transistor costituente l'uscita della porta non è collegato al positivo dell'alimentazione, ma è volante rispetto al circuito interno. Questa configurazione permette di utilizzare la porta per pilotare direttamente dispositivi vari, quali relè, LED, ecc, sempreché il valore di corrente assorbita dal dispositivo pilotato, sia compatibile con quello fornito dal transistor di uscita. Un vantaggio ulteriore è costituito dal valore di tensione accettato dal transistor, normalmente superiore a quella di alimentazione del circuito integrato, pertanto, in un circuito composto da dispositivi TTL alimentato a 5 volt, utilizzando una porta open collector, è possibile per esempio, ottenere un'onda quadra di ampiezza 12 o più volt, prelevandola dal collettore opportunamente collegato tramite una resistenza pull-up ad una tensione positiva del valore desiderato, oppure pilotare un relè, collegando uno dei capi della sua bobina sull'uscita della porta, e l'altro capo all'alimentazione positiva, di valore adeguato al suo funzionamento. Una delle porte più comuni, ampiamente utilizzata, definita HEX INVERTER BUFFER DRIVER (6 NOT in un package) è il 7406. Una regola generale, piuttosto importante ai fini di preservare il circuito realizzato da eventuali momentanei disturbi casuali, nel caso rimanesse qualche porta inutilizzata in qualche package (in particolare le porte CMOS), è bene collegare a massa i suoi ingressi.

Tabelle di verità[modifica | modifica sorgente]

Le tabelle di verità sono un metodo semplice per minimizzare le funzioni logiche. Innanzitutto servono per capire gli stati logici delle varie porte logiche in modo sbrigativo e di facile comprensione.

AND[modifica | modifica sorgente]

Exquisite-kfind.png Per approfondire, vedi Congiunzione logica.
Porta AND

AND è una porta logica che riceve in ingresso almeno due valori e restituisce 1 solo se tutti i valori di ingresso hanno valore 1. Viene chiamata in italiano "porta di necessità" perché appunto NECESSITA che i valori in entrata siano uguali affinché il valore d'uscita sia verificato.
Segue la tavola di verità:

INPUT OUTPUT
A B A \cdot B
0 0 0
0 1 0
1 0 0
1 1 1

NAND[modifica | modifica sorgente]

Porta NAND

Al contrario la porta NAND restituisce la negazione di una porta AND, quindi restituisce 1 quando negli ingressi è presente lo 0, e 0 solo quando tutti i valori in ingresso sono 1.
Segue la tavola di verità:

INPUT OUTPUT
A B \overline{A \cdot B}
0 0 1
0 1 1
1 0 1
1 1 0

OR[modifica | modifica sorgente]

Exquisite-kfind.png Per approfondire, vedi Disgiunzione logica.
Porta OR

OR è una porta logica che riceve in ingresso almeno 2 valori e restituisce 1 se almeno un valore di ingresso ha valore 1. Viene chiamata in italiano "porta di sufficienza" perché appunto è SUFFICIENTE che almeno uno dei due valori in entrata sia verificato affinché il valore in uscita sia vero.
Segue la tavola di verità:

INPUT OUTPUT
A B A + B
0 0 0
0 1 1
1 0 1
1 1 1

NOR[modifica | modifica sorgente]

Porta NOR

Al contrario la porta NOR restituisce la negazione di una porta OR e quindi restituisce 1 solo quando tutti i valori in ingresso sono 0.
Segue la tavola di verità:

INPUT OUTPUT
A B \overline{A + B}
0 0 1
0 1 0
1 0 0
1 1 0

XOR[modifica | modifica sorgente]

Exquisite-kfind.png Per approfondire, vedi Disgiunzione esclusiva.
Porta XOR

XOR (eXclusive OR) è una porta logica che riceve in ingresso "n" valori e restituisce "1" in uscita se e solo se, il numero di ingressi che presentano il valore logico "1" è dispari.
Segue la tavola di verità di una porta XOR a "n=2" ingressi:

INPUT OUTPUT
A B o A o B
0 0 0
0 1 1
1 0 1
1 1 0

XNOR[modifica | modifica sorgente]

Porta XNOR

XNOR (eXclusive NOR) è una porta logica che riceve in ingresso "n" valori e restituisce "1" in uscita se e solo se, entrambi gli ingressi sono uguali. Segue la tavola di verità di una porta XNOR:

INPUT OUTPUT
A B o A o B neg.
0 0 1
0 1 0
1 0 0
1 1 1

NOT[modifica | modifica sorgente]

Exquisite-kfind.png Per approfondire, vedi Invertitore.
Porta NOT

Porta logica che inverte il segnale in ingresso.
Questa porta logica ha un solo ingresso ed una uscita che sarà 1 se l'ingresso è 0 o 0 se l'ingresso è 1.
Segue la tavola di verità:

INPUT OUTPUT
A NOT A
0 1
1 0

Tuttavia questa tavola di verità è a volte rappresentata con due elementi superflui rappresentanti gli ingressi identici:

INPUT OUTPUT
A NOT A
0 1
1 0
0 1
1 0

BUFFER[modifica | modifica sorgente]

Porta logica che non varia il segnale di entrata.

Questa porta logica ha un solo ingresso e una sola uscita che sarà 1 se l'ingresso è 1 e 0 se l'ingresso è 0.

INPUT OUTPUT
A A
1 1
0 0

Porte universali[modifica | modifica sorgente]

Con le porte logiche AND, OR e NOT è possibile realizzare qualsiasi funzione booleana: si dice anche che {AND,OR,NOT} è un insieme funzionalmente completo[4].

Si può verificare facilmente che la porta NAND da sola e la porta NOR da sola, costituiscono due insiemi funzionalmente completi: la NAND è definita come NOT-AND, per questo negando una NAND si può ottenere una AND; utilizzando il teorema di De Morgan abbiamo che:

x NAND y = NOT (x AND y) = (NOT x) OR (NOT y)

e perciò, possiamo ottenere una OR negando gli ingressi della NAND. Ricapitolando, tramite NAND e NOT possiamo ottenere una AND e una OR: ma d'altra parte con una NAND possiamo ottenere una NOT come segue

x NAND 1 = NOT (x AND 1) = NOT x

perciò abbiamo dimostrato che con una NAND si possono ottenere AND, OR e NOT e ne segue che {NAND} è un insieme funzionalmente completo! Similmente si può fare per la NOR.

Lavorare con la sola NAND o la sola NOR può essere utile ai fini pratici perché con un solo tipo di porta è possibile realizzare qualsiasi circuito, ovviamente a discapito di una spesa di porte maggiore di quella che si avrebbe con AND, OR e NOT, o almeno questo avviene nella maggior parte dei casi. Siccome lavorare con le porte universali è molto importante, è bene conoscere le proprietà algebriche degli operatori NAND e NOR: algebricamente indichiamo l'operatore NAND con ↑ e l'operatore NOR con ↓.

Note[modifica | modifica sorgente]

  1. ^ Charles Kime, Reti logiche, Pearson, 2002.
  2. ^ Le Funzioni Logiche
  3. ^ Milan N. Stojanovic, Tiffany Elizabeth Mitchell, Darko Stefanovic, Molecular Logic Gates.
  4. ^ Algebra di boole.

Voci correlate[modifica | modifica sorgente]

Altri progetti[modifica | modifica sorgente]