L'Informazione entra in Macchina

 

 

CIRCUITI

E RETI LOGICHE

Abbiamo finora esaminato codici binari e artefatti meccanici di tipo binario attraverso i quali trasmettere essenzialmente comandi.Con l’avvento dell’energia elettrica si verifica un salto di qualità: non più ingranaggi ma impulsi elettrici.Ma come funziona una macchina elettrica? A volte sembra che ragioni: come mai? E come la si potrà costruire per poter immagazzinare ed elaborare dati? Vista l’età ed i possibili prerequisiti degli studenti destinatari non si intende certo proporre un corso di elettrotecnica e/o di elettronica ma si ritiene utile presentare, anche se in maniera alquanto semplificata, alcune nozioni che possono fornire l’idea di come e perché le macchine elettroniche funzionino in un certo modo e, quindi, quali siano le prestazioni che si può sperare di ottenere da esse.

 


Prerequisiti


  • Principi di logica formale
  • Operazioni e loro proprietà
  • Concetti di base sull’energia elettrica
  • Modulo precedente

 


Obiettivi formativi



Obiettivi specifici

 


Descrizione delle fasi di lavoro



 


Contenuti


Sapere


Saper fare


Metodologie


Collegamenti

Prima lezione Le macchine elettriche Saper individuare le componenti di una macchina Saper attuare una comunicazione verso una macchina Conversazione clinica Lezione frontale Primo modulo Automi
Seconda lezione I circuiti elettrici
Prevedere il comportamento di un circuito elettrico Progettare e costruire un circuito elettrico

Conversazione clinicalaboratorio
Logica
Fisica
Terza lezione Le porte logiche Riflettere sul ruolo delle reti logiche in relazione all’apparente intelligenza delle macchine elettroniche
Usare una rete logica per ottenere determinati comportamenti da una macchina
Lezione frontale. Laboratorio
Logica Fisica. Modulo precedente
Quarta lezione Semplificazione di reti logiche Le reti come insieme di classi di equivalenza. Il significato della semplificazione di una qualsiasi espressione Usare il calcolo proposizionale. Costruire una rete a partire dal risultato atteso
Lezione frontale Laboratorio Dibattito Fisica. Semplificazione di espressioni
Quinta lezione Le unità ingresso e uscita Comprendere alcune delle modalità con le quali i dati in ingresso e/o uscita vengono elaborati dalle interfacce
Scegliere i collegamenti necessari alla codifica di una data cifra
Lavoro di gruppo Laboratorio
Numerazione binaria e codici BCD e ASCII
Sesta lezione Semisommatore e sommatore Essere consapevoli che anche i calcoli vengono realizzati mediante una rete logica
Saper seguire il percorso delle variabili in una rete complessa
Lavoro di gruppo
Operazioni binarie

 

 

Ritorno al Sommario

 

 



Materiali


Per ogni singola lezione si possono trovare esempi di esercizi, schede esplicative per gli alunni, complementi per gli insegnanti.

Gli oggetti usati nel corso delle lezioni sono invece presentati e illustrati nell’appendice.

Per illustrare il funzionamento delle reti logiche e la dinamica della relativa evoluzione è disponibile l’applicazione interattiva LogicNets, accessibile attraverso le pagine ipertestuali di questa unità. Un simile strumento permette, in particolare, di capire come le porte logiche possano essere impiegate per realizzare dispositivi come i flip-flop.

 

 



Prima lezione

Le macchine elettriche




Conversazione clinica

Si chiederà agli alunni di pensare a quelle macchine elettriche con le quali interagiscono nella vita di tutti i giorni e delle quali hanno già esaminato, nel precedente modulo, il linguaggio e il canale di comunicazione. Si osserverà che noi ne parliamo come di un essere umano e quasi ci aspettiamo che si comportino come tali.

Durante la discussione si cercherà di puntare sull’analisi del comportamento di alcune di esse per arrivare a distinguete fra una parte “esterna” che serve per introdurre i dati o per rispondere alle richieste (interfaccia) e una parte “interna” nella quale, in modo alquanto misterioso, la macchina prende decisioni e sceglie comportamenti (parte algoritmica).



Lezione frontale

È il momento di presentare la struttura generale di una macchina elettrica.

Nel desiderio di instaurare un rapporto “amichevole” con le macchine si è cercato di progettarle in modo che, come se fosse una persona, la macchina:

