Algebra di Boole Algebra di Boole • Per affrontare in modo sistematico lo studio dei sistemi di calcolo, abbiamo bisogno di un formalismo matematico definito su grandezze binarie • “Algebra di Boole” – Introdotta nel 1874 da George Boole per fornire una rappresentazione algebrica della logica • Per questo motivo i circuiti elettronici che lavoro su valori binari assumono il nome di circuti “logici” o porte “logiche” – Applicata nel 1937 da Claude Shannon allo studio delle reti di interruttori Semplice applicazione • Variabile di controllo: X – due stati: • X=0 -> non c’e’ pressione sull’interruttore • X=1 -> pressione sull’interruttore • Uscita Y – Due stati: • Lampadina spenta (Y=0) • Lampadina accesa (Y=1) X=0 Y=0 Y=X X=1 Y=1 Operazioni elementari… AND X2 X1 Y Y ≡ X1 and X2 X1 Y OR Y ≡ X1 or X2 X2 Interruttori: relè RELE’: interruttore comandato da un segnale elettrico DUE STATI • Quando la corrente fluisce nel circuito, l’elettromagnete attira una lamella del contatto l’interruttore rimane aperto • Se non circola corrente, l’interruttore rimane chiuso interruttore elettromagnete Interruttori CMOS • La tecnologia MOS permette di utilizzare transistori unipolari come interruttori • Le funzionalità sono simili a quelle del relè: – Funzione di trasmissione controllata mendiante un ingresso di controllo (gate) drain drain gate gate source source Modello per l’interruttore x a Variabile di controllo b t x t stato 0 1 0 1 aperto chiuso x t stato 0 1 1 0 chiuso aperto Funzione di trasmissione Interruttore negativo x a b t • La variabile di controllo X controlla la funzione di trasmissione, che – per convenzione - può valere 0 (interruttore aperto) oppure 1 (interruttore chiuso) Porte logiche: modello • Sono circuti digitali base nei quali viene individuata una uscita (Y) ed uno o più ingressi (x1,..,xn) • L’uscita dipende dal valore degli ingressi • Si possono realizzare mediante interruttori, propagando la funzione di trasmissione in uscita x1 xn y Esempio invertitore V =2.5 Volt Invertitore: - output Y=0 se x=1 X Y X Y - outpu y=1 se x=0 V =0 Volt 2.5V 2.5V chiuso X=0 Y=1 aperto 0V aperto X=1 Y=0 chiuso x y 0 1 1 0 Postulati dell’Algebra di Boole Un insieme I e due operatori binari + e · formano un’algebra di Boole se soddisfano i seguenti assiomi (x,y,z sono elementi di I): • " x,y Œ I x+y Œ I e x·y Œ I (chiusura delle operazioni) • $ 0 Œ I | " xŒI, x+0=x (elemento neutro per +) • $ 1 Œ I | " xŒI, x·1=x (elemento neutro per ·) • " x,yŒI x+y=y+x e x·y = y·x (proprietà commutativa) • " x,y,z Œ I x+(y+z)=(y+x)+z e x·(y·z) = (y·x)·z) (prop. associativa) • " x,y,z Œ I x·(y +z) = (x·y) + (x·z); x+(y·z)=(x+y)·(x+z) (proprietà distributiva) • " xŒI $ ÿxŒI | x + ÿx = 1 e x·ÿx=0 (esistenza dell’inverso) Proprietà di un’algebra booleana • Gli elementi 0,1 sono unici • Per ogni xŒI , l’elemento ¬x (inverso di x) è unico • x+x =x, xx= x idempotenza • x+xy = x, x(x+y)=x assorbimento • x+(¬x)y = x+y, x((¬x)+y)=xy • ¬(x+y) = (¬x)(¬y) De Morgan • ¬(xy) = (¬x)+(¬y) • ¬(¬x) = x involuzione Algebra di commutazione Con B={0,1} sono definiti i tre operatori di • somma logica (+), chiamato OR • prodotto logico (·), chiamato AND • Negazione (-) oppure (¬), chiamato NOT • Applicata da C. Shannon nel 1936 per lo studio e la progettazione di sistemi a relè • Detta anche algebra logica, da cui reti o circuiti logici Alcuni teoremi • Teorema di De Morgan (x+y)= x · y (x · y)= x + y • Teorema dell’involuzione x=x • Legge di dualità Ogni identità e ogni proprietà booleana resta valida se si scambiano tra di loro gli operatori AND ed OR e gli elementi 0 ed 1 Porta NOT X Y x y 0 1 1 0 Proprietà: X=X Porta AND x1 x2 0 0 y 0 0 1 0 1 0 0 1 1 1 x1 x2 y 0 0 0 0 1 0 1 0 0 1 1 1 Proprietà: ABC=(AB)C=A(BC) AB=BA AA=A A1=A A0=0 AA=0 Temporizzazioni porta AND Porta OR x1 x2 0 0 Proprietà: y 0 0 1 1 1 0 1 1 1 1 x1 x2 y 0 0 0 0 1 1 1 0 1 1 1 1 A+B+C=(A+B)+C=A+(B+C) A+B=B+A A+A=A A+1=1 A+0=A A+A=1 Temporizzazioni porta OR Variabili di commutazione Grandezza che può assumere i valori 0 oppure 1 Se x,y,z sono variabili di commutazione allora: • x+y = y + x (commutatività) • xy=yx • x+(y+z)=(x+y)+z=x+y+z (associatività) • x (yz)=(xy) z=xyz • x(y+z)=(xy)+(xz) • x+(yz)=(x+y)(x+z) (distributività) Funzioni di commutazione Sia xi una variabile di commutazione ed x vettore di n variabili: xi Œ {0,1}, x Œ {0,1}n • Consideriamo le funzioni y=f(x) f: {0,1}n Æ {0,1} Il dominio di f è costituito da tutte e sole le n-ple (x1,x2,…,xn) e il codominio è l’insieme {0,1} NOTA: Il numero di n-ple diverse è 2n Quindi f può essere definita mediante una tabella di verità (con 2n righe) (il termine verità deriva dai valori TRUE/FALSE) Tabelle di verità tabella di verità di una funzione di commutazione n variabili 2n configurazioni Esempio: due var. x1 x2 y 0 0 0 0 1 1 1 0 1 1 1 1 . . . valori funzione Funzioni unarie x y0 y1 y2 y3 0 0 1 0 1 1 0 0 1 1 y0 : funzione 0 y1 : negazione (NOT) y2 : funzione identità y3 : funzione 1 Funzioni binarie (due variabili) x1 x0 y0 y1 y2 y3 y4 y5 y6 y7 y8 y9 y10 y11 Y12 00 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 01 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 10 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 11 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 NOT x1 NOT x0 AND y13 y14 y15 OR Tutte le funzioni possono essere ricavate a partire dagli operatori {NOT,AND} oppure {NOT,OR} Esistono operatori universali? Teorema di Shannon Tutte le funzioni si possono realizzare con {NOT,AND} Teorema di Shannon f(x1,..,xn) = xi f(x1,..,xi-1,1,xi+1...,xn) + ÿxi f(x1,..,xi-1,0,xi+1...,xn) 1£ i£n Dimostrazione (per induzione): • Se xi = 0 allora il primo termine vale 0. Poiché ÿ0=1, si ha f(x1,..,xn) = f(x1,.., xi-1,0, xi+1...,xn), che è identicamente vera perché, per ipotesi, xi = 0. • Se xi = 1 allora il secondo termine vale 0. Poiché ÿ1=0, si ha f(x1,..,xn) = f(x1,.., xi-1,1, xi+1...,xn), che è identicamente vera perché, per ipotesi, xi = 1. Forma canonica Somma di Prodotti (SP) Applichiamo il teorema più volte … f(x1,..,xn) = x1 f(1, x2,..,xn) + ÿx1 f(0,x2,...,xn) = x1 (x2 f(1,1, x3..,xn) + ÿx2 f(1,0, x3..,xn)) + ÿx1 f(0,x2,...,xn)= x1 x2 f(1,1, x3..,xn)+ x1 ÿx2 f(1,0, x3..,xn) + ÿx1 f(0,x2,...,xn)= ….. x1 x2 …xn f(1,1, …,1) + x1 ÿx2 …xn f(1,0,1, …,1)+ x1 x2 … ÿxn f(1,1, …,0) + … + ÿx1 ÿx2 ÿx3 … ÿxn f(0,0,0, …,0) Forma SP • 2n termini • Termine generico della somma: x1a1 x2a2…. xnan f(a1,a2, …,an) Dove, ai Œ {0,1} e x1 = x e x0 = ÿx • x1a1 x2a2…. xnan si chiama mintermine ed è il prodotto di n variabili dirette o negate Forma SP 2n-1 f(x1,.., xn)= S mkf(k) => f(x1,.., xn)= S mk k=0 k|f(k)=1 dove: mk (mintermine) è una funzione che è sempre 0 tranne per una sola assegnazione di valori in cui la funzione assume il valore 1 in particolare se S ai 2i-1=k allora f(k) è il valore f(a1,.., an); in particolare • k=0: a1,.., an corrisponde a 000..000 • k=1: a1,.., an corrisponde a 000...001, •..... • k= 2n : a1,.., an corrisponde a 111...111 Esempio y=f(x1,x2,x3) è 1 se e solo se il numero di variabili con valore 1 è pari x3 x2 x1 y 0 0 0 0 1 1 0 0 1 0 2 0 1 0 0 3 0 1 1 1 4 1 0 0 0 5 1 0 1 1 1 1 0 1 1 1 1 0 6 7 m0 m3 y =m0+m3+m5+m6 = m5 m6 f(x1,x2,x3) = x3 x2 x1+ x3x2x1 + x3 x2 x1 + x3x2 x1 Forma canonica prodotto di somme (PS) Sia f(x1,.., xn) = S mk e consideriamo g(x1,.., xn) =S k|f(k)=1 k|f(k)=0 mk La definizione implica g= not f Infatti, g vale 0 quando f vale 1 (poiché mancano i mintermini) e viceversa •f=not (not f)= not g= S mk k|f(k)=0 • maxtermine: funzione sempre 1 tranne una assegnazione di valori • f= P k|f(k)=0 mk => f(x1,.., xn) = P k|f(k)=0 Mk Esempio • y=f(x1,x2,x3) è 1 se e solo se il numero di variabili con valore 1 è pari x3 x2 x1 y 0 0 1 0 0 0 0 1 0 M1 1 0 1 0 0 M2 y =M M M M =P(1,2,4,7) 2 1 2 4 7 0 1 1 1 3 1 0 0 0 M4 4 1 0 1 1 5 1 1 0 1 1 1 0 M7 6 1 7 f(x1,x2,x3) =(x3+x2+ x1)·(x3 + x2 + x1)·( x3 + x2 + x1 ))·( x3 + x2 + x1) Esempio, n=3 variabili A minterm maxterm B C 0 0 0 m0= A B C M0= A + B + C 0 0 1 m1= A B C M1= A + B + C 0 1 0 m2= A B C M2= A + B + C 0 1 1 m3= A B C M3= A + B + C 1 0 0 m4= A B M4= A + B + C 1 0 1 m5= A B C M5= A + B + C 1 1 0 m6= AB C M6= A + B + C 1 1 1 m7= A B C M7= A + B + C C Porta NAND x NAND y= x/y x / y = xy = x + y X0 X1 Y 0 0 1 0 1 1 0 1 1 1 1 0 Proprietà: A/B = B/A A/1= ÿA A/0=1 A/ÿA=1 Nota NAND non è associativo x1 x2 y 0 0 1 0 1 1 1 0 1 1 1 0 Operatore NAND (NOT-AND) NAND è un operatore universale Dimostrazione: con NOT, AND e OR posso realizzare una qualunque funzione Quindi è sufficiente mostrare che con NAND riesco a fare le tre funzioni AND OR e NOT ( x / y) /( x / y) = xy = xy Prodotto logico ( x / x) /( y / y) = x / y = x + y x/x = x Negazione x/x = 1 Generazione della costante 1 1/1 = 0 Generazione della costante 0 Somma logica Porta NOR x NOR y = x Ø y X0 x Øy = x+y = x y Y X1 AØB = BØA AØ1 = 0 AØ0 = ÿA AØÿA = 0 Nota: NOR non è associativo 0 0 1 0 1 1 0 1 1 0 0 0 Proprietà: x1 x2 y NOR è Operatore universale 0 0 1 0 1 0 1 0 0 1 1 0 Operatore NOR (NOT-OR) • Operatore universale (x Ø y ) Ø( x Øy) = x+y Somma logica (x Ø x ) Ø( y Øy) = xy Prodotto logico x Ø x = x Negazione x Ø x = 0 Generazione della costante 0 0 Ø 0 = 1 Generazione della costante 1 Operatore XOR • or esclusivo, detto anche "somma modulo 2" o "anticoincidenza", indicato col simbolo ⊕ ⊕ x ⊕ y = xy + xy = (x + y)(x + y) X1 X2 Y 0 0 0 0 1 1 • x⊕y=x⊕y (proprietà commutativa) 1 0 1 • (x⊕y)⊕z=x⊕(y⊕z) (associativa) 1 1 0 • x⊕1=ÿx • x⊕0=x • x⊕x=0 • x⊕ÿx =1 X0 NOTA: XOR Non è un operatore universale X1 Y Temporizzazioni porta XOR XOR e Funzione di disparità • L’operatore ⊕ applicato a n variabili definisce la funzione di disparità o somma modulo 2: P=x1⊕x2 ... ⊕xn • La funzione P è chiamata di disparità perché vale 1 se e solo se un numero dispari di variabili vale 1. ! • Il bit di parità che si aggiunge nei codici a rivelazione di errore è ottenuto proprio con la funzione di disparità P; infatti aggiungendo al vettore X il bit P corrispondente alla funzione di disparità si ottiene una stringa di bit che avrà sempre un numero pari di 1. Operatore NOT Simbolo y=ÿx Proprietà y=1 se e solo se x=0 AND y=x1x2 y=1 se e solo se x1=x2=1 OR y=x1+x2 y=0 se e solo se x1=x2=0 NAND y=x1/x2 y=0 se e solo se x1=x2 = 1 NOR y= xØx2 y=1 se e solo se x1=x2 = 0 XOR y = x1⊕x2 y=1 se e solo se x1≠x2 XNOR y= x1≡x2 y=1 se e solo se x1=x2 Interverter Three-state • L’uscita può assumere uno stato di alta impedenza elettrica (non e’ uno stato logico), utile per disconnettere l’uscita dagli altri circuiti ad essa collegati. Vdd OE X OE Y OE x2 y 0 0 1 0 1 0 1 - Hi Y X Vss Buffer three-state • Serve per collegare vari le uscite di vari dispositivi ad uno stesso mezzo trasmissivo (bus) • Un solo segnale di abilitazione deve essere abilitante, gli altri devono mettere le uscite dei buffer three-state OE1in alta impedenza. In1 OE2 In2 OEn Inn Out Buffer three-state (cont.) • Schema “elettrico” OE1 R Per evitare instabilità elettrica In1 quando tutti i segnali di abilitazione valgono 1 si usa una resistenza di OE2 In2 “pull-up” (o pull-down) Out OEn Inn R