Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

11
voti

LogicBignami (III)

Abbiamo appena visto gli operatori logici fondamentali e le loro proprietà, adesso analizzeremo i componenti che realizzano queste funzioni e il loro uso nei diversi dispositivi.

Note:
1) Di seguito le variabili booleane verranno indicate con le lettere maiuscole dell'alfabeto, in particolare gli ingressi ad un dispositivo saranno indicate con le lettere I_0\; I_1\; I_2\; \cdots\; I_n\;, mentre le uscite con le lettere O_0\; O_1\; O_2\; \cdots\; O_n\;, salvo dove diversamente specificato.

2) Il simbolo logico 1 (condizione logica "VERO") sarà associato ad una presenza di tensione elettrica (idealmente [*] pari alla tensione di alimentazione del dispositivo), viceversa al simbolo logico 0 (condizione logica "FALSO") sarà associata una tensione pari al riferimento della tensione di alimentazione, generalmente pari a 0 V\;, salvo casi particolari dove verrà specificato diversamente.

[*] Al momento considererò le porte logiche, e i relativi dispositivi che realizzano, come ideali, in quanto quello che ci interessa è vederne l'utilizzo per la realizzazione delle diverse funzioni tipiche dell'elettronica digitale.

Indice

Le porte logiche elementari: AND, OR, NOT (o INVERTER)

Queste porte derivano direttamente dai corrispondenti operatori logici fondamentali, utilizzano i medesimi simboli grafici e presentano, ovviamente, la medesima tabella della verità tra ingressi e uscita.

Per analizzarne il principio di funzionamento utilizzeremo dei generici "blocchi funzionali" che rappresentano, in pratica, degli interruttori comandati elettricamente, schematizzandoli come segue:


Il blocco di sinistra rappresenta un interruttore che, in assenza di una tensione all'ingresso I_n\;, o quando questo è collegato a massa (stato logico "FALSO"), è normalmente aperto.

Viceversa il blocco di destra, sempre in assenza di un comando all'ingresso I_n\; rappresenta un interruttore normalmente chiuso.

Seguendo l'evoluzione tecnologica della componentistica, e alla ricerca di dispositivi sempre più veloci, meno energivori e con dimensioni sempre più ridotte, questi "interruttori elettronici" sono stati realizzati, inizialmente, con dispositivi elettromeccanici (i c.d. relè), sostituiti poi con dispositivi tipo i tubi termoionici, seguiti dai transistor (bipolari e ad effetto di campo) con le relative reti di polarizzazione a componenti discreti realizzanti reti di circuiti sempre più complesse per poi finire all'integrazione del tutto (circuiti a transistor e loro rete di polarizzazione) su un unico chip.
Non essendo un corso di tecnologie elettroniche, è mia intenzione proporre solo le caratteristiche principali elettrico/funzionali dei dispositivi integrati, che vedremo alla fine di questi articoli.

Le porta AND

Componente che realizza la funzione logica AND, con medesimo simbolo grafico e tabella della verità:


I1
I0
O = I_1 \cdot I_0
0
0
0
0
1
0
1
0
0
1
1
1


Circuitalmente la porta AND può essere realizzata mediante la serie di "interruttori elettronici" di tipo NA:

E' immediatamente visibile che l'uscita O\; sarà pari a V_{cc}\;, cioè in condizione logica "VERO" (1 logico), solo se tutti gli ingressi I_0 \;I_1 \; \cdots I_n\; saranno attivi, cioè collegati alla tensione di alimentazione V_{cc}\; (1 logico), in quanto solo in questa circostanza tutti gli interruttori della serie saranno chiusi.

Se anche solo uno degli ingressi fosse inattivo, cioè collegato a massa (condizione logica di "FALSO" - 0 logico), l'interruttore corrispondente rimarrebbe aperto e, di conseguenza, l'uscita sarebbe, anch'essa, in una condizione logica di "FALSO" (0 logico), come stabilito dalla tabella della verità della porta AND.

La porta OR

Componente che realizza la funzione logica OR, con medesimo simbolo grafico e tabella della verità:


I1
I0
O = I1 + I0
0
0
0
0
1
1
1
0
1
1
1
1