Quindi se ne può schematizzare il comportamento come segue:

 




Si possono proporre alcuni esempi come il termostato per il riscaldamento invernale, il cancello elettrico azionato dal telecomando, il giradischi, il lettore di CD, il distributore di bevande…che serviranno ad evidenziare l’estrema varietà riguardo al tipo di “dati” in ingresso e di “lavoro” prodotto in uscita. In alcuni casi inoltre il lavoro in uscita può consistere nel reinserimento nella macchina del risultato dell’elaborazione dei dati.


Ma attraverso cosa la macchina “sente” o “agisce”?


Per meglio esemplificare la sua struttura può risultare utile la seguente analogia.


Un ragazzo sta sciando. All’improvviso gli si para davanti un ostacolo e il ragazzo, memore di precedenti cadute, muove gli sci in modo da frenare.


Possiamo schematizzare il suo comportamento come segue:

 


Se analizziamo più da vicino la “macchina” uomo-sci potremo perfezionare lo schema:

 



Generalizzando potremo osservare l’analogia con una macchina elettrica:

 




Nella quale input come temperatura, pressione di un tasto, fumo, raggi infrarossi, ... vengono tradotti in segnali elettrici e viceversa da segnali elettrici si ottengono output luminosi, sonori, ...



Esercizi proposti:

nel racconto della prima lezione del primo modulo riesamina le macchine coinvolte negli atti comunicativi, cerca di individuarne le interfacce e descrivi il loro comportamento.

 


Note per l’insegnante


Se nel contempo si è fatto uno studio sulla classificazione dei problemi, si può parlare del centro decisionale analizzando il comportamento di alcuni piccoli automi come, per esempio, un distributore di bevande e ritrovare il grafo degli stati.

 

Complementi

 

 




Seconda lezione

I circuiti elettrici



Visto che si suggerisce di attuare la presente unità usando un’ora settimanale si ritiene che a questo punto (ottava settimana) l’insegnante abbia già affrontato la logica o per lo meno i connettivi et, not, vel e le relative regole di calcolo proposizionale.

Si suggerisce di effettuare questa lezione nel laboratorio di fisica o per lo meno di portare in classe il materiale elettrico necessario in quanto esso costituisce uno dei mediatori attivi più accattivanti e motivanti lo studio.


Conversazione clinica

Nella lezione precedente abbiamo parlato di elettricità: quali idee si sono fatti in proposito gli allievi? In mancanza di un corso parallelo di fisica nel quale si potrebbero anticipare alcuni concetti elementari sull’energia elettrica, si potranno sondare le loro conoscenze anche a livello ingenuo invitandoli ad immaginare e/o disegnare un circuito elettrico con un interruttore e una lampadina


Intervista guidata

Concentriamo ora l’attenzione su macchine che presentino una interfaccia costituita da più interruttori (o sensori). Perché si comportano in modo diverso le une dalle altre?

Si potranno inizialmente presentare due circuiti, con interruttori rispettivamente in serie e in parallelo, dei quali per il momento si vedano solo due interruttori e una lampadina che si accende o si spegne. Dopo aver fatto alcune prove con l’uno e con l’altro si accetteranno congetture sulla composizione interna del congegno.

Questa situazione a scatola chiusa fa sì che, per quanto i circuiti in questione siano elementari, anche gli alunni che li hanno già incontrati alle medie abbiano difficoltà a riconoscerli, ma, alla fine, essere riusciti a scoprire il tracciato interno li incoraggerà, nelle lezioni seguenti, a cercare di scoprire cosa contengono altre “scatole nere” molto più misteriose. Dopo aver aperto i contenitori ed osservato la posizione dei fili e degli interruttori, sarà facile immaginare e disegnare altri circuiti più complessi oppure interpretarne alcuni già disegnati descrivendoli a parole.

Questa descrizione ("… la lampadina si accende quando chiudo A ma non B oppure…") offre la possibilità di riflettere sulla parte strettamente linguistica e sui i connettivi che spontaneamente vengono usati.

Ne emerge l’analogia fra lo stato degli interruttori e il valore di verità delle proposizioni, fra le posizioni degli interruttori e gli operatori logici.



 


Esercizi proposti

circuiti elettrici





Note per l’insegnante


 




Terza lezione

Le reti logiche


 

Vengono ora abbandonati i circuiti elettrici e preferite le porte logiche.
La scelta è dovuta essenzialmente a quattro motivi:


Lezione frontale

Dopo aver presentato le porte logiche e sottolineato l’analogia fra circuiti elettrici e connettivi logici, si deve richiamare il discorso fatto nella prima lezione del modulo.

Le macchine con le quali interagiamo quotidianamente sono state progettate in modo da proporsi come un interlocutore umano al quale noi, attraverso manipolazioni di cursori, pulsanti e quant’altro abbiamo l’impressione di fare dei discorsi. Chi non ha mai esclamato davanti ad una macchina che non funziona “Su! Accenditi! Perché non ti muovi?” mentre preme per l’ennesima volta il pulsante di avvio?

Nella illusione di un contatto “umano” dimentichiamo che la comunicazione ad una macchina, come già osservato nel primo modulo (terza lezione) si riduce quasi sempre alla chiusura di un circuito o ad una variazione di tensione e l’impressione che un dispositivo voglia o non voglia obbedire a delle direttive è dovuta alla struttura della rete logica che costituisce la parte decisionale, il cuore della macchina stessa.


Esaminiamo quindi questa parte decisionale.

Nel progettare questa parte si deve tenere conto del lavoro che si vuole ottenere ma anche delle variabili (dati) in base alle quali si determina il comportamento della macchina.

Supponiamo per esempio di voler programmare il sistema di irrigazione del nostro giardino in modo che la pompa dello spruzzo di irrigazione si metta in moto se la temperatura supera i 30 gradi, oppure se sono passate le ore 20 e viene premuto il tasto di avvio.

In questo caso il lavoro richiesto è l’irrigazione e si può ottenere mediante l’invio di un apposito impulso elettrico al dispositivo di accensione della pompa.

Le variabili coinvolte (dati in ingresso) sono la temperatura, l’ora e la posizione del tasto di avvio ed il loro valore viene rilevato da apposite interfacce.

Posto

I = irrigare T = la temperatura supera i 30 gradi
O= sono passate le ore 20 P = il tasto è stato premuto

l programma di lavoro che abbiamo richiesto può essere tradotto nella seguente espressione



 

Che corrisponde alla seguente rete logica:



Dove T, O, P saranno i collegamenti rispettivamente a un sensore di temperatura, a un orologio e all’interruttore, mentre I rappresenta il collegamento a un dispositivo di accensione della pompa.

Si può quindi concludere che, realizzando tale rete, si ottiene una “macchina” che esaudisce le nostre richieste ed effettivamente, esaminando la corrispondente tabella

T
O
P
I
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
1


possiamo verificare che la macchina irrigatrice entrerà in funzione solo nelle circostanze prescritte.

La parte decisionale risulta quindi essere una rete logica costruita dal progettista in modo da soddisfare tutte le esigenze che un ipotetico cliente potrebbe esprimere attraverso proposizioni e connettivi logici.

Es.: “voglio che il cancello di ingresso si apra se ho disattivato l’allarme e uso il telecomando o la scheda magnetica”.

Il lavoro richiesto è l’apertura del cancello. Il comportamento della macchina (il suo programma di lavoro) viene condizionato attraverso: disattivazione dell’allarme (A) AND (uso del telecomando (T) OR della scheda magnetica (M)).

 






Costruita la rete logica corrispondente, ci accorgiamo che la macchina e la sua presunta “umanità” è tutta lì: i tre sensori in ingresso, il filo in uscita, (che manda l’impulso per l’apertura ad un’altra macchina) e, nel mezzo, la rete, che è in effetti la vera macchina.

E il colloquio che noi pensiamo di avere con essa (apriti cancello!) lo ha avuto in effetti il committente con il progettista che lo ha poi tradotto nella rete.

Dopo aver progettato le reti logiche sulla carta, per poterne verificare la correttezza è disponibile un programma che consente di realizzarle e di simulare la propagazione dei segnali al loro interno. La possibilità di vedere "alla moviola" come si propagano i segnali permetterà, in particolare, di diventare consapevoli del ruolo dei tempi di propagazione in reti complesse come gli addizionatori e di capire il funzionamento delle unità di memoria (flip-flop), argomenti che saranno affrontati alla fine di questo modulo e nel prossimo.



Esercizi proposti

problemi da risolvere attraverso reti logiche.



Note per l’insegnante

http://users.unimi.it/metis/METIS-MKB/courseware/algebra_booleana/

 

