Top Banner
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
22

Richiami di Algebra di Boole

Dec 20, 2021

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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)