Circuitalmente la porta OR può essere realizzata mediante il parallelo di "interruttori elettronici" di tipo NA:

In questo caso vediamo che l'uscita O\; sarà pari a V_{cc}\;, cioè in condizione logica "VERO" (1 logico), anche se solo uno degli ingressi I_0 \;I_1 \; \cdots I_n\; sarà attivo, cioè collegato alla tensione di alimentazione V_{cc}\; (1 logico), in quanto basterà la chiusura di un unico interruttore per collegare l'uscita alla tensione di alimentazione.

Viceversa se tutti gli ingressi fossero inattivi, cioè collegati a massa (condizione logica di "FALSO" - 0 logico), tutti gli interruttori rimarrebbero aperti e, di conseguenza, l'uscita sarebbe, anch'essa, in una condizione logica di "FALSO" (0 logico), come stabilito dalla tabella della verità della porta OR.

La porta NOT (o INVERTER)

Componente che realizza la funzione logica NOT, con medesimo simbolo grafico e tabella della verità:



I
O = \overline I
0
1
1
0


Circuitalmente la porta NOT è quella che può essere realizzata più facilmente in quanto basta un qualsiasi circuito di tipo invertente.
Schematicamente la rappresenteremo con un unico "interruttori elettronico" di tipo NC:

Il suo funzionamento come porta logica NOTè evidente: in assenza di segnale all'ingresso I\;, cioè con il medesimo connesso a massa (ossia in condizione logica "FALSO" - 0 logico), l'interruttore chiuso collegherà l'uscita O\; alla tensione di alimentazione V_{cc}\; ponendola in una condizione logica "VERO" (1 - logico), viceversa, se all'ingresso fosse presente una tensione pari a V_{cc}\; (condisione logica "VERO" - 1 logico), l'interruttore sarebbe aperto e, di conseguenza, in uscita avremo una condizione di "FALSO" (0 logico).

Le porte logiche NAND e NOR

Con le porte logiche appena descritte sarà possibile realizzare di qualsiasi funzione logica comunque complessa.

Una funzione logica realizzata con queste porte logiche viene definita: in logica AOI, dalle iniziali di AND, OR e INVERTER.

Vedremo, però, che spesso le funzioni logiche sono formate da complementi di prodotti logici o complementi di somme logiche, per questo, nell'evoluzione tecnologica, si sono create delle porte logiche che incorporino, in un unico elemento il complemento di prodotto logico o il complemento di somma logica.

La porta NAND

Questa porta equivale al complemento (negazione) della funzione logica AND, cioè una porta logica AND alla cui uscita è collegata una porta logica NOT, e viene rappresentata con il seguente simbolo grafico:


In pratica, la porta logica NAND ha lo stesso simbolo della porta logica AND con evidenziato, all'uscita, un cerchio che rappresenta la negazione effettuata sul prodotto logico (in pratica sottintende la presenza della porta logica NOT connessa all'uscita).

Quindi, questa porta logica risponde alla seguente tabella della verità:

I1
I0
O = \overline {I_1 \cdot I_0}
0
0
1
0
1
1
1
0
1
1
1
0


Circuitalmente la porta NAND può essere realizzata mediante il parallelo di "interruttori elettronici" di tipo NC:

Come si può notare, nel rispetto della tabella della verità, solo se tutti gli ingressi I_0\;I_1\; \cdots I_n\; sono collegati alla tensione V_{cc}\; (condizione logica "VERO" - 1 logico) allora l'uscita O\; sarà a 0\;V\; (condizione logica "FALSO" - 0 logico), in tutti gli altri casi l'uscita sarà sempre collegata a V_{cc}\; quindi in una condizione logica "VERO" (1 - logico).

Ci si potrebbe chiedere perchè la porta logica AND è realizzata tramite una serie di "interruttori elettronici" NA mentre la porta logica NAND è realizzata tramite un parallelo di "interruttori elettronici" NC.

Questo è possibile grazie alla Legge di De Morgan vista nell'articolo precedente (LogicBignami (II)), infatti possiamo scrivere la funzione logica NAND anche come somma logica:

\overline {I_0 \cdot I_1} = \overline {I_0} + \overline {I_1}

Per questo lo schema ricalca quello della porta OR in cui sono stati complementati gli ingressi.