Complementi

 



Quarta lezione

Reti equivalenti


 


Lezione frontale

Nella precedente lezione sono stati esaminati esempi e proposti per casa esercizi elementari dove la richiesta si poteva facilmente tradurre in una proposizione logica abbastanza semplice e facilmente riconducibile ad una rete logica di immediata stesura. Quando il problema si fa complesso coinvolgendo numerose variabili tutto ciò risulta alquanto laborioso e perciò, invece di cercare di tradurre il discorso in espressione logica, si preferisce partire dalla tabella dei risultati previsti costruendo reti logiche con tabella assegnata.


Anche in questo caso l’espressione e la relativa rete possono presentarsi alquanto complesse. È in questa occasione che il calcolo proposizionale ha nella semplificazione di reti logiche una delle sue applicazioni più interessanti.

Può essere infatti l’occasione giusta per far notare il vero scopo di tanti calcoli, scomposizioni e semplificazioni delle espressioni algebriche che spesso vengono vissute dagli allievi come un puro gioco di precisione senza alcun apporto pratico.
Come ci sono infinite espressioni numeriche che portano allo stesso risultato e che quindi si possono dire tra loro equivalenti, così circuiti che portano ad una stessa combinazione in uscita formano classi di equivalenza entro le quali conviene scegliere il circuito più semplice.


Esercizi proposti

semplificazione di reti



Nota per l’insegnante


A proposito di reti equivalenti si può far dimostrare che ogni connettivo si può tradurre in una opportuna composizione di NAND che, quanto a costo di produzione, risulta essere il circuito più economico e quindi il più usato (lo ritroveremo nel terzo modulo).

 


 

Complementi

 

 




Quinta lezione

Unità di ingresso e uscita


 



Intervista guidata

Si è trovato come costruire una macchina che si comporti secondo i nostri desideri usando alcuni interruttori per comunicare con esse. Ogni richiesta corrisponde ad una combinazione diversa e quindi ad una risposta (un lavoro) diversa. Ma se il lavoro che desidero ottenere da una macchina non è determinato semplicemente dall’accensione e dallo spegnimento di un unico dispositivo, ma dall’attivazione e disattivazione di una serie di componenti, come avviene quando si vuole codificare? si presentano due problemi: uno è come introdurli, l’altro è dove custodirli.

Tralasciamo per il momento il secondo e osserviamo l’unità di input di una calcolatrice.

I dati che vi si inseriscono sono di due tipi: numerici o funzionali.

(Noi tendiamo a considerare dati esclusivamente quelli numerici ma, dal punto di vista dello strumento, anche il segno di operazione è un dato.)


Questi dati vengono introdotti attraverso la pressione dei tasti, uno per ogni cifra o operatore.


In effetti un tasto non è altro che un interruttore che chiude un circuito: quando la calcolatrice è accesa, e quindi tutti i suoi componenti sono sotto tensione, la pressione del tasto crea una variazione della tensione stessa inviando il segnale corrispondente lungo un filo.

Per ogni tasto vi è quindi un solo filo che porta il dato: un solo bit. Come si può trasmettere un segno di operazione o addirittura un numero composto da più cifre?

Per quanto riguarda il numero, osserviamo esso viene inviato non in blocco ma cifra per cifra e questa potrebbe sembrare già una semplificazione.


Per un osservatore esterno però il nocciolo del problema rimane irrisolto in quanto ci si chiede come la tensione su un unico filo possa differenziare 10 situazioni diverse (le 10 cifre): forse con 10 livelli di tensione diverse?

È una alternativa che appare abbastanza improponibile.


Dalla discussione che segue si dovrebbe far notare che il fatto che la calcolatrice accetti una cifra per volta fa pensare ad una codifica di tipo BCD.

Ma una codifica di quel genere prevede l’uso di 4 bit (24 > 10) e quindi di quattro tensioni o di quattro fili: allora sotto il tasto c’è un filo? ce ne sono quattro? ce ne sono di più?


Si porta gli allievi a concludere che serve una interfaccia, nel nostro caso un codificatore, che trasformi la variazione di tensione su un filo in una combinazione di tensioni su quattro fili.





Lezione frontale

Questa componente elettronica, senza entrare nei dettagli, si può immaginare come una ”scatola nera” con dei fili provenienti dalla tastiera in entrata e, per ora, con 4 fili in uscita.


In questi fili i livelli di tensione sono due e vengono, come sempre, denominati con “0” e “1”.

 




Quando la calcolatrice è accesa e quindi tutti i suoi componenti sono sotto tensione, la pressione del tasto crea una variazione della tensione stessa come indicato nella figura (il tasto non è premuto => uscita 1; il tasto è premuto => uscita 0) e invia il segnale corrispondente lungo il filo che lo collega al codificatore.


Guardando più in dettaglio possiamo vedere che tale codificatore può essere composto da una rete logica di cui la parte principale è schematizzata nella seguente figura dove, come succede nella realtà, sono state usate porte a più ingressi (che negli esercizi delle lezioni precedenti erano state escluse per motivi didattici) e di tipo NAND in quanto, come detto sopra, sono le più convenienti dal punto di vista della produzione.

 




Come si può notare questa sezione del codificatore interessa i tasti dall’1 al 9 (tralasciamo per il momento il discorso sullo zero).

Inizialmente tutti gli interruttori sono posizionati a 1 e ciò produce uno 0 in tutte le uscite.

La pressione di un tasto porta a 0 la tensione sul filo sottostante mentre gli altri fili che pervengono alle porte NAND ad esso collegate, non essendo premuto il tasto corrispondente, hanno ancora tensione1. La tensione all’uscita da tali porte vale perciò 1.

 


 

Per maggiore chiarezza nella figura è stato evidenziato solo il filo del tasto 6 che è posto a “0” e sottintesi quelli che dagli altri tasti (4, 5, 7) portano tensione “1”.



Va notato che quando non è premuto alcun tasto, questa parte del codificatore dà come uscita 0000

Per questo motivo non c’è un collegamento delle porte con il tasto 0 ma da esso esce comunque un filo che va a confluire in una ulteriore rete che serve a far distinguere alla macchina se è stato premuto un tasto numerico o uno funzionale e a far visualizzare il simbolo dello zero quando esso fa parte della rappresentazione del numero che si sta componendo.

Il codificatore (coder) è anche incluso tra i progetti già predisposti per essere utilizzati con il programma di simulazione delle reti logiche e può essere selezionato direttamente dal menù.


Si può notare in particolare che in questo modo vengono utilizzate solo 10 tra le 16 combinazioni di 0 e 1 che si possono ottenere con 4 bit.

In effetti tali possibilità in eccesso (1010, 1011, 1100, ...) potrebbero venire associate dal progettista a segni di operazione o ad altro e come tali venire riconosciute dal codificatore attraverso una ulteriore rete logica.


Anche la tastiera di un qualsiasi computer presenta un funzionamento analogo. La differenza principale sta nel fatto che attraverso tale tastiera noi vogliamo comunicare anche lettere dell’alfabeto, simboli, ecc., per cui non sarà possibile usare solo 4 bit ma ne serviranno almeno 7 e una nuova codifica, concordata a livello internazionale, per esempio il codice ASCII.




Esercizi proposti

le reti logiche della lezione precedente





Note per l’insegnante





Sesta lezione

Progettiamo un sommatore



Questa lezione assieme alla precedente serve da preparazione al terzo modulo. Manca, all’interno di tutto il discorso, una componente essenziale: dove si conserva l’informazione? Per il momento si parlerà genericamente di un deposito o zona di memoria.


Lavoro di gruppo

Dopo aver introdotto i numeri, li posso elaborare? Quali operazioni potrò fare?

Utilizzando quanto appreso nella terza e quarta lezione gli allievi dovrebbero essere in grado di progettare almeno un semisommatore e, con l’aiuto dell’insegnante, un sommatore.


Esaminiamo la tabella del semisommatore


A
B
S
R
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1


Si ottiene per S:

e per R:


da cui, a seconda delle semplificazioni, si ottengono le seguenti reti logiche:






Oppure

 

 

oppure

 

 

poi il sommatore per un bit:

 

 

e quindi n sommatori in cascata per sommare numeri con n bit:

 


Il s
emisommatore (halfadder), il sommatore (bitadder) e l'addizionatore a quattro bit (adder_4) sono inclusi tra i progetti già predisposti per essere utilizzati con il programma di simulazione delle reti logiche e possono essere selezionati direttamente dal menù.





Note per l’insegnante

Esercizi relativi al secondo modulo




 

Ritorno al Sommario