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