Nulla vieterebbe di realizzare anche la porta NAND come una serie di "interruttori elettronici" solo che in questo modo ci si ritroverebbe a dover sprecare un "interruttore elettronico" (quello che ci serve per la negazione della funzione logica AND) in più dello stretto necessario come si può vedere qui di seguito:

Porta logica NOR

Questa porta equivale al complemento (negazione) della funzione logica OR, cioè una porta logica OR alla cui uscita è collegata una porta logica NOT, e viene rappresentata con il seguente simbolo grafico:

In pratica, la porta logica NOR ha lo stesso simbolo della porta logica OR con evidenziato, all'uscita, un cerchio che rappresenta la negazione effettuata sulla somma logica (in pratica sottintende la presenza della porta logica NOT connessa all'uscita).

Di conseguenza, questa porta logica risponde alla seguente tabella della verità:

I1
I0
O = \overline {I_1 + I_0}
0
0
1
0
1
0
1
0
0
1
1
0


Circuitalmente la porta NOR può essere realizzata mediante la serie di "interruttori elettronici" di tipo NC:

Nel rispetto della tabella della verità, solo se tutti gli ingressi I_0\;I_1\; \cdots I_n\; sono a 0\;V\; (condizione logica "FALSO" - 0 logico), l'uscita sarà sempre collegata a V_{cc}\; quindi in una condizione logica "VERO" (1 - logico), viceversa, se anche un solo ingresso viene collegato a V_{cc}\; (condizione logica "VERO" - 1 logico) allora l'uscita O\; sarà a 0\;V\; (condizione logica "FALSO" - 0 logico).

Anche in questo caso, per capire come sia possibile che la porta logica NOR venga realizzata con una serie di "interruttori elettronici", mentre la porta logica OR viene realizzata con un parallelo degli stessi, ci viene in aiuto la Legge di De Morgan che ci permette di scrivere la funzione logica NOR anche sotto forma di prodotto:

\overline {I_0 + I_1} = \overline {I_0} \cdot \overline {I_1}

Per questo motivo lo schema elettrico ricalca quello di una porta logica AND in cui vengono complementati gli ingressi.

Come per la porta logica NAND, anche la porta logica NOR potrebbe essere realizzata partendo dal circuito della porta logica OR inserendo in uscita di questa una porta logica NOT, ma, come già visto, anche in questo caso si utilizzerebbe un "interruttore elettronico" in più dello stretto necessario:

Universalità delle porte logiche NAND e NOR

Le porte logiche NAND e NOR, per la loro funzione logica, possono essere utilizzate per realizzare qualsiasi porta logica, sia essa AND, OR, o NOT.

1) La porta logica NAND utilizzata come porta logica NOT

Considerando la funzione logica NAND \overline {I_0 \cdot I_1}\;, e imponendo I_0 = I_1 = I\;, la funzione logica NAND diventa \overline {I_0 \cdot I_1} = \overline {I \cdot I}\;, ma come abbiamo visto nell'articolo LogicBignami (II), per la proprietà dell'idempotenza del prodotto logico, I \cdot I = I, la funzione logica NAND risulterà essere pari a

\overline {I \cdot I} = \overline I

che altro non è che la funzione logica NOT.

Quindi imponendo gli ingressi come identici (in pratica collegandoli insieme tra loro), una porta logica NAND può essere essere utilizzata come una porta logica NOT:

2) La porta logica NOR utilizzata come porta logica NOT

Lo stesso identico ragionamento può essere fatto con la porta logica NOR, infatti ponendo nella funzione logica NOR \overline {I_0 + I_1}\;, i due ingrssi identici, e quindi I_0 = I_1 = I\;, la funzione logica NOR diventa \overline {I_0 + I_1} = \overline {I + I}\;.

Ma sempre per la proprietà dell'idempotenza, questa volta della somma logica, I + I = I, la funzione logica NOR diventerà

\overline {I + I} = \overline I

che, anche in questo caso, altro non è che la funzione logica NOT.

Quindi imponendo gli ingressi come identici (in pratica collegandoli insieme tra loro), una porta logica NOR può essere essere utilizzata come una porta logica NOT:


3) La porta logica NAND utilizzata come porta logica OR

