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 874 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 937 da Claude Shannon allo studio delle reti di interruttori
Semplice applicazione Variabile di controllo: X due stati: X= -> non c e pressione sull interruttore X= -> pressione sull interruttore Uscita Y Due stati: Lampadina spenta (Y=) Lampadina accesa (Y=) Y = X X= Y= X= Y=
Operazioni elementari AND X X2 Y Y X and X2 OR X Y Y X 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 interruttore elettromagnete Se non circola corrente, l interruttore rimane chiuso
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 a x t Variabile di controllo b Funzione di trasmissione x t stato aperto chiuso Interruttore negativo x a t b x t stato chiuso aperto La variabile di controllo X controlla la funzione di trasmissione, che per convenzione - può valere (interruttore aperto) oppure (interruttore chiuso)
Porte logiche: modello Sono circuti digitali base nei quali viene individuata una uscita (Y) ed uno o più ingressi (x,..,xn) L uscita dipende dal valore degli ingressi Si possono realizzare mediante interruttori, propagando la funzione di trasmissione in uscita x y x n
Esempio invertitore V =2.5 Volt Invertitore: - output Y= se x= X Y V = Volt X Y - outpu y= se x= x y 2.5V 2.5V X= chiuso Y = aperto V aperto X= Y = chiuso
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) $ Œ I " xœi, x+=x (elemento neutro per +) $ Œ I " xœi, x =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 = e x ÿx= (esistenza dell inverso)
Proprietà di un algebra booleana Gli elementi, 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={,} sono definiti i tre operatori di somma logica (+), chiamato OR prodotto logico ( ), chiamato AND Negazione (-) oppure ( ), chiamato NOT Applicata da C. Shannon nel 936 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 Legge di dualità x=x Ogni identità e ogni proprietà booleana resta valida se si scambiano tra di loro gli operatori AND ed OR e gli elementi ed
Porta NOT X Y x y Proprietà: X=X
Porta AND x x 2 y x x 2 y Proprietà: ABC=(AB)C=A(BC) AB=BA AA=A A=A A= AA=
Temporizzazioni porta AND
Porta OR x y Proprietà: x 2 x x 2 y A+B+C=(A+B)+C=A+(B+C) A+B=B+A A+A=A A+= A+=A A+A=
Temporizzazioni porta OR
Variabili di commutazione Grandezza che può assumere i valori oppure 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) (distributività) x+(yz)=(x+y)(x+z)
Funzioni di commutazione Sia x i una variabile di commutazione ed x vettore di n variabili: x i Œ {,}, x Œ {,} n Consideriamo le funzioni y=f(x) f: {,} n Æ {,} Il dominio di f è costituito da tutte e sole le n-ple (x,x2,,xn) e il codominio è l insieme {,} NOTA: Il numero di n-ple diverse è 2 n Quindi f può essere definita mediante una tabella di verità (con 2 n righe) (il termine verità deriva dai valori TRUE/FALSE)
Tabelle di verità tabella di verità di una funzione di commutazione n variabili valori funzione 2 n configurazioni Esempio: due var. x x 2 y...
Funzioni unarie x y y y 2 y 3 y : funzione y : negazione (NOT) y 2 : funzione identità y 3 : funzione
Funzioni binarie (due variabili) x x y y y 2 y 3 y 4 y 5 y 6 y 7 y 8 y 9 y y Y 2 y 3 y 4 y 5 NOT x NOT x AND 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(x,..,x n ) = x i f(x,..,x i-,,x i+...,x n ) + ÿx i f(x,..,x i-,,x i+...,x n ) i n Dimostrazione (per induzione): Se x i = allora il primo termine vale. Poiché ÿ=, si ha f(x,..,x n ) = f(x,.., x i-,, x i+...,x n ), che è identicamente vera perché, per ipotesi, x i =. Se x i = allora il secondo termine vale. Poiché ÿ=, si ha f(x,..,x n ) = f(x,.., x i-,, x i+...,x n ), che è identicamente vera perché, per ipotesi, x i =.
Forma canonica Somma di Prodotti (SP) Applichiamo il teorema più volte f(x,..,x n ) = x f(, x 2,..,x n ) + ÿx f(,x 2,...,x n ) = x (x 2 f(,, x 3..,x n ) + ÿx 2 f(,, x 3..,x n )) + ÿx f(,x 2,...,x n )= x x 2 f(,, x 3..,x n )+ x ÿx 2 f(,, x 3..,x n ) + ÿx f(,x 2,...,x n )=.. x x 2 x n f(,,,) + x ÿx 2 x n f(,,,,)+ x x 2 ÿx n f(,,,) + + ÿx ÿx 2 ÿx 3 ÿx n f(,,,,)
Forma SP 2 n termini Termine generico della somma: x a x2 a 2. xn an f(a,a 2,,a n ) Dove, a i Œ {,} e x = x e x = ÿx x a x 2 a2. x n an si chiama mintermine ed è il prodotto di n variabili dirette o negate
Forma SP f(x,.., x n )= S m k f(k) => f(x,.., x n )= S m k dove: 2 n- k= k f(k)= m k (mintermine) è una funzione che è sempre tranne per una sola assegnazione di valori in cui la funzione assume il valore in particolare se S a i 2 i- =k allora f(k) è il valore f(a,.., a n ); in particolare k=: a,.., a n corrisponde a.. k=: a,.., a n corrisponde a...,... k= 2 n : a,.., a n corrisponde a...
Esempio y=f(x,x 2,x 3 ) è se e solo se il numero di variabili con valore è pari y =m +m 3 +m 5 +m 6 = 2 3 4 5 6 7 m 3 m m 5 m 6 x 3 x 2 x y f(x,x 2,x 3 ) = x 3 x 2 x + x 3 x 2 x + x 3 x 2 x + x 3 x 2 x
Forma canonica prodotto di somme (PS) Sia f(x,.., x n ) = S m k e consideriamo g(x,.., x n ) = S m k k f(k)= k f(k)= La definizione implica g= not f Infatti, g vale quando f vale (poiché mancano i mintermini) e viceversa f=not (not f)= not g= S m k k f(k)= maxtermine: funzione sempre tranne una assegnazione di valori f= P m k => f(x,.., x n ) = P M k k f(k)= k f(k)=
Esempio y=f(x,x 2,x 3 ) è se e solo se il numero di variabili con valore è pari x 3 x 2 x y 2 3 4 5 6 7 M M 2 M 4 M 7 y =M M 2 M 4 M 7 =P(,2,4,7) f(x,x 2,x 3 ) =(x 3 +x 2 + x ) (x 3 + x 2 + x ) ( x 3 + x 2 + x ) ) ( x 3 + x 2 + x )
Esempio, n=3 variabili A B C minterm maxterm m = m = m 2 = m 3 = m 4 = m 5 = m 6 = m 7 = A B C A B C A B C A B C A B A B C A B C A B C C M = A + B + C M = A + B + C M 2 = A + B + C M 3 = A + B + C M 4 = A + B + C M 5 = A + B + C M 6 = A + B + C M 7 = A + B + C
Porta NAND x NAND y= x/y x / y = xy = x + y Proprietà: X X Y A/B = B/A A/= ÿa A/= A/ÿA= Nota NAND non è associativo x x 2 y
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 Somma logica x/x = x x/x = Negazione Generazione della costante / = Generazione della costante
Porta NOR X Y x NOR y = x Ø y x Ø y = x + y = x y Proprietà: X AØB = BØA AØ = AØ = ÿa AØÿA = Nota: NOR non è associativo NOR è Operatore universale x x 2 y
Operatore NOR (NOT-OR) Operatore universale ( x Ø y )Ø( x Ø y ) = x + y ( x Ø x )Ø( y Ø y ) = x y Somma logica Prodotto logico x Ø x = x Negazione x Ø x = Generazione della costante Ø = Generazione della costante
Operatore XOR or esclusivo, detto anche "somma modulo 2" o "anticoincidenza", indicato col simbolo X X 2 Y x y = xy + xy = (x + y)(x + y) x y=x y (proprietà commutativa) (x y) z=x (y z) (associativa) x =ÿx x =x x x= x ÿx = NOTA: XOR Non è un operatore universale X X 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=x x 2... x n La funzione P è chiamata di disparità perché vale se e solo se un numero dispari di variabili vale. 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.
Operatore Simbolo Proprietà NOT y= se e solo se x= y=ÿx AND y=x x 2 y= se e solo se x =x 2 = OR y=x +x 2 y= se e solo se x =x 2 = NAND y=x /x 2 y= se e solo se x =x 2 = NOR y= xøx 2 y= se e solo se x =x 2 = XOR y = x x 2 y= se e solo se x x 2 XNOR y= x x 2 y= se e solo se x =x 2
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. OE Vdd X Y OE OE x 2 y X Y - Hi 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 in alta impedenza. OE In In2 OE2 Out OEn Inn
Buffer three-state (cont.) Schema elettrico In OE R Per evitare instabilità elettrica quando tutti i segnali di abilitazione In2 OE2 OEn Out valgono si usa una resistenza di pull-up (o pull-down) Inn R