Richiami di Algebra di Boole

22
DIS - Dipartimento di Informatica e Sistemistica- Università di Napoli Richiami di Algebra di Boole Corso di Calcolatori Elettronici I Dipartimento di Informatica e Sistemistica Università degli Studi di Napoli Federico II

Transcript of Richiami di Algebra di Boole

Page 1: Richiami di Algebra di Boole

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

Page 2: Richiami di Algebra di Boole

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

Page 3: Richiami di Algebra di Boole

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)

Page 4: Richiami di Algebra di Boole

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

Page 5: Richiami di Algebra di Boole

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

Page 6: Richiami di Algebra di Boole

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)

Page 7: Richiami di Algebra di Boole

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)

Page 8: Richiami di Algebra di Boole

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

Page 9: Richiami di Algebra di Boole

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

Page 10: Richiami di Algebra di Boole

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

Page 11: Richiami di Algebra di Boole

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 ]

Page 12: Richiami di Algebra di Boole

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 ]

Page 13: Richiami di Algebra di Boole

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 ]

Page 14: Richiami di Algebra di Boole

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 ]

Page 15: Richiami di Algebra di Boole

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

Page 16: Richiami di Algebra di Boole

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)

Page 17: Richiami di Algebra di Boole

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)

Page 18: Richiami di Algebra di Boole

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)

Page 19: Richiami di Algebra di Boole

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)

Page 20: Richiami di Algebra di Boole

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:

Page 21: Richiami di Algebra di Boole

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)

Page 22: Richiami di Algebra di Boole

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)