Dalle Leggi di De Morgan, possiamo scrivere che \overline {I_0 \cdot I_1} = \overline {I_0} + \overline {I_1}

Sappiamo anche che, per la proprietà della doppia negazione \overline {\overline I} = I\;, quindi, facendo un ragionamneto inverso, possiamo scrivere la funzione logica OR anche così: I_0 + I_1 = \overline {\overline {I_0}} + \overline {\overline {I_1}} \;, e, per la già citata Legge di De Morgan, \overline {\overline {I_0}} + \overline {\overline {I_1}} = \overline {\overline {I_0} \cdot \overline {I_1}}.

Quindi, in definitiva, negando gli ingressi della funzione logica NAND, si ottiene

\overline {\overline {I_0} \cdot \overline {I_1}} = I_0 + I_1

Quindi complementando gli ingressi di una porta logica NAND, quest'ultima può essere essere uilizzata come una porta logica OR:

In pratica servono tre porte logica NAND, due utilizzate come porta logica NOT e una utilizzata come una normale porta logica NAND per eseguire la funzione logica di una porta porta logica OR.

4) La porta logica NOR utilizzata come porta logica AND

Anche in questo caso il ragionamento è simile a quello appena visto per la porta logica NAND.

Partendo dalla Legge di De Morgan \overline {I_0 + I_1} = \overline {I_0} \cdot \overline {I_1} \;, ricordando sempre la proprietà della doppia negazione, la funzione logica AND, può essere scritta I_0 \cdot I_1 = \overline {\overline {I_0}} \cdot \overline {\overline {I_1}} \; e, di conseguenza, la succitata Legge di De Morgan diventa \overline {\overline {I_0}} \cdot \overline {\overline {I_1}} = \overline {\overline {I_0} + \overline {I_1}}.

Quindi, negando gli ingressi della funzione logica NOR otteniamo:

\overline {\overline {I_0} + \overline {I_1}} = I_0 \cdot I_1

In definitiva, complementando gli ingressi di una porta logica NOR, quest'ultima può essere usata come una porta logica AND:

Come si vede, anche in questo frangente si utilizzano tre porte logiche NOR, due come porta logica NOT e una come una normale porta logica NOR, per realizzare la funzione logica di una porta logica AND.

5) Le porte logiche NAND e NOR utilizzate per realizzare le corrispondenti porte logiche AND e OR

I ragionamenti per la realizzazzione di questi collegamenti è banale in quanto derivano dalle definizioni stesse delle funzioni logiche corrispondenti alle quali viene applicata la proprieta della doppia negazione:

per la porta logica NAND

\overline {\overline {I_0 \cdot I_1}} = I_0 \cdot I_1

per la porta logica NOR

\overline {\overline {I_0 + I_1}} = I_0 + I_1

da cui derivano i seguenti collegamenti:

Si devono quindi utilizzare due porte logiche, di cui una utilizzata come porta NOT per realizzare le porte logiche AND e OR partendo dalle corrispondenti NAND e NOR.

Quanto abbiamo visto sono le regole di base che permettono di realizzare funzioni logiche utilizzando un'unica tipologia di porta logica (NAND o NOR), a scapito, però, di una maggior complessità circuitale.

Una funzione logica realizzata con questa metodologia viene definita: in logica NAND o in logica NOR.

Prossimamente analizzeremo la "minimizzazione" delle funzioni logiche e riusciremo così a vedere anche come si realizzano le ultime due porte logiche rimaste: la EX-OR e la EX-NOR.

LogicBignami - Indice articoli correlati

3

Commenti e note

Inserisci un commento

di ,

Grazie, grazie, grazie...
... e ancora grazie. :)

Rispondi

di ,

A proposito, questa puntata del tuo bignami ho deciso di inserirla nella bibliografia del mio articolo sull'algebra di commutazione (quello che ti ho linkato sotto il tuo precedente articolo), perché lo complementa molto bene :)

Rispondi

di ,

Articolo molto carino :) Condivido in particolare la scelta di illustrare le porte logiche "switch level", senza andare a discutere di transistor e dimensionamenti.

Rispondi

Inserisci un commento

Per inserire commenti è necessario iscriversi ad ElectroYou. Se sei già iscritto, effettua il login.