richiami di algebra di boole
TRANSCRIPT
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Richiami di Algebra di Boole
Corso di Calcolatori Elettronici I
Dipartimento di Informatica e SistemisticaUniversità degli Studi di Napoli Federico II
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Le tecnologie con cui vengono realizzati gli attuali sistemidigitali consentono di memorizzare e manipolare informazionil’informazione elementare che può essere memorizzata e manipolata in un sistema digitale è il bit, un “quanto” diinformazione i cui possibili valori sono ‘1’ e ‘0’» corrispondono a due stati differenti che il circuito usato per gestire
l’informazione può assumere: tensione alta e tensione bassa
componendo più bit è possibile ottenere informazionicomplesse: numeri (rappresentati come sequenze di bit), immagini, testi, sequenze audio, filmati, rappresentati come strutture dati numeriche.
Le codifica delle informazioni digitali
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Algebra di Boole
L’Algebra di Boole fornisce uno strumentoformale per l'analisi e la sintesi di funzioni per la manipolazione di informazioni binarie (ovvero rappresentate tramite bit)consente di descrivere in forma algebrica le funzioni dei circuiti e delle reti elettriche per la manipolazione dei bit, fornendo inoltre i metodi per la realizzazione del progetto logicostabilisce una corrispondenza biunivoca fra espressioni algebriche, formalmente definite, e le reti elettriche usate per manipolare informazioni binarie
George Boole(1815-1864)
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
L’algebra di Boole - richiami
Variabili booleani:» variabili che possono assumere due possibili valori di
verità (indifferentemente indicabili come ‘0’ e ‘1’, oppure ‘vero’ e ‘falso’ etc)
» un singolo valore booleano corrisponde al bitFunzioni booleane:» funzioni che associano ad una n-upla di valori
booleani x1,x2…xn un determinato valore booleano yTabelle di verità:» elencano i valori della funzione per tutte le possibili
combinazioni degli ingressi (esempio in figura)» rappresentano il modo più generale per definire una
funzione booleana
x1 x2 x3 y
0 0 0 1
0 0 1 1
0 1 0 1
0 1 1 0
1 0 0 0
1 0 1 1
1 1 0 0
1 1 1 1
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Operazioni fondamentali sui valori booleani (bit)
a b y0 0 00 1 11 0 11 1 1
a b y0 0 00 1 01 0 01 1 1
ANDCongiunzione (o prodotto)(vale ‘1’ solo se entrambe a e b sono ‘1’)a AND b si indica anche con a · b
ORDisgiunzione (o somma)(vale ‘0’ solo se entrambe a e b sono ‘0’)a OR b si indica anche con a + y
a y0 11 0
NOTNegazione
_NOT(a) si indica anche con a
L’algebra di Boole - richiami
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
• Proprietà commutativa:x AND y = y AND x x OR y = y OR x
• Proprietà associativa:(x AND y) AND z = x AND (y AND z)(x OR y) OR z = x OR (y OR z)
per la proprietà associativa si possono quindi definire AND e OR a più di due operandi, ad esempio (x AND y AND z)
• Proprietà di idempotenza e assorbimento:x AND x = x x OR x = xx AND (x OR y) = x x OR (x AND y) = x
L’algebra di Boole - alcune proprietà (1)
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
• Proprietà distributivax AND (y OR z) = (x AND y) OR (x AND z)x OR (y AND z) = (x OR y) AND (x OR z)
• Proprietà di convoluzioneNOT (NOT x) = x
• Proprietà del minimo e del massimo:x AND 1 = x x AND 0 = 0x OR 0 = x x OR 1 = 1
• Leggi di De Morgan:NOT (x AND y) = (NOT x) OR (NOT y)NOT (x OR y) = (NOT x) AND (NOT y)
L’algebra di Boole - alcune proprietà (2)
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Si può dimostrare che qualsiasi funzione booleana può essere espressa in forma algebrica, ed in particolare come composizione delle funzioni AND, OR, e NOT.» ciò significa che qualsiasi tabella di verità, comunque definita, può
essere ottenuta come funzione algebrica fatta di AND, OR e NOTAd esempio:la funzione in tabella a destra può essere espressa come
(x AND NOT y) OR (y AND NOT x)
Per questo, l’insieme {AND, OR, NOT} si dice funzionalmente completo» esistono altri insiemi funzionalmente completi
Si noti che grazie alle leggi di De Morgan si può costruire la AND da {OR, NOT}, oppure la OR da {AND, NOT}. » quindi {AND, NOT} e {OR, NOT} sono insiemi funzionalmente
completi.
x1 x2 y
0 0 0
0 1 1
1 0 1
1 1 0
Insiemi funzionalmente completi
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
a b y0 0 10 1 01 0 01 1 0
a b y0 0 10 1 11 0 11 1 0
NANDuguale a NOT(AND)pari a ‘0’ solo se entrambi gli ingressisono ‘1’
NORuguale a NOT(OR)pari a ‘1’ solo se entrambi gli ingressisono ‘0’
{NAND} e {NOR} sono due insiemi funzionalmente completiad esempio, con la sola NAND è possibile ottenere» NOT: si può ottenere come NOT(a) = a NAND a» AND: si può ottenere come a AND b = NOT( a NAND b )» OR: si può ottenere usando la seconda Legge di De Morgan:
NOT( a OR b ) = NOT(a) AND NOT(b) e quindi, negando a destra e a sinistra:a OR b = NOT[ NOT(a) AND NOT(b) ] = NOT(a) NAND NOT(b)
Con la sola porta NAND si può quindi realizzare qualsiasi funzione booleanaSimilmente per la porta NOR
Altre funzioni booleane notevoli
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
a b y0 0 10 1 01 0 01 1 1
a b y0 0 00 1 11 0 11 1 0
EQfunzione eguaglianzapari a ‘1’ quando i due ingressi sono uguali
XORfunzione OR-esclusivoo funzione disparitàpari a ‘1’ quando i due ingressi sono diversi
In forma algebrica, la funzione XOR si può scrivere comea XOR b = [a AND NOT(b)] OR [ NOT(a) AND b ]
La funzione XOR gode della proprietà associativa, e può pertanto essere estesa ad un numero qualsiasi di ingressi:
(a XOR b) XOR c = a XOR (b XOR c) = a XOR b XOR cIn forma algebrica, la funzione EQ può essere espressa come
a EQ b = [a AND b] OR [ NOT(a) AND NOT(b) ]La funzione EQ non gode della proprietà associativa
Altre funzioni booleane notevoli
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Funzioni booleane generiche
E’ sempre possibile ottenere l’espressionealgebrica di una funzione booleana data a partire dalla sua tabella di veritàUn modo per farlo consiste nel vedere la funzione come somma (OR) di prodotti (AND)» ogni prodotto corrisponde ad un ‘1’ nella tabella di
verità e si può ottenere come AND delle variabili diingresso, (x1,x2,x3) nell’esempio, negate se nella rigacorrispondente all’’1’ figurano come ‘0’Ad esempio: x1 AND NOT(x2) AND x3
x1 x2 x3 y
0 0 0 1
0 0 1 0
0 1 0 0
0 1 1 0
1 0 0 0
1 0 1 1
1 1 0 0
1 1 1 1
Nell’esempio in figura la funzione può essere scritta come:y = [NOT(x1) AND NOT(x2) AND NOT(x3)] OR
[x1 AND NOT(x2) AND x3] OR[x1 AND x2 AND x3 ]
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Funzioni booleane generiche
E’ sempre possibile ottenere l’espressionealgebrica di una funzione booleana data a partire dalla sua tabella di veritàUn modo per farlo consiste nel vedere la funzione come somma (OR) di prodotti (AND)» ogni prodotto corrisponde ad un ‘1’ nella tabella di
verità e si può ottenere come AND delle variabili diingresso, (x1,x2,x3) nell’esempio, negate se nella rigacorrispondente all’’1’ figurano come ‘0’Ad esempio: x1 AND NOT(x2) AND x3
x1 x2 x3 y
0 0 0 1
0 0 1 0
0 1 0 0
0 1 1 0
1 0 0 0
1 0 1 1
1 1 0 0
1 1 1 1
Nell’esempio in figura la funzione può essere scritta come:y = [NOT(x1) AND NOT(x2) AND NOT(x3)] OR
[x1 AND NOT(x2) AND x3] OR[x1 AND x2 AND x3 ]
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Funzioni booleane generiche
E’ sempre possibile ottenere l’espressionealgebrica di una funzione booleana data a partire dalla sua tabella di veritàUn modo per farlo consiste nel vedere la funzione come somma (OR) di prodotti (AND)» ogni prodotto corrisponde ad un ‘1’ nella tabella di
verità e si può ottenere come AND delle variabili diingresso, (x1,x2,x3) nell’esempio, negate se nella rigacorrispondente all’’1’ figurano come ‘0’Ad esempio: x1 AND NOT(x2) AND x3
x1 x2 x3 y
0 0 0 1
0 0 1 0
0 1 0 0
0 1 1 0
1 0 0 0
1 0 1 1
1 1 0 0
1 1 1 1
Nell’esempio in figura la funzione può essere scritta come:y = [NOT(x1) AND NOT(x2) AND NOT(x3)] OR
[x1 AND NOT(x2) AND x3] OR[x1 AND x2 AND x3 ]
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Funzioni booleane generiche
E’ sempre possibile ottenere l’espressionealgebrica di una funzione booleana data a partire dalla sua tabella di veritàUn modo per farlo consiste nel vedere la funzione come somma (OR) di prodotti (AND)» ogni prodotto corrisponde ad un ‘1’ nella tabella di
verità e si può ottenere come AND delle variabili diingresso, (x1,x2,x3) nell’esempio, negate se nella rigacorrispondente all’’1’ figurano come ‘0’Ad esempio: x1 AND NOT(x2) AND x3
x1 x2 x3 y
0 0 0 1
0 0 1 0
0 1 0 0
0 1 1 0
1 0 0 0
1 0 1 1
1 1 0 0
1 1 1 1
Nell’esempio in figura la funzione può essere scritta come:y = [NOT(x1) AND NOT(x2) AND NOT(x3)] OR
[x1 AND NOT(x2) AND x3] OR[x1 AND x2 AND x3 ]
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
I valori booleani possono essere rappresentati da grandezze elettriche. Ad esempio:
0 <=> tensione di 0 Volt1 <=> tensione di +5 Volt
In tal caso le funzioni booleane possono essere realizzate mediante circuiti elettronici detti reti logiche.Nelle reti logiche unilaterali, le uscite corrispondono a valori di grandezze elettriche misurate in opportuni punti del circuito; il flusso dell’elaborazione procede fisicamente in un’unica direzione, dai segnali di ingresso verso i segnali di uscita.Nelle reti logiche bilaterali, invece, l’uscita della rete èdeterminata dalla presenza o dall’assenza di “contatto” tra due punti della rete.
Reti logiche
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Sono circuiti logici elementari che realizzano le operazioni fondamentali. Le reti logiche possono essere costruite connettendo più porte logiche.Simboli delle principali porte logiche:
a y
ab
y
a
by
(se connesso ad un’altra porta, il NOT si indica talora con un semplice pallino)
a
by
AND
OR
XOR
NOT
Porte logiche (gates)
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Dato un vettore di variabili booleane X = (x1, x2, …, xn), e una variabile booleana α (pari a 0 o 1) indicheremo con la notazione:
Y = α OP X (dove OP è un operatore booleano, ad es. OR)
l’operazione che produce il vettore booleano Y così definito:Y = (y1, y2, …, yn) cony1 = α OP x1. . . . . .yn = α OP xn
Esempio:α AND X ha come risultato il vettore formato da:(α AND x1, α AND x2, …, α AND xn)
Operatori logici generalizzati (1)
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Dati due vettori di variabili booleane X = (x1, x2, …, xn) e Y= (y1, y2, …, yn), indicheremo con la notazione:
Z = X OP Y (dove OP è un operatore booleano, ad es. OR)l’operazione che produce il vettore booleano Z così definito:
Z = (z1, z2, …, zn) conz1 = x1 OP y1. . . . . .zn = xn OP yn
Esempio:X OR Y ha come risultato il vettore formato da:(x1 OR y1, x2 OR y2, …, xn OR yn)
Operatori logici generalizzati (2)
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
α
YX
Rappresentazione simbolica:
Y = α AND X
Circuito equivalente:
x1 y1
xn
α
yn
. . . . . . . .
Porte logiche generalizzate (1)
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
ZYX
Rappresentazione simbolica:
Z = X AND Y
x1 z1
xn zn
. . . . . . . .y1
yn
Porte logiche generalizzate (2)
Circuito equivalente:
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
Reti logiche con n ingressi x1, x2, …, xn e m uscite y1, y2, …, ym
Ciascuna yi realizza la corrispondenza: y1 = f1(x1, x2, …, xn). . . . . .
ym = fm(x1, x2, …, xn)
x1
xn
y1
ym
Ad ogni yi corrisponde una funzione booleana, quindi una tabella di verità» dalla tabella di verità è possibile ricavare la funzione algebrica che la
realizza, in termini di funzioni AND, OR e NOT, o solo di NAND » dalla funzione algebrica è possibile ottenere la realizzazione circuitale,
ottenuta connettendo porte AND, OR e NOT, o altrimenti solo NAND
Macchine combinatorie (1)
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli
In una macchina combinatoria i valori delle uscite dipendono esclusivamente dai valori degli ingressi. In una macchina combinatoria ideale tale dipendenza è istantaneaIn una macchina reale c’è sempre un ritardo tra l’istante in cui c’è una variazione in uno degli ingressi e l’istante in cui l’effetto di questa variazione si manifesta sulle uscite
Macchine combinatorie (2)