Corso di Microprogrammazione: i sistemi digitali

Circuiti Immagine tratta da: http://www.ilsussidiario.net/img/FOTOLIA/Circuito_Elettronica_BluR400.jpg

Riprendiamo il nostro corso di microprogrammazione. La seconda parte, quella che tratteremo oggi, riguarda i sistemi digitali: approfondiremo quindi, quali sono, come sono fatte e come funzionano le porte logiche, che sono il fondamento essenziale di qualunque architettura. Vi guiderò nell’affascinante mondo dei numeri binari e delle logiche combinatorie, trattando però l’argomento in modo semplice, con tabelle e disegni. Seguitemi!

Analizziamo ora, qui di seguito, che cosa è un sistema digitale e quali operazioni possono essere compiute su di esso. Cominciamo dicendo che un sistema digitale è null’altro che un sistema il cui nome è sinonimo di binario, ovvero caratterizzato da due stati. Con la tabella riportata qui di seguito vediamo com’è possibile definire gli stati di un sistema binario.

1

2

3

4

5

6

Uno Stato

True (Vero)

High (Alto)

1

On (Acceso)

Yes

Closed (Aperto)

L’altro Stato

False (Falso)

Low (Basso)

0

Off (Spento)

No

Open (Chiuso)

Il fatto che lo stato sia binario implica che:

Vero = Not Falso e Falso = Not Vero

Questo sistema ha una rappresentazione numerica che si basa su simboli, ovvero 1 e 0. A seconda di come essi vengono poi associati a “uno stato” o a “l’altro stato” ci si riferisce alle logiche, positive o negative. Tipicamente, infatti, ad un livello di tensione basso si associa, o meglio si può associare, uno 0, come per dire che la tensione (di interesse) non c’è. E così, l’1 avrà il senso di affermare che quel valore esiste ed è presente. Il contrario di questa convenzione è detta logica negata ed ha tutto il vantaggio di essere utile in alcune applicazioni specifiche. Trattandosi di convenzioni, esse restano utili da definire a monte di qualunque altra valutazione in merito al sistema ed è per questo che si tende ad uniformare queste affermazioni.

Le operazioni logiche

Cosa sarebbe la matematica senza che tra i numeri si potessero instaurare delle “relazioni”? Ed è proprio questo il motivo per il quale i numeri tornano utili. Vediamo allora quali sono le operazioni che possono mettere in relazioni tra loro i numeri binari.

Siamo abituati ad avere a che fare con alcune operazioni matematiche, ad esempio somme e divisioni, ciascuna individuata da un simbolo (+,-,:,x); anche per i sistemi digitali esiste questa necessità ed è per questo che sono interessanti le operazioni “logiche” che si possono effettuare.

Per poterle identificare è necessario capire come funzionano i bit e qual è la loro aritmetica. È per questo motivo che ci occupiamo, ora, di definire la cosiddetta “Tabella della verità”.

Per rappresentare le funzioni logiche ci sono diversi modi, uno dei quali è rappresentato dalla tavola della verità, ovvero una tabella all’interno della quale vengono indicati i risultati della funzione logica come risultato dell’operazione specifica in relazione allo stato degli ingressi.

A scopo esemplificativo, viene di seguito mostrata una tabella della verità a due variabili di ingresso che prevede tutte le possibili uscite:

Le colonne nella sezione sulla destra, numerate da 0 ad F, rappresentano tutte le possibili combinazioni d’uscita. Ad alcune di queste, in particolare, verranno associati gli stati d’uscita di talune porte logiche, ovvero quei dispositivi che implementano funzioni specifiche (come vedremo meglio più avanti). Nello specifico, le colonne 1, 6 e 7 risulteranno essere, rispettivamente, le uscite logiche di funzioni che assumeranno particolare importanza, già note come AND, XOR e OR.

La funzione NOT

Considerato che la logica è binaria, e che quindi esistono solo due stati possibili, la funzione logica più semplice alla quale possiamo pensare è quella che restituisce l’altro dei due valori. In particolare, potrebbe essere utile negare quel valore al fine di realizzare una funzione logica più complessa. Questa operazione elementare prende il nome di negazione, per l’appunto, ed è indicata dalla sigla NOT.

Come tutte le funzioni logiche, anche per definire questa è necessario utilizzare sia simboli grafici sia equazioni. Pertanto sia che l’equazione caratteristica della funzione logica NOT sarà

