DALLA LOGICA AI CIRCUITI DIGITALI 2 L’algebra booleana Il matematico inglese (1815-1864) estese il campo di applicabilità della logica proposizionale (che abbiamo appena visto) creando una vera e propria dotata di variabili, operatori e funzioni logiche alle quali è possibile applicare un calcolo logico formale. George Boole logica matematica Le variabili booleane Le sono l’equivalente delle variabili booleane proposizioni semplici. Vengono rappresentate con e possono assumere che, invece di essere vero e falso, sono e . lettere solo due valori 1 0 Come accade per le proposizioni semplici, se una variabile booleana vale 1, allora non può valere 0 e viceversa. Gli operatori logici Gli sono l’equivalente dei . operatori logici connettivi logici Nell’ambito dell’ vengono definiti logici fondamentali: ▶ algebra booleana quattro operatori : corrisponde alla negazione della logica proposizionale. Esistono diverse per esprimere la negazione NOT, fra cui: NOT ( ), , ’, – . La della negazione NOT è la stessa della negazione : basta scrivere 1 al posto di V e 0 al posto di F; negazione NOT non notazioni x x x x tabella di verità non x - x 0 1 1 0 : corrisponde alla congiunzione della logica proposizionale. Le diverse per esprimere il prodotto logico, sono: AND , , · . La del prodotto AND è la stessa della congiunzione in cui, però, si scrivono 1 e 0 al posto di V e F; prodotto AND e notazioni x y xy x y tabella di verità e x y x ⋅ y 0 0 0 0 1 0 1 0 0 1 1 1 : corrisponde alla disgiunzione . Esistono diverse per esprimere la somma logica, fra cui: OR , + . La della somma OR è la stessa della disgiunzione inclusiva con 1 e 0 al posto di V e F; somma OR o inclusivo notazioni x y x y tabella di verità o x y x + y 0 0 0 0 1 1 1 0 1 1 1 1 : corrisponde alla disgiunzione . Le per esprimerela sono: XOR , EXOR , . La della somma XOR è la stessa della disgiunzione esclusiva con 1 e 0 al posto di V e F. somma XOR o esclusivo notazioni x y x y x ⊕ y tabella di verità o x y ⊕ x y 0 0 0 0 1 1 1 0 1 1 1 0 / algebra booleana Boolean algebra attenzione Nelle tabelle dell’algebra booleana è consuetudine scrivere prima gli 0 (falso) e dopo gli 1 (vero). >> pagina 124 Le funzioni logiche Le sono l’equivalente delle . funzioni logiche proposizioni composte Per esempio: – · ( + ) · y x y z È importante ricordare che i diversi operatori inseriti in una funzione logica devono essere gestiti con le stesse usate in , quindi: regole di precedenza matematica NOT ha precedenza su AND e OR; AND ha precedenza su OR e di XOR. Come nella matematica, per “forzare” una precedenza diversa tra gli operatori, si possono inserire le . parentesi Analogamente a quanto visto per le proposizioni composte, per conoscere il valore booleano o dell’intera funzione logica possiamo utilizzare le 0 1 tabelle di verità. Introduzione ai circuiti digitali Un ▶ interruttore è un componente che, se inserito in un circuito elettrico, è in grado di interrompere, oppure no, il flusso della corrente al suo interno. La corrente elettrica è la di elettrica che viene trasportata dagli elettroni attraverso i cavi dei circuiti elettrici nell’unità di tempo. Nel Sistema Internazionale viene misurata in (A). quantità carica ampere Gli elettroni sono in grado di muoversi liberamente all’interno dei metalli, come per esempio i fili di rame che costituiscono i circuiti elettrici, e vengono trascinati dalla differenza di potenziale (tensione elettrica), misurata in volt (V). Fino ai primi anni dell’Ottocento gli interruttori utilizzati nei circuiti (non per accendere le lampadine, che furono inventate mezzo secolo più tardi!) erano e proprio come gli interruttori della luce che attualmente abbiamo in casa. meccanici azionabili manualmente Con l’invenzione dei (interruttori elettromeccanici) e, successivamente, con l’introduzione delle (interruttori elettrici), l’ degli interruttori incominciò a poter essere di tipo . I relè e le valvole, infatti, proprio come i moderni , sono componenti azionabili elettricamente che, come gli interruttori, possono assumere solo aperto oppure chiuso. relè valvole termoioniche azionamento elettrico transistor due stati distinti Quando l’interruttore è , la corrente che passa nel filo, smette di scorrere. Quando l’interruttore viene , il flusso di corrente riprende. aperto chiuso L’intuizione di far corrispondere i valori logici o ai due stati discreti (circuito aperto) e (circuito chiuso), spalancò le porte alla realizzazione dei . falso vero 0 1 circuiti elettronici binari digitali I sono circuiti elettronici che utilizzano solo (generalmente 0 e 5 V), che identificano i . circuiti digitali due livelli di tensione due livelli logici 0 e 1 Nel 1938 dimostrò che un segnale elettrico che attraversa un circuito costituito da interruttori, segue le stesse regole logiche dell’algebra booleana. Claude Shannon Cerchiamo di capire meglio il concetto con alcuni semplici esempi. esempio 1. Consideriamo un circuito costituito da due interruttori in serie . La corrente attraversa prima un interruttore e poi l’altro e arriva “in fondo” solo se entrambi gli interruttori sono chiusi, cioè se sia A sia B valgono 1. Basta che uno dei due interruttori sia aperto (cioè valga 0) perché la corrente non riesca più ad arrivare “in fondo”. La logica descritta è quella del prodotto AND : la corrente che parte da sinistra, arriva a destra solo se entrambi gli interruttori sono chiusi. 2. Consideriamo un circuito costituito da due interruttori in . parallelo La corrente, come se fosse acqua in un tubo, può arrivare in fondo scorrendo attraverso l’interruttore C , l’interruttore D o entrambi. Non arriva “in fondo” solo quando C e D sono entrambi aperti. La logica appena descritta è quella della somma OR : la corrente che parte da sinistra, non arriva a destra solo se entrambi gli interruttori sono aperti. Approfondimento – I livelli logici / interruttore switch circuito aperto circuito chiuso interruttore aperto interruttore chiuso Lo sapevi che Le correnti elettriche sono la causa di diversi fenomeni fra cui l’ effetto Joule (il riscaldamento responsabile della generazione di luce nelle lampadine a incandescenza) e la creazione dei campi magnetici (usati nei motori). ApprofondiMENTO I TRANSISTOR Un transistor è un dispositivo elettronico che viene comunemente utilizzato, nei circuiti digitali, come un interruttore che può essere acceso o spento. Per comprenderne il funzionamento, facciamo riferimento, a titolo di esempio, al transistor a giunzione bipolare (BjT), dotato di tre terminali (base, collettore ed emettitore). Se nella base entra una , anche nel collettore e nell’emettitore la corrente sarà nulla e il transistor si comporta come se fosse un (interruttore aperto). corrente nulla circuito aperto Se nella base entra una ad attivare il transistor, allora tra il collettore e l’emettitore scorre una corrente (che entra da ed esce da ), nonostante la tensione fra i due terminali ed si mantenga quasi nulla, facendo sembrare il comportamento del transistor a quello di un (interruttore chiuso). corrente sufficiente C E C E circuito chiuso >> pagina 126 Le porte logiche I circuiti digitali che abbiamo appena considerato sono costituiti da interruttori ideali che possono essere realizzati con relè, valvole, transistor o altro. Dal punto di vista teorico è possibile inserire un (per esempio quello che realizza il ) all’interno di un dispositivo ideale, chiamato , come nel seguente esempio. circuito ideale prodotto AND porta logica Quando sia ad sia a viene dato in , cioè a entrambi viene detto di rimanere chiusi, la corrente che proviene da sinistra riesce a uscire dalla porta logica ( ). Se invece a uno dei due interruttori viene dato in (interruttore aperto), la corrente che proviene da sinistra non riesce a uscire dalla porta logica ( ). A B input 1 output 1 input 0 output 0 Ignorando i dettagli del circuito contenuto nella porta logica e spostando sulla sinistra gli input, potremmo immaginare la porta logica AND con il seguente schema. Grazie a questo sforzo di astrazione ci siamo avvicinati alla rappresentazione di una porta logica AND usata in elettronica digitale. In modo analogo è possibile realizzare una porta logica per (NOT, OR, XOR) e distinguerle utilizzando . In elettronica digitale le porte logiche non hanno la forma rettangolare, ma vengono rappresentate con forme specifiche diverse, inoltre a ciascuna porta logica viene associata la propria logica di funzionamento descritta dalla relativa tabella di verità. ciascun operatore logico forme diverse Nella tabella a pagina seguente elenchiamo alcuni dei e le relative logiche di funzionamento in riferimento a due input generici e . simboli utilizzati x y Approfondimento – Introduzione all'elettronica digitale attenzione Quando, parlando di circuiti digitali, ci si riferisce a componenti ideali , si fa riferimento a elementi per i quali interessa considerare solo la logica di funzionamento teorica e non la tecnologia con cui vengono fisicamente realizzati. Porta logica Simbolo Tabella di verità NOT x - x 0 1 1 0 AND x y x · y 0 0 0 0 1 0 1 0 0 1 1 1 OR x y x + y 0 0 0 0 1 1 1 0 1 1 1 1 XOR x y ⊕ x y 0 0 0 0 1 1 1 0 1 1 1 0 La porta logica della negazione ha un solo ingresso perché il è un . NOT NOT operatore logico unario Volendo dare una definizione di potremmo dire che si tratta di un dispositivo elettronico (idealizzato) che, partendo da input binari, realizza una funzione logica (applicando degli operatori logici) producendo output binari. porta logica attenzione Il simbolo della porta logica AND è del tutto diverso da quello della porta OR, mentre il simbolo della porta OR differisce dalla XOR solo per una doppia stanghetta posizionata dalla parte degli input. >> pagina 127 Le porte logiche negate Le porte logiche possono essere fra di loro per ottenere output differenti. composte Se inseriamo una porta logica subito dopo un’altra porta l’output finale è nuovamente il valore di partenza della variabile booleana. NOT NOT Possiamo quindi dire che la , cioè applicando due volte l’operatore di negazione , la variabile booleana torna ad avere il valore di verità iniziale. doppia negazione afferma NOT Se, invece, inseriamo una porta dopo una porta otteniamo come output complessivo la . NOT AND negazione di AND Esiste una porta logica che contiene il circuito appena descritto: la (AND Negato), che ha la seguente forma e la cui logica di funzionamento viene descritta dalla corrispondente tabella di verità (visibile nella tabella a pagina seguente). porta logica NAND Analogamente, se inseriamo una porta logica dopo una porta logica ottieniamo come output complessivo la . NOT OR negazione di un OR Anche in questo caso esiste una porta logica che contiene il circuito: la (OR Negato), che ha la seguente forma e la cui logica di funzionamento viene descritta dalla corrispondente tabella di verità (visibile nella tabella a pagina seguente). porta logica NOR Infine, inserendo una porta logica dopo una porta logica ottieniamo come output complessivo la . NOT XOR negazione di un XOR La porta logica che contiene questo circuito è la (XOR Negato o NOR esclusivo), che ha seguente forma e la cui logica di funzionamento viene descritta dalla corrispondente tabella di verità (visibile nella tabella a pagina seguente). porta logica XNOR attenzione I simboli delle porte negate sono molto simili porte logiche da cui derivano, differiscono solo per la presenza di un pallino che indica la negazione . Nella tabella elenchiamo i e le relative logiche di funzionamento in riferimento a due input generici e . simboli delle porte negate x y Porta logica Simbolo Tabella di verità NAND x y x · y x · y 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 NOR x y x + y x + y 0 0 0 1 0 1 1 0 1 0 1 0 1 1 1 0 XNOR x y x ⊕ y x ⊕ y 0 0 0 1 0 1 1 0 1 0 1 0 1 1 0 1 ApprofondiMENTO SIMBOLOGIA ALTERNATIVA DELLA NEGAZIONE Quando la porta logica NOT precede un’altra porta logica (per esempio una porta AND), può essere sostituita da un pallino vuoto inserito all’ingresso della porta successiva. >> pagina 129 Le porte logiche universali Qualunque funzione logica booleana può essere realizzata utilizzando e combinando solo porte logiche NAND. Per questo motivo la viene chiamata . porta logica NAND porta logica universale Per esempio, la può essere realizzata utilizzando una porta logica NAND, fornendo in input lo stesso valore a entrambi i suoi ingressi. funzione logica NOT La correttezza di questa affermazione è facilmente verificabile: basta osservare la tabella di verità della porta NAND e constatare che, poiché gli input sono sempre uguali ( = ), occorre considerare solo le righe evidenziate. y x In questo modo, quando in input viene dato = 0 (quindi anche = 0) allora l’output è 1 (cioè NOT ); quando invece in input viene dato = 1 (quindi anche = 1) allora in uscita abbiamo 0 (ancora NOT ). x y x x y x La può essere realizzata utilizzando una porta NAND seguita da una negazione NOT. funzione logica AND Abbiamo appena visto come ottenere un NOT utilizzando una porta NAND, per cui, è possibile ottenere la logica AND, con due porte NAND come nello schema a lato. Ottenere la utilizzando solo porte NAND non è altrettanto intuitivo, ma è possibile utilizzando i teoremi di De Morgan. funzione logica OR Gli studi di Boole, alla base dell’algebra booleana che abbiamo descritto, furono influenzati da quelli del logico britannico (1806-1871), noto per aver formulato i due omonimi teoremi. Augustus De Morgan Il primo teorema di De Morgan dice che la negazione di un prodotto AND è equivalente alla somma OR delle due variabili booleane negate: · x y = x + y Il secondo teorema di De Morgan afferma che la negazione di una somma OR è equivalente al prodotto AND delle due variabili booleane negate: + x y = x · y Verifichiamo il secondo teorema usando le tabelle di verità. attenzione I teoremi di De Morgan vengono anche chiamati leggi di De Morgan. Il secondo teorema di De Morgan afferma che per ottenere un di due input e è possibile usare un , inserendolo fra la negazione dei due ingressi. NOR x y AND Prima di enunciare i due teoremi di De Morgan, stavamo cercando di ottenere un combinando solo porte . Se neghiamo le ultime due colonne della tabella di verità otteniamo che l’uguaglianza continua a essere rispettata e che possiamo riscriverla, come segue: OR NAND + = x y · x y tenendo conto del fatto che la negazione del NOR non è altro che un OR mentre la negazione dell’AND non è altro che un NAND. Possiamo scrivere che la (al primo membro) può essere realizzata componendo le porte NAND come illustrato dallo schema (come indicato dal secondo membro). funzione logica OR Utilizzando il primo teorema di De Morgan, con un ragionamento analogo possiamo concludere che anche la porta logica NOR è una porta logica universale e può essere usata per ottenere tutte le altre funzioni logiche booleane. Nella tabella sono elencati i che consentono di realizzare le principali funzioni logiche utilizzando le porte universali. circuiti equivalenti attenzione Anche la porta XOR può essere realizzata utilizzando solo porte universali, anche se il livello di complessità è lievemente maggiore. Porta logica da ottenere Utilizzando solo NAND Utilizzando solo NOR NOT AND OR prova tu Completa le seguenti frasi. Inserendo un NOT subito dopo una porta logica si ottiene una porta logica Le porte logiche NAND e NOR sono porte logiche Applicando i teoremi di De Morgan è possibile ottenere circuiti Le reti logiche Come abbiamo visto, la funzione logica può essere realizzata collegando una porta a una porta secondo il seguente schema. x NAND y AND NOT In generale qualunque può essere realizzata “fisicamente” collegando tra loro le diverse porte logiche. Lo schema complessivo che si ottiene prende il nome di . funzione logica booleana f rete logica Le reti logiche sono circuiti costituiti dal collegamento di porte logiche, che realizzano “fisicamente” le funzioni logiche dell’algebra booleana. esempio Vogliamo sapere quale funzione logica booleana è rappresentata dalla seguente rete logica. f Immaginiamo la rete logica come se fosse attraversata da un fluido che, all’interno dei fili, si comporta come farebbe l’acqua nei tubi. In particolare, dove il , l’acqua continua a scorrere in entrambi i tubi, come in un deviatore. tubo si biforca Dove, invece, i , l’acqua scorre nel proprio tubo senza mischiarsi all’acqua nell’altro. tubi si sovrappongono Per individuare l’output della rete logica, occorre far “scorrere” nei fili gli input e . f x y Aprendo i “rubinetti” e , la corrente scorre fino alle prime porte logiche (in giallo e rosso nel disegno). 1. x y Le porte logiche alle quali sono arrivati tutti gli input (in questo esempio tutte le porte NOT e la porta XOR), si attivano e producono il loro output, mentre tutte le altre porte rimangono inattive, mantenendo in gli input che nel frattempo sono arrivati (in questo esempio, è il caso della porta NAND, che mantiene l’input ). ▶ stand by y Successivamente vengono attivate la porta AND e la porta NAND (in marrone e rosa nel disegno), che producono il loro output, mentre rimangono inattive sia la porta OR (che è stata raggiunta da un solo ingresso ), sia la porta NOR (ancora priva di ingressi). x ⊕ y Può essere attivata la porta NOR (in verde nel disegno). 2. Per ultima si attiva la porta OR, che produce l’uscita che stavamo cercando. 3. f / stand by pausa >> pagina 133 Dalle porte logiche ai circuiti integrati Consideriamo la rete logica in figura, fornita di quattro ingressi ( , , , ) e quattro uscite ( , , , ) possiamo scrivere le funzioni logiche in output: A B C D U 1 U 2 U 3 U 4 = A AND B U 1 = NOT B U 2 = (C OR D) NAND NOT B U 3 = C OR D U 4 Se inseriamo la rete logica appena mostrata in una “scatola” lasciando fuori ingressi e uscite otteniamo lo schema in figura. Se realizziamo “fisicamente” la rete logica descritta, possiamo ottenere un , cioè un componente elettronico che contiene un circuito integrato. ▶ chip Un è un circuito elettronico miniaturizzato nel quale sono presenti milioni di , ottenuti grazie a un processo fisico-chimico basato sul silicio. circuito integrato transistor I transistor nei circuiti integrati vengono utilizzati anche per realizzare le che non vengono prodotte o vendute singolarmente, ma vengono inserite in chip dedicati e vendute “in blocco”. porte logiche / chip pezzetto, scaglia esempio Il chip 7408 contiene solo porte AND. Come sappiamo, teoricamente sarebbe possibile realizzare utilizzando un’ (per esempio la porta NAND). Quindi i produttori di circuiti integrati potrebbero realizzare un e ridurre i costi, grazie a una produzione più omogenea. tutte le porte logiche unica porta logica universale unico chip Tuttavia risulta molto più conveniente produrre chip che contengano direttamente porte logiche generiche perché combinando più porte universali, si ottengono circuiti integrati che occupano un’ , più corrente elettrica e si più facilmente. area maggiore consumano surriscaldano Le compiute dalle aziende durante la fase di progettazione dei circuiti integrati, quindi, non sono così scontate come si potrebbe pensare. scelte tecnologiche attenzione I dispositivi elettronici, come gli smartphone e i computer , vengono costruiti usando i circuiti integrati e quindi possiamo immaginarli come una rete logica estremamente complessa, formata da milioni di porte logiche opportunamente connesse fra di loro. All’interno dei microprocessori sono presenti milioni di transistor, alcuni dei quali realizzano milioni di porte logiche. Lo sapevi che Tutti i chip vengono identificati con un codice alfanumerico e il loro funzionamento viene descritto da uno schema chiamato ▶ pinout . / pinout piedinatura