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 Trovare il collegamento tra logica e computer, di cui tutti parlano, per scoprire che non significa che il computer “pensa” e perciò ha un comportamento “logico” Ricordare che dietro alla “magia” di ogni macchina elettronica c’è un progetto umano con tutti i limiti che tale “umanità” comporta Essere consapevoli che comunque le idee risolutive e l’interpretazione dei risultati ( anche se apparentemente scontate) risiedono esclusivamente nella mente umana ad un elevato livello di astrazione e sofisticazione. Obiettivi specifici Motivare in parte lo studio della logica e del calcolo proposizionale Saper tradurre alcune asserzioni espresse nel linguaggio italiano nella corrispondente rete logica Stimolare la creatività degli allievi nell’analizzare e/o progettare semplici macchine Usare le proprietà delle operazioni logiche per semplificare una rete Acquisire manualità e abilità pratiche Prendere le distanze dalla fantascienza osservando le caratteristiche ma anche alcuni limiti delle macchine elettroniche Rivalutare il ruolo dello studio dell’hardware per rilevare l’elementarietà dei suoi principi fondanti piuttosto che la sua complessità. 1 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 in un circuito elettrico Progettare e costruire un Conversazione circuito elettrico clinica. Laboratorio 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 Semplificazio ne di espressioni Quinta lezione Le unità ingresso e uscita Comprendere alcune delle Scegliere i collegamenti Lavoro di gruppo modalità con le quali i necessari alla codifica di Laboratorio dati in ingresso e/o uscita una data cifra vengono elaborati dalle interfacce Numerazione binaria e codici BCD e ASCII Sesta lezione Semisommatore e sommatore Essere consapevoli che anche i calcoli vengono realizzati mediante una rete logica Operazioni binarie Saper seguire il percorso Lavoro di gruppo delle variabili in una rete complessa 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. 2 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: Acquisisca il dato Decida cosa fare Risponda con un lavoro 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”? 3 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. 4 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 5 Note per l’insegnante I soliti disegni di circuiti in parallelo o in serie fanno pensare “se gli interruttori…. allora la lampadina si accende” e quindi ad una implicazione o, come minimo, ad una relazione causaeffetto. Ne deriva una misconoscenza dell’isomorfismo tra i circuiti e le espressioni di logica. Forse sarebbe meglio utilizzare come primo esempio l’acqua, che scorre o non scorre, o per lo meno non scegliere due fenomeni diversi diversi in quanto è sul valore di verità associata al fenomeno che si manifesta il problema. Attraverso l’osservazione dei circuiti sarà più facile arrivare a disegnare il circuito che corrisponda ad alcune consegne contenenti come connettivi un et o un vel. Più difficile è disegnare lo schema di un dispositivo che preveda un non; infatti per il corrispondente circuito è necessario ricorrere ad una elettrocalamita che non è facile rappresentare nel disegno e per gli alunni la presenza nello stesso disegno di un interruttore e del suo negato viene vissuta prevalentemente come un atto di fede su quanto dichiara l’insegnante. Anche per questo motivo si suggerisce di passare velocemente alla presentazione delle reti logiche ( prossima lezione) in quanto, dal punto di vista grafico, non presentano questa difficoltà. 6 Terza lezione Le reti logiche Vengono ora abbandonati i circuiti elettrici e preferite le porte logiche. La scelta è dovuta essenzialmente a quattro motivi: il loro studio è fondamentale per seguire il nostro percorso all’interno della macchina, la presenza nello stesso circuito di un valore e del suo negato non dà i problemi di disegno, se nelle lezioni di aritmetica, che si intendono svolte in parallelo, è già stata presentata la rappresentazione ad albero delle espressioni, la lettura e il disegno di una rete risulterà molto più facile e comprensibile rispetto al circuito elettrico, interpretando la rete di un semplice dispositivo nella sua versione di proposizione logica è molto più facile comprendere e giustificare la sensazione di “umanità “ nel nostro rapporto con le macchine. 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. 7 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 O= sono passate le ore 20 T = la temperatura supera i 30 gradi P = il tasto è stato premuto Il programma di lavoro che abbiamo richiesto può essere tradotto nella seguente espressione I = T ∨ ( O ∧ P) Che corrisponde alla seguente rete logica T I O P 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 0 0 0 0 1 1 1 1 O 0 0 1 1 0 0 1 1 P 0 1 0 1 0 1 0 1 I 0 0 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)). 8 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. Esercizi proposti problemi da risolvere attraverso reti logiche. Note per l’insegnante Informazioni dettagliate sulle reti logiche si possono leggere su numerosi siti, per es. http://users.unimi.it/metis/METIS-MKB/courseware/algebra_booleana/ Le operazioni et e vel vengono fisicamente realizzate da due tipi di circuiti elettronici, detti porta AND e porta OR. Come già osservato all’inizio di questo modulo, anche se sarebbe interessante approfondire il discorso del passaggio dagli interruttori ai relè ai transistor ed infine alle porte, non è questa la sede per un approfondimento di come esse siano costruite: verranno trattate come “scatole nere” definendo semplicemente porta logica un circuito elettronico che opera con uno o più segnali di input per produrre un segnale di output e le cui tabelle sono isomorfe a quelle delle operazioni logiche elementari. Un discorso analogo si fa per il NOT. Per questa lezione sono state preparate alcune porte AND, OR e NOT (secondo le istruzioni allegate) per far realizzare fisicamente le reti degli esempi proposti in modo che gli allievi possano vedere che effettivamente la macchina da loro progettata reagisce come previsto. Va osservato che comunque il tipo di macchina di cui si sta parlando è ancora cablata e che per ottenere un comportamento diverso si deve cambiare di volta in volta la rete logica (che è quanto si doveva fare con i primi computer che richiedevano giorni di lavoro per spostare e reinserire cavi). Per poter seguire le illustrazioni del modulo seguente, oltre ai due operatori binari richiamati sopra e l’operatore unario NOT che corrisponde alla negazione, si deve introdurre anche la porta che risulta dalla fusione di un AND con un NOT detta NAND. 9 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). A B A B A B A B A A 10 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. 11 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. U4 U3 U2 U1 1 9 8 7 6 5 4 3 2 1 0 0 12 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. 0 1 1 0 1 9 8 7 6 5 4 3 2 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” 0 0 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. 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 13 Note per l’insegnante È importante far osservare agli allievi come la codifica interna del simbolo corrispondente al tasto premuto, dal punto di vista della calcolatrice, non sia altro che un dato. Si pensa sempre a un dato numerico quando si parla di memorizzare ed elaborare ma è di fondamentale importanza sottolineare che è un dato anche il segno di operazione. L’operazione verrà poi realizzata da una routine, ma la routine associata all’operatore non viene attivata dal tasto premuto: la rappresentazione del segno di operazione viene anch’essa memorizzata come dato per essere poi interpretata più tardi. Per le classi sperimentali non si deve dimenticare di evidenziare che anche i programmi che vengono sottoposti al computer vengono visti dal compilatore come dati in ingresso. Tempo permettendo, sarebbe forse questo il momento giusto per riprendere e sottolineare la differenza fra dato e informazione. Dopo aver esaminato il progetto di un codificatore a quattro uscite ( codifica BCD) si potrà facilmente prevedere il tipo di hardware quando si debbano codificare anche lettere e caratteri vari (richiamo del codice ASCII) e si potrà accennare a come con un metodo analogo, anche se più complesso, si potrebbe costruire un decodificatore. 14 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 0 0 1 1 B 0 1 0 1 S 0 1 1 0 R 0 0 0 1 Si ottiene per S : ( A ∧ B ) ∨ ( A ∧ B ) e per R: A ∧ B da cui, a seconda delle semplificazioni, si ottengono le seguenti reti logiche: A B S R oppure A oppure S B A S B R R 15 poi il sommatore per un bit R1 A S B R3 R=R2+R3 R2 e quindi n sommatori in cascata per sommare numeri con n bit A0 B0 A1 B1 A2 B2 A3 B3 R S3 S2 S1 S0 16 Note per l’insegnante Agli allievi dà molta soddisfazione arrivare da soli ad uno dei semisommatori. È invece inutile perdere tempo nella progettazione del sommatore in quanto lo scopo della presente lezione e del modulo in generale è di far vedere che, con opportuni calcoli, ( e molta pazienza) si può arrivare a progettare anche un automa che esegua calcoli, attività che agli allievi appare molto più astratta e “intelligente” che avviare motorini o accendere luci. La propagazione dei segnali che rappresentano i livelli logici nel sommatore può essere illustrata attraverso l’applicazione interattiva LogicNets, accessibile attraverso le pagine ipertestuali. Questo strumento permetterà di divenire consapevoli del ruolo dei tempi di propagazione dei segnali elettrici. Sarà utile mettere in evidenza come da una interpretazione di 0/1 come di valori di verità F/V si passa in questa fase di progettazione alla interpretazione dei valori 0/1 come cifre binarie. La logica diventa quindi un fatto puramente formale. Le sue regole sintattiche vengono usate per eseguire le stesse operazioni ma con diversi modelli interpretativi. Quanto ai rimanenti tipi di operazione sarà l’occasione per analizzare quelle aritmetiche e in special modo ripassare l’uso del complemento nelle sottrazioni (vedi Appendici). 17