mentre per indicare graficamente la porta logica che implementa questa funzione utilizzeremo il simbolo

Banalmente, per spiegare il funzionamento di questa porta, potremmo fare un esempio: supponiamo che la variabile logica A, di ingresso, stia ad indicare un interruttore aperto, e che la variabile logica d’uscita Y, invece, implichi l’accensione di una lampadina. Se l’interruttore aperto, a rigore, non circola corrente. Ergo la lampadina dovrebbe essere spenta ma la funzione logica fa proprio questo: rendere la lampadina accesa. O meglio, comanda il circuito in modo tale che la lampadina s’accenda. Evidentemente vale anche il viceversa.

La funzione AND

Come per la funzione che realizza la negazione, anche questa è caratterizzata da un simbolo, un’espressione analitica e da una tabella della verità. Si indica, quindi, con

l’operazione in questione. Di fatto, il valore logico d’uscita risulta alto solo e soltanto nella condizione per la quale entrambi gli ingressi sono presenti. Si tratta, quindi, di richiedere la contemporaneità di due fenomeni, ovvero i due valori logici di ingresso devono essere entrambi posti ad 1, cioè alti.

La tabella della verità di questa funzione logica è riportata qui di seguito:

A

B

Y

0

0

0

0

1

0

1

0

0

1

1

1

Allo stesso modo necessario definire il simbolo che identifica la porta:

Facciamo, come nel caso precedente, un esempio: supponiamo che il valore logico dell’uscita rappresenti l’accensione della lampadina. Questo sarà possibile se sull’ingresso A si troverà un valore alto in corrispondenza del fatto che l’interruttore di comando e chiuso e sull’ingresso B il valore sarà ancora alto perché, per esempio, la batteria di alimentazione è carica.

Se concettualmente è tutto chiaro finora, procediamo più velocemente da questo momento in poi.

La funzione OR

Questa funzione, di fatto, corrisponde alla somma dei valori logici dei 2 bit posti in ingresso. Pertanto possiamo scrivere che l’equazione caratteristica è

mentre la tabella della verità è

A

B

Y

0

0

0

0

1

1

1

0

1

1

1

1

 

 

 

 

 

 

 

ed il simbolo che rappresenta la porta è

Prima di continuare è fondamentale introdurre la nozione di “sistema funzionalmente completo”. Un sistema, inteso come complesso di operazioni, può essere considerato “funzionalmente completo” se grazie alle operazioni di cui si costituisce è possibile effettuare qualsiasi tipo di operazione tra i bit. Si tratta, quindi, di un sistema chiuso grazie al quale le regole dell’aritmetica booleana e quelle delle operazioni (funzioni) logiche definite permettono di ottenere qualunque risultato possibile.

Questa nozione viene richiamata adesso perché è importante sottolineare che il sistema costituito dalle tre porte di cui abbiamo parlato finora, ovvero NOT, AND e OR, si dimostra che è effettivamente un sistema funzionalmente completo.

Vedremo, andando avanti, che alcune funzioni non permettono di ottenere questo risultato sarà, quindi, necessario utilizzare altre funzioni per poter ottenere lo stesso tipo di sistema.

Questo concetto tornerà utile adesso che definiremo le prossime due funzioni, ovvero NAND e NOR, ma soprattutto verrà utilizzato più avanti. Vale comunque la pena di anticipare che è possibile dimostrare che grazie a combinazioni di sole porte NAND o di sole porte NOR, si possono ottenere sistemi funzionalmente completi.

L’anticipazione, quindi, sta nel fatto che scopriremo che così com’è possibile mettere in piedi un intero sistema logico grazie all’utilizzo di OR, AND e NOT, sarà possibile anche che le sole porte NAND e le sole porte NOR realizzino sistemi funzionalmente completi.

Ma torniamo, adesso, a noi…

La funzione NAND

Quanto detto in precedenza suggerisce che, molto spesso, è importante disporre di funzioni composite, ovvero di funzioni non elementari. Ecco per quale motivo nasce la funzione composita NAND, che è caratterizzata dalla seguente equazione

dalla tabella della verità riportata qui di seguito

A

B

Y

0

0

1

0

1

1

1

0

1

1

1

0

 

 

 

 

 

 

 

