Pin It

Nell’articolo apparso su Archimede 1/2021 abbiamo parlato di costruzione di porte logiche nel videogioco Minecraft, presentando nel dettaglio i gate NOT, AND, OR, XOR.

In questo post vogliamo fare un passo di lato e un passo in avanti rispetto quell’articolo:

  • di lato, perché mostreremo come sia possibile costruire porte e circuiti logici in ambienti “non tradizionali”, oltre il citato Minecraft, compresi ambienti non virtuali;
  • in avanti, perché realizzeremo come, una volta fornito un insieme funzionalmente completo di porte logiche, sia possibile costruire un oggetto in grado di sommare due numeri, un’operazione semplice, ma che apre le porte alla complessità di in un computer moderno.

Questa raccolta di materiale fa parte di una sperimentazione nel liceo in cui insegno (QUI la sezione sul sito del corso), con l’idea di dare una risposta alla seguente domanda:

Il computer sembra ragionare, mentre quello che vedo aprendolo è solo un insieme di circuiti elettrici, “lucette accese e spente”. Come riesco a passare da “corrente elettrica” ad un primo, seppur basilare, accenno di “ragionamento”?

Sommatrici binarie

Non è difficile immaginare che, per costruire una calcolatrice a partire da sole porte logiche, sia necessario non ragionare con numeri in base 10, ma ricordare che il computer “ha solo 2 dita” e utilizzare quindi bit e notazione binaria.

Half-adder

Il primo circuito che consideriamo è l’Half-adder, in grado di sommare due numeri da un bit ciascuno, ovvero 0+0, 1+0, 0+1 e 1+1. Il ragionamento alla base di questo circuito non è complesso; l’output è formato da due bit, la somma S e il riporto C:

  • La somma deve essere nulla se sia A che B sono nulli, e deve essere nulla anche se sia A che B sono 1, dato che in quel caso avrò riporto di 1. Quando A=1 B=0 oppure A=0 B=1, la somma vale 1. Abbiamo appena descritto il funzionamento della porta logica XOR.
  • il riporto vale 1 solamente quando A=1 e B=1, negli altri casi non è necessario. Abbiamo descritto il funzionamento della porta logica AND.

Clicca sullo schema per informazioni ulteriori.

Full-adder

Quando sommiamo in colonna due numeri che hanno più di una cifra, abbiamo bisogno del riporto. Allo stesso modo, per tener conto di un riporto in input da un passaggio precedente, è necessario costruire un circuito più complesso. Clicca sullo schema per informazioni ulteriori.

Sommatrice binaria

L’algoritmo della somma in colonna, in qualunque base numerica, consiste nella ripetizione dei seguenti passaggi:

  1. considero le cifre più a destra dei due numeri, le unità;
  2. sommo i numeri di una cifra ciascuno, tenendo conto eventualmente del riporto del passaggio precedente;
  3. genero eventualmente un riporto, che userò nel passaggio seguente;
  4. ripeto dal secondo passaggio, considerando però le cifre immediatamente a sinistra.

Allo stesso modo, concatenando opportunamente Half-adder e Full-adder si può ottenere una calcolatrice in grado di sommare numeri binari di qualunque dimensione.

Sottrattrice binaria (più complessa)

Se si volesse anche calcolare la differenza tra due numeri, si dovrebbe sfruttare la proprietà del complemento a due, che permette di trasformare la differenza tra due numeri binari in una somma. In questo modo la sottrattrice si ottiene come piccola modifica di una sommatrice binaria. Ulteriori informazioni cliccando sullo schema qui sotto.

Guarda tutti questi circuiti su CircuitVerse, un utile tool online:

Ecco qui sotto invece un video in cui si costruisce una sommatrice utilizzando dei circuiti integrati.

 

Computer “non tradizionali”

A patto di saper costruire delle porte logiche, è possibile costruire l’equivalente di un computer (chiaro, qui ci accontentiamo di una sommatrice). Il cuore della questione è che non serve sia fatto di silicio e microprocessori, la logica di un computer può essere ricostruita dovunque io possa costruire una porta logica.

Un esempio è il domino. Qui sotto tre video che ne parlano:

Altri esempi di porte logiche e computer “non elettronici” si possono trovare ovunque:

Biglie (ne abbiamo già parlato su Maddmaths)

Lego

Mario Maker (click sull’immagine)

Campo Minato (click sull’immagine)

Minecraft

Anche su Minecraft è possibile costruire porte logiche, come spiegato nel dettaglio nell’articolo di Archimede e riassunto in questa immagine:

Di conseguenza è possibile creare una sommatrice binaria. Data la diffusione del gioco, il web è popolato da video a riguardo; ne riporto qui uno di una sommatrice a 8 bit come esempio, seguito da alcune immagini di un mondo creato da me:

Questa è la stanza che contiene la prima sommatrice. Sulle pareti di sinistra e destra si possono notare le leve che servono ad inserire gli input. La parete frontale contiene in risultato. L’unica colonna accesa avverte che il risultato della somma è 8:

Su Minecraft tutto è enorme. La seconda stanza è una calcolatrice in grado di sommare e sottrarre numeri a 9 bit:

Ecco i circuiti, visti dall’alto, che fanno funzionare le due stanze: il primo è la sommatrice a 4 bit, il secondo la sommatrice/sottrattrice a 9 bit. Il villaggio della seconda immagine è posto lì per dare un’idea delle dimensioni.

Davide Palmigiani

Pin It
This website uses the awesome plugin.