Logica binaria Porte logiche. Le porte logiche sono gli elementi fondamentali su cui si basa tutta la logica binaria dei calcolatori. Ricevono in input uno, due (o anche più) segnali binari in input, e ne restituiscono uno in output. Ne esistono diversi tipi, a seconda della loro tabella di verità. Le più importanti, il cui simbolo è raffigurato a lato, solo: la porta AND. Riceve in input due segnali A e B (i due pin a sx nella figura) e ne restituisce uno in output (il pin a dx). La tabella di verità è la seguente, e corrisponde al valore della comunissima congiunzione logica e fra due enunciati A e B. A in B in Out 0 0 0 0 1 0 1 0 0 1 1 1 la porta NOT. Riceve in input un segnali A (il pin a sx nella figura) e ne restituisce uno in output (il pin a dx). La tabella di verità è la seguente, e corrisponde al valore della congiunzione logica non di un enunciato A. A in Out 0 1 1 0 la porta XOR. Riceve in input due segnali A e B (i due pin a sx della figura) e ne restituisce uno in output (il pin a dx). La tabella di verità è la seguente, e corrisponde al valore della congiunzione logica o esclusivo fra due enunciati A e B (o uno, o l'altro ma non tutti e due): A in B in Out 0 0 0 0 1 1 1 0 1 1 1 0 la porta OR. Riceve in input due segnali A e B (i due pin a sx della figura) e ne restituisce uno in output (il pin a dx). La tabella di verità è la seguente, e corrisponde al valore della congiunzione logica o fra due enunciati A e B (uno, oppure l'altro, oppure tutti e due).
A in B in Out 0 0 0 0 1 1 1 0 1 1 1 1 la porta NAND. Come puoi vedere dalla figura il simbolo è identico a quello della porta AND a meno di un pallino sull'uscita. Il pallino sta ad indicare una negazione di quando esce dalla porta AND a sx. La tabella di verità sarà quindi la seguente, e corrisponde a quella della porta AND negata, ovvero con i valori in uscita invertiti. A in B in Out 0 0 1 0 1 1 1 0 1 1 1 0 Allo stesso modo della porta NAND esistono anche le porte NOR e NXOR. Progettiamo un sommatore Utilizzando le porte logiche sopra riportate, proviamo ora a costruire l'elemento fondamentale di una piccola calcolatrice che sommi due bit A e B in input, e che restituisca in output il bit corrispondente alla somma e l'eventuale bit di riporto. La tabella di verità del circuito dovrà quindi essere A in B in Somma out A xor B Riporto out A and B 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1
Verifica che il precedente circuito funzioni come da richiesta. Uno schema di questo genere è detto half adder, ovvero mezzo sommatore. Ora vogliamo costruire un circuito che sommi due numeri binari come di seguito. Potremmo pensare di usare un half adder per ogni bit, ovvero uno per la prima cifra a dx (i colori corrispondono a quelli dello schema del circuito). Per la prima cifra avremo riporto di 1. Proviamo ad utilizzare un altro circuito half adder per la seconda cifra: Ci accorgiamo però che per la seconda cifra gli addendi sono in realtà 3: i due bit dei due numeri più l'eventuale riporto del precedente bit! Il cosiddetto half adder non è quindi più sufficiente. Dobbiamo complicarlo in modo avere in input i bit dei due addendi più l'eventuale riporto, ottenendo il cosiddetto full adder, composto da due half adder più una porta or. Verifica che la seguente tabella di verità corrisponda al circuito in figura. Verifica che esegua le operazioni richieste.
A in B in Rrip in Somma A xor B Riporto A and B Somma out Rip_in xor Somma Riporto Rip_in and Somma Riporto out Riporto or Riporto 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 0 1 0 1 0 0 1 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 1 1 1 0 0 1 1 1 0 1 1 0 0 1 1 1 1 1 0 1 1 0 1 Per calcolare la somma possiamo quindi usare un circuito full adder per ogni bit. Ovvero per il primo bit avremo A_in=1, B_in=1, e Rip_in=0 dato che non abbiamo ancora nessun riporto in entrata. In uscita otterremo quindi 0 con riporto di 1. Utilizzando un secondo full adder per il secondo bit, avremo che A_in=1, B_in=1, e Rip_in=1 dato che il precedente circuito ha restituito il riporto 1. In uscita otterremo quindi 1 con riporto di 1. Stesso discorso per i rimanenti bit. Per sommare due numeri a N bit, si necessiteranno di N circuiti full adder collegati in cascata. Cominciamo a giocare L'elettronica digitale lavora generalmente a basso voltaggio in corrente continua. Noi lavoreremo a 5V (5 volt). Cominciamo a capire come accendere una lampadina. In uscita dal nostro alimentatore a 5V abbiamo 2 cavi, uno corrispondente ai +5V, uno corrispondente alla cosiddetta massa o terra, detta in inglese anche ground e spesso abbreviata in GND. Per accendere una comune lampadina come quella di una torcia elettrica, collegheremo uno dei due poli della lampadina ai +5V dell'alimentatore e l'altro polo al GND. In questo modo la corrente
elettricità potrà circolare da un capo dell'alimentatore all'altro, così come indicato dalla freccia in figura. Se interrompiamo un circuito, così come se colleghiamo i poli della lampadina ad uno stesso capo dell'alimentatore, la lampadina rimarrà spenta poiché non può più circolare corrente elettrica da un capo all'altro dell'alimentatore. Noi anziché lampadine useremo dei LED, ovvero dei piccoli dispositivi a semiconduttore che, se correttamente connessi ed alimentati, si illuminano. Sono costituiti da una capocchia di plastica colorata e da due contatti, uno più lungo ed uno più corto. Il contatto più corto va collegato al GND. Fra il led e l'alimentatore deve sempre essere presente una piccola resistenza (vedi figura) per limitare la corrente in circolazione, e quindi per evitare di bruciare l'alimentatore I microchip Le porte logiche che useremo saranno integrati in piccoli microchip, come in figura.
Ognuno di questi microchip ha più connessioni ( o pin ), corrispondenti ai pin di input e di output delle varie porte logiche. Vi saranno anche due pin per alimentare il microchip direttamente, uno dovrà essere connesso ai +5V dell'alimentatore, l'altro al GND. Ogni chip ha un semicerchio ad una estremità per saper orientare nel verso corretto il circuito, ed ha stampato anche uno o più codici che lo identificano. Avremo pertanto il chip 7408 che contiene 4 porte AND ed è così schematizzato: Il chip 7486 contiene invece 4 porte XOR ed è così schematizzato: Il chip 7432 contiene 4 porte OR ed è così schematizzato: Vediamo che questi 3 microchip vanno sempre alimentati con +5V sul pin 14, mentre il pin 7 va connesso a GND.
Half adder Abbiamo precedentemente visto lo schema logico di un half adder. Ora proviamo a implementarlo usando due dei tre microchip appena visti. Lo schema del circuito risulterà pertanto come quello in figura.
Full adder Ora proviamo a realizzare un full adder come precedentemente visto. Lo schema del circuito risulterà il seguente. Calcolatrice a più bit Ora proveremo a collegare più full adder in cascata, in modo da ottenere una calcolatrice binaria a tanti bit quanti i full adder usati.