e rappresentata grazie al simbolo

Ed è proprio quest’ultimo che suggerisce che, di fatto, NAND voglia in realtà dire NOT(AND(A,B)).

La funzione NOR

A questo punto si intuisce facilmente che la funzione NOR sia, in qualche modo, la duale della precedente. La possiamo caratterizzare tramite l’equazione

la relativa tabella della verità

A

B

Y

0

0

1

0

1

0

1

0

0

1

1

0

 

 

 

 

 

 

 

ed il simbolo circuitale

OSSERVAZIONE: le logiche di cui abbiamo parlato, a sole NAND e a sole NOR, verranno trattate più avanti non appena avremo meglio definito l’artimetica Booleana e la minimizzazione delle funzioni logiche. Tempo al tempo, come si suol dire :)

Le funzioni EXOR ed EXNOR

Esistono, poi, due funzioni, una l’inversa dall’altra, che sono EXOR ed EXNOR. Le funzioni in oggetto sono, rispettivamente, l’OR-esclusivo ed il suo negato. La prima funzione è caratterizzata dall’equazione

e di seguito riportiamo la tabella della verità

A

B

Y

0

0

0

0

1

1

1

0

1

1

1

0

ed il suo simbolo

Per quanto riguarda la funzione duale, invece, l’EXNOR prevede la negazione dell’operazione. Così le uniche differenze saranno, nel nome, nell’equazione che dovrà semplicemente essere negata, nella tabella della verità che riporterà uscite complementate e nel simbolo, al quale si aggiungerà il “pallino” di negazione così come successo per NAND e NOR.

A differenza di quanto accade per NAND e NOR è importante dire, e si può anche dimostrare, che EXOR ed EXNOR non possono costituire un sistema funzionalmente completo.
OSSERVAZIONE: le dimostrazioni di queste proprietà non sono state previste nella spiegazione ma, a richiesta, è possibile che vengano proposte.

OSSERVAZIONE: vi siete accorti che le Y di queste funzioni compaiono come colonne della prima tabella proposta?

Secondo voi, quali funzioni realizzano le altre?

Qualche esempio

Di seguito, grazie ad alcune immagini, riportiamo alcuni brevi esempi di utilizzo reale di alcune porte logiche. Lo scopo è quello di dare un’idea dell’implementazione di funzioni per dimostrare come queste possono funzionare nell’ambito di circuiti digitali più ampi.

Alla prossima puntata

Nell’attesa dei vostri commenti, con questo si conclude anche la seconda parte di questo corso. La prossima volta cercheremo di  finalizzare queste nozioni di base allo studio dei circuiti logici. Vedremo quali sono le leggi dell’algebra Booleana e cosa sono le Mappe di Karnaugh.

Come di consueto, la parola adesso è a voi: dubbi? Domande? Perplessità? Questioni?

 

Quello che hai appena letto è un Articolo Premium reso disponibile affinché potessi valutare la qualità dei nostri contenuti!

 

Gli Articoli Tecnici Premium sono infatti riservati agli abbonati e vengono raccolti mensilmente nella nostra rivista digitale EOS-Book in PDF, ePub e mobi.
volantino eos-book1
Vorresti accedere a tutti gli altri Articoli Premium e fare il download degli EOS-Book? Allora valuta la possibilità di sottoscrivere un abbonamento a partire da € 2,95!
Scopri di più

17 Comments

  1. etabeta154 27 novembre 2012
  2. Emanuele Emanuele 27 novembre 2012
  3. ruattolo 27 novembre 2012
  4. Emanuele Emanuele 27 novembre 2012
  5. Emanuele Emanuele 27 novembre 2012
  6. Emanuele Emanuele 27 novembre 2012
  7. Boris L. 27 novembre 2012
  8. Boris L. 27 novembre 2012
  9. Boris L. 27 novembre 2012
  10. Piero Boccadoro Piero Boccadoro 27 novembre 2012
  11. Emanuele Emanuele 28 novembre 2012
  12. Emanuele Emanuele 28 novembre 2012
  13. Piero Boccadoro Piero Boccadoro 28 novembre 2012
  14. Boris L. 29 novembre 2012
  15. TheDrillMaster 17 dicembre 2012
  16. Max Caruso 16 ottobre 2013
  17. Max Caruso 16 ottobre 2013

Leave a Reply