© 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire...

63
© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 1 Marco Mezzlama, Elio Piccolo Capire l’informatica Algebra di Boole e Circuiti Logici

Transcript of © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire...

Page 1: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 1

Marco Mezzlama, Elio Piccolo

Capire l’informatica

Algebra di Boole e Circuiti Logici

Page 2: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 2

Marco Mezzlama, Elio Piccolo

Capire l’informatica

Perché è importante la logica• è alla base del ragionamento umano• costituisce il fondamento teorico per

trattare i circuiti digitali che sono alla base dei calcolatori

• è essenziale per la costruzione degli algoritmi e quindi per i linguaggi di programmazione

• è alla base di linguaggi non procedurali come il Prolog

Page 3: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 3

Marco Mezzlama, Elio Piccolo

Capire l’informatica

L’Algebra di Boole• fu ideata nella prima metà del XIX secolo dal

matematico inglese George Boole, con l’intento di ricondurre al rigore matematico il ragionamento umano

• fu utilizzata da C. E. Shannon all’inizio del XX secolo per descrivere il comportamento dei circuiti a commutazione (relays), in uso nella telefonia, e da qui ai dispositivi digitali

• È una struttura algebrica, potrebbe essere introdotta in modo formale. Qui verrà proposta in modo intuitivo.

Page 4: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 4

Marco Mezzlama, Elio Piccolo

Capire l’informatica

Le basi dell’algebra booleana

Nell’algebra di Boole:• Si mettono in corrispondenza le

proposizioni, o in generale gli eventi binari, con le variabili logiche (o booleane)

• Le variabili logiche sono denotate con le lettere dell’alfabeto (A,B,…a,b,…)

• Le variabili logiche possono assumere solo due valori: Vero (T, o anche 1) o Falso (F, o anche 0)

Page 5: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 5

Marco Mezzlama, Elio Piccolo

Capire l’informatica

Le basi dell’algebra booleana (2)

Esempi:macchina_parte P (= T, o 1, se la macchina parte, F, o 0, se non parte)semaforo_verde S (= 1 se è verde, 0 altrimenti)interruttore I (= 1 se è chiuso, 0 se aperto)Nota: l’associazione stato valore di verità è arbitraria.

Page 6: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 6

Marco Mezzlama, Elio Piccolo

Capire l’informatica

Le basi dell’algebra booleana (3)

Nell’algebra di Boole:• si possono mettere in relazione n-ple di

variabili indipendenti con una particolare variabile dipendente

• la variabile dipendente è detta funzione booleana

• le funzioni booleane possono assumere solo due valori, T o F, ovvero 1 o 0

• Esempio y = F(x1, x2, … xn).

Page 7: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 7

Marco Mezzlama, Elio Piccolo

Capire l’informatica

Tavola di verità

• Una funzione è descritta in modo esaustivo stabilendo, per ogni combinazione delle variabili di ingresso, se vale 1 oppure 0.

• Si crea dunque una tabella, detta tavola di verità della funzione.

• Qui di seguito un esempio di tavola di verità:

Page 8: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 8

Marco Mezzlama, Elio Piccolo

Capire l’informatica

Esempio di tavola di verità

Page 9: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 9

Marco Mezzlama, Elio Piccolo

Capire l’informatica

Esempio applicativo

“Si può telefonare con il cellulare solo se la batteria è carica, se c’è campo e c’è credito”.

Le variabili logiche sono:• Variabile dipendente:

T: vale 1 (= True) se si può telefonare;• Variabili indipendenti:

B: vale 1 (= True) se la batteria è carica;C: vale 1 (= True) se c’è campo;P: vale 1 (= True) se c’è credito.

Page 10: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 10

Marco Mezzlama, Elio Piccolo

Capire l’informatica

Esempio applicativo (2)La tavola di verità della funzione telefonare

Page 11: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 11

Marco Mezzlama, Elio Piccolo

Capire l’informatica

Quante funzioni di n variabili?

• Il numero di combinazioni delle variabili di ingresso è 2n. Infatti la prima variabile può assumere 2 valori, per ciascuno di essi la seconda variabile può assumere 2 valori, e così via, per un totale di 2 2 2… 2 = 2n.

• Quante funzioni si possono costruire con n variabili?

Page 12: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 12

Marco Mezzlama, Elio Piccolo

Capire l’informatica

Quante funzioni di n variabili? (2)n varabili

k co

mbi

nazi

oni

m funzioni

Numero variabili: n

Numero combinazioni: k = 2n = 2^n

Numero funzioni:

m = 2^k = 2^(2^n)

Esempio: se n = 4,

k = 2^4 = 16 e

m = 2^16 = 65.536

Page 13: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 13

Marco Mezzlama, Elio Piccolo

Capire l’informatica

Operatori logici: l’AND• Operatore AND

– esprime il concetto di “e insieme”– indicato nei seguenti modi: A AND B, A B

oppure A B– opera secondo la seguente tavola di verità:

Page 14: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 14

Marco Mezzlama, Elio Piccolo

Capire l’informatica

AND (2)

– esempio: mi_compro_il_gelato se fa_caldo AND ho_i_soldi.

– viene anche detto prodotto logico, per analogia con operatore matematico.

– Il simbolo circuitale dell’AND:

Page 15: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 15

Marco Mezzlama, Elio Piccolo

Capire l’informatica

AND (3)

• analogo elettrico dell’operatore AND: due interruttori in serie.

Page 16: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 16

Marco Mezzlama, Elio Piccolo

Capire l’informatica

OR• L’operatore OR

– Esprime il concetto di disgiunzione logica (una cosa oppure un’altra oppure entrambe)

– indicato nei seguenti modi: A OR B, A + B oppure A B

– opera secondo la seguente tavola di verità:

Page 17: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 17

Marco Mezzlama, Elio Piccolo

Capire l’informatica

OR (2)– esempio: esco_con_l’ombrello se piove OR

nevica.– viene anche detto somma logica (ma qui

l’analogia con l’operatore aritmetico è più lasca)

– Il simbolo circuitale dell’OR:

Page 18: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 18

Marco Mezzlama, Elio Piccolo

Capire l’informatica

OR (3)

• analogo elettrico in un circuito dell’OR: due interruttori in parallelo

Page 19: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 19

Marco Mezzlama, Elio Piccolo

Capire l’informatica

NOT

• Operatore NOT:– ha il significato di negazione logica– indicato nei seguenti modi: NOT A, oppure

A. – Opera secondo la seguente tavola di verità:

Page 20: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 20

Marco Mezzlama, Elio Piccolo

Capire l’informatica

NOT (2)

– Esempio: è_sereno se nuvoloso.– Il simbolo circuitale del NOT:

Page 21: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 21

Marco Mezzlama, Elio Piccolo

Capire l’informatica

NOT (3)– analogo elettrico dell’operatore NOT:

Nota: per realizzare la funzione di NOT occorre un dispositivo “attivo”

è realizzato di solito con un semplice transistor.

Page 22: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 22

Marco Mezzlama, Elio Piccolo

Capire l’informatica

Altri operatori notevoli

• sono derivabili dagli operatori elementari

• sono di uso frequente o sono concettualmente rilevanti

Page 23: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 23

Marco Mezzlama, Elio Piccolo

Capire l’informatica

EX-OR

• L’operatore EX-OR (OR esclusivo):– Indicato nei seguenti modi: A EX-OR B, oppure A B– opera secondo la seguente tavola di verità:

Page 24: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 24

Marco Mezzlama, Elio Piccolo

Capire l’informatica

EX-OR (2)– A B è equivalente all’espressione

– Il simbolo circuitale dell’EX-OR:

BABA

Page 25: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 25

Marco Mezzlama, Elio Piccolo

Capire l’informatica

EX-OR (3)

• Alcune interpretazioni dell’EX-OR (facendo riferimento alla tavola di verità):– indica diversità (vale 1 se e solo se A e B sono

diversi)– corrisponde alla somma-modulo-2 (in cui si tiene

conto solo del risultato e non del riporto)– condizionamento: sia B è il segnale condizionante.

Quando B=0, l’uscita dell’EX-OR corrisponde al segnale A. Quando B=1, l’uscita corrisponde al segnale A invertito (invertitore pilotato).

Page 26: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 26

Marco Mezzlama, Elio Piccolo

Capire l’informatica

Implicazione logica

• L’operatore di implicazione logica– modella il costrutto logico “Se A allora B”– indicato come A B (cioè A implica B) – opera secondo la seguente tavola di verità:

Page 27: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 27

Marco Mezzlama, Elio Piccolo

Capire l’informatica

Implicazione logica (2)

– vale la seguente equivalenza:

(la formula equivalente permette le manipolazioni algebriche)

– si noti che se la premessa è Falsa (A = 0), la formula resta Vera indipendentemente da B

– esempio: Se triangolo_rettangolo allora un_angolo_novanta_gradi

– è il fondamento del ragionamento deduttivo

BABA

Page 28: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 28

Marco Mezzlama, Elio Piccolo

Capire l’informatica

Espressioni logiche

• Combinazione di variabili e operatori logici• possono essere valutate per ogni combinazione

delle variabili presenti e possono assumere il valore 0 o 1

• anche le espressioni si rappresentano mediante la tavola di verità.

• Nota:– Spesso l’operatore di prodotto logico viene omesso:

T = ab + c– vale la priorità degli operatori (nell’ordine, NOT, poi

AND e infine OR)

Page 29: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 29

Marco Mezzlama, Elio Piccolo

Capire l’informatica

Espressioni equivalenti

E1 ed E2 sono equivalenti se

• per tutte le combinazioni delle variabili indipendenti per cui E1 = 1 anche E2 = 1 e

• per tutte le combinazioni delle variabili indipendenti per cui E1 = 0 anche E2 = 0

Page 30: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 30

Marco Mezzlama, Elio Piccolo

Capire l’informatica

Espressioni equivalenti (2)

Esempio di equazioni equivalenti:

ba

b

a

TT

yzxzT

yzxxzT

Page 31: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 31

Marco Mezzlama, Elio Piccolo

Capire l’informatica

Espressioni equivalenti (3)

Page 32: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 32

Marco Mezzlama, Elio Piccolo

Capire l’informatica

Espressioni complementari• E1 ed E2 sono complementari se:

– per tutte le combinazioni delle variabili indipendenti per cui E1 = 1 risulta E2 = 0 e

– per tutte le combinazioni delle variabili indipendenti per cui E1 = 0 risulta E2 = 1

Nota: se due espressioni sono complementari:

E1 = E2

Page 33: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 33

Marco Mezzlama, Elio Piccolo

Capire l’informatica

Espressioni complementari (2)

Esempio di funzioni complementari:

ba

b

a

TT

xyyxT

yxyxT

Page 34: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 34

Marco Mezzlama, Elio Piccolo

Capire l’informatica

Espressioni complementari (3)

Page 35: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 35

Marco Mezzlama, Elio Piccolo

Capire l’informatica

Espressioni dualiE2 è duale di E1 se può essere ottenuta da E1:• sostituendo l'operatore OR con l'operatore

AND e viceversa (tenendo conto delle precedenze degli operatori in E1 !!);

• sostituendo il valore 0 con il valore 1 e viceversa.

Regola di complementazione: l'espressione complementare di E1 può essere ottenuta dalla sua duale E2 complementando tutte le variabili in E2 (teorema di De Morgan) .

Page 36: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 36

Marco Mezzlama, Elio Piccolo

Capire l’informatica

Espressioni duale e complementare

F(a,b,c) = a (b + c) Fd = a + (b c) F = a + (b c)

a b c F Fd F 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 1 0 1 1 0 1 1 1 0 0 0 1 1 1 0 1 1 1 0 1 1 0 1 1 0 1 1 1 1 1 0

Page 37: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 37

Marco Mezzlama, Elio Piccolo

Capire l’informatica

Teoremi dell’algebra di Boole

• si possono dimostrare per induzione completa: è sufficiente fare la tavola di verità.

• vale inoltre una proprietà legata alla dualità: è stato dimostrato che se vale un teorema, vale anche il teorema duale, senza che di debba ripetere la dimostrazione.

• ecco le proprietà e i teoremi più importanti:

Page 38: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 38

Marco Mezzlama, Elio Piccolo

Capire l’informatica

Teoremi dell’algebra di Boole (2)

1:

0)

:

)

0:

1)

11:

00)

XXDuale

XXd

XXXDuale

XXXc

XXDuale

XXb

XDuale

Xa

Page 39: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 39

Marco Mezzlama, Elio Piccolo

Capire l’informatica

Teoremi dell’algebra di Boole (3)

ZYXZXYXDuale

vadistributiproprZYXZXYXh

ZYXZYXDuale

DeMorganteoremaZYXZYXg

ZYXZYXZYXDuale

assocproprZYXZYXZYXf

XYYXDuale

acommutativproprXYYXe

)()(:

_._)()

......:

__......)

)()(:

._._)()()

:

_._)

Page 40: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 40

Marco Mezzlama, Elio Piccolo

Capire l’informatica

Teoremi dell’algebra di Boole (4)

)()()()(:

)

)(:

)

)()(:

_._)

)(:

'__)

YZXZYXZXZDuale

YZXZYXZXZl

YXYXXDuale

YXYXXk

XYXYXDuale

direttafusioneteorXYXYXj

XYXXDuale

inclusionedellteoremaXYXXi

Page 41: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 41

Marco Mezzlama, Elio Piccolo

Capire l’informatica

Teoremi dell’algebra di Boole (5)

),...,,1,0(),...,,,(:

),...,,0,1(),...,,,()

)()(:

)()()

)()()()()(:

)

ZYfXZYXXfXDuale

ZYfXZYXXfXo

YXZXZXYXDuale

YXZXZXYXn

ZXYXZYZXYXDuale

ZXYXZYZXYXm

Page 42: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 42

Marco Mezzlama, Elio Piccolo

Capire l’informatica

Teoremi dell’algebra di Boole (6)

atogeneralizzdeMorganZYXfZYXfq

ZYfXZYfXZYXXfDuale

ZYfXZYfXZYXXfp

__),,,...,,(),,,...,,()

),...,,0,1((),...,,1,0((),...,,,(:

),...,,1,0(),...,,0,1(),...,,,()

Da notare che nell’algebra di Boole la proprietà distributiva vale sia per il prodotto (logico) che per la somma (logica).

Page 43: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 43

Marco Mezzlama, Elio Piccolo

Capire l’informatica

Dalle funzioni alle espressioni logiche

• Una funzione logica si rappresenta mediante la sua tavola di verità

• Esempio: un comitato di tre persone A, B e C prende le decisioni a maggioranza. Si vuole la funzione che esprima che una mozione è approvata (passa, P).

• Con le stesse lettere A, B e C si indicano le variabili logiche che assumono il valore 1 se la corrispondente persona ha dato voto favorevole, 0 altrimenti.

Page 44: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 44

Marco Mezzlama, Elio Piccolo

Capire l’informatica

Dalle funzioni alle espressioni logiche (2)Tavola di verità della funzione “approvazione a maggioranza”:

Page 45: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 45

Marco Mezzlama, Elio Piccolo

Capire l’informatica

Dalle funzioni alle espressioni logiche (3)

• È possibile rappresentare questa funzione mediante una espressione?

• Si ricorre al concetto di equivalenza: una funzione può essere rappresentata mediante una espressione che abbia la stessa tavola di verità.

• Una delle possibili espressioni si ricava seguendo il seguente algoritmo:– si individuano le combinazioni per le quali la funzione vale 1;– ogni combinazione fornisce un termine, formato dalla

congiunzione (operatore AND) di tutte le variabili, affermate se le variabili in quella combinazione assumono il valore 1, negate se assumono il valore 0;

– l’espressione è la disgiunzione (operatore OR) di tutti i termini

Page 46: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 46

Marco Mezzlama, Elio Piccolo

Capire l’informatica

Dalle funzioni alle espressioni logiche (4)

• Espressione equivalente del tipo somma di prodotti (min term):

ABCCABCBABCAP

ABACBCP

• Applicando i teoremi di base (quello della fusione diretta), si ottiene la forma minima:

Page 47: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 47

Marco Mezzlama, Elio Piccolo

Capire l’informatica

Esempio applicativo:l’analisi di un circuito

• Dato il circuito in figura, desumerne il funzionamento.

Page 48: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 48

Marco Mezzlama, Elio Piccolo

Capire l’informatica

L’analisi di un circuito (2)

Siano A, B e C le variabili logiche associate agli interruttori (= 1 se chiuso, 0 altrimenti).

Sia L la variabile associata alla lampadina (= 1 se accesa, 0 spenta).

La tavola di verità si realizza controllando se, per ogni combinazione delle variabili indipendenti, la luce è accesa o spenta.

Page 49: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 49

Marco Mezzlama, Elio Piccolo

Capire l’informatica

L’analisi di un circuito (3)

ABCCBABCAL

Considerando le combinazioni per cui L = 1, si ottiene:

Page 50: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 50

Marco Mezzlama, Elio Piccolo

Capire l’informatica

L’analisi di un circuito (4)

• Applicando i teoremi (proprietà distributiva e X+X=X), si minimizza l’espressione:

CBAACBC

ACBBBCAA

ABCCBAABCBCA

ABCCBABCAL

)(

)()(

la luce si accende solo se è chiuso l’interruttore C e insieme uno dei due interruttori A o B.

Page 51: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 51

Marco Mezzlama, Elio Piccolo

Capire l’informatica

Sintesi di un circuito

• Problema: in una stanza l’illuminazione è comandata da due deviatori A e B, situati in punti diversi. All’inizio la luce è spenta e i due deviatori si trovano in una posizione che chiamiamo X. Se uno dei due deviatori, diciamo A, viene spostato nella posizione Y, vogliamo che la luce si accenda. Se anche l’altro deviatore viene spostato in posizione Y, vogliamo che la luce si spenga.

Page 52: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 52

Marco Mezzlama, Elio Piccolo

Capire l’informatica

Sintesi di un circuito (2)

• Siano A e B le variabili logiche associate ai deviatori. A ciascuna posizione assunta da un deviatore associamo un valore logico: ad esempio associamo 0 alla posizione X, 1 alla posizione Y.

• Sia L la variabile associata alla luce (= 0 se spenta, 1 se accesa).

• La tavola di verità della funzione L è la seguente:

Page 53: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 53

Marco Mezzlama, Elio Piccolo

Capire l’informatica

Sintesi di un circuito (3)

Considerando le combinazioni per cui L = 1, si ha l’espressione:

BABABAL

Page 54: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 54

Marco Mezzlama, Elio Piccolo

Capire l’informatica

Sintesi di un circuito (4)

• Ricordando che l’AND si ottiene con una connessione serie e l’OR con una connessione parallela, si ottiene il circuito:

Page 55: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 55

Marco Mezzlama, Elio Piccolo

Capire l’informatica

Esempio: il full-adderLa somma S di 2 numeri binari A e B di n bit può essere ricondotta a n somme elementari di 3 bit tenendo conto che:

• ak, bk sono i bit di peso k di A e B

• sk è il k-esimo bit di S

• rk è il riporto generato dalla somma dei bit

di peso k-1, k-2, ... 0 di A e B.

• r-1 = 0

Page 56: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 56

Marco Mezzlama, Elio Piccolo

Capire l’informatica

Full-adder: tabelle di veritàSi possono ricavare le tabelle di verità di sk e rk in funzione di ak , bk e rk-1

0 0 0 0 0

0 0 1 1 0

0 1 0 1 0

0 1 1 0 1

1 0 0 1 0

1 0 1 0 1

1 1 0 0 1

1 1 1 1 1

ak bkrk-1 sk rk

Page 57: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 57

Marco Mezzlama, Elio Piccolo

Capire l’informatica

Full-adder: espessioni booleane

0 0 0 0 0

0 0 1 1 0

0 1 0 1 0

0 1 1 0 1

1 0 0 1 0

1 0 1 0 1

1 1 0 0 1

1 1 1 1 1

ak bkrk-1 sk rk

akbkrk-1

akbkrk-1

akbkrk-1

akbkrk-1

akbkrk-1

akbkrk-1

akbkrk-1

akbkrk-1

Page 58: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 58

Marco Mezzlama, Elio Piccolo

Capire l’informatica

Full adder: semplificazione delle espressioni

kkkkk

kkkkkk

kkkkkkkkkkkkk

kkk

kkkkkk

kkkkkkkkkk

kkkkkkkkkkkkk

babar

bararb

rbarbarbarbar

bar

barbar

babarbabar

rbarbarbarbas

)(

)()(

)()(

1

11

1111

1

11

11

1111

Le espressioni di sk e rk sono date da:

Page 59: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 59

Marco Mezzlama, Elio Piccolo

Capire l’informatica

Full adder: schema circuitale

Le funzioni che forniscono sk ed rk possono essere realizzate in un unico circuito elettronico (full adder):

Page 60: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 60

Marco Mezzlama, Elio Piccolo

Capire l’informatica

Sommatore a n bit

Il full-adder può essere usato come circuito base per un sommatore a n bit:

an bn rn-1 a0 b0 0an-1 bn-1rn-2

r0rn-1rn s0sn-1sn

carry

Page 61: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 61

Marco Mezzlama, Elio Piccolo

Capire l’informatica

Esercizio

Problema:Si considerino due valori A = a1a0 e B = b1b0 espressi in complemento a 2 su 2 bit.Scrivere l’espressione di una funzione booleana F che è vera se e solo se A = -B

Soluzione:conviene considerare i bit che costituiscono A e B come variabili indipendenti e scrivere la funzione come F (a0,a1,b0,b1).

Page 62: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 62

Marco Mezzlama, Elio Piccolo

Capire l’informatica

Esercizio (2)a1 a0 b1 b0 A B F

0 0 0 0 0 0 10 0 0 1 0 1 00 0 1 0 0 -2 00 0 1 1 0 -1 00 1 0 0 1 0 00 1 0 1 1 1 00 1 1 0 1 -2 00 1 1 1 1 -1 11 0 0 0 -2 0 01 0 0 1 -2 1 01 0 1 0 -2 -2 01 0 1 1 -2 -1 01 1 0 0 -1 0 01 1 0 1 -1 1 11 1 1 0 -1 -2 01 1 1 1 -1 -1 0

Page 63: © 2010 Marco Mezzalama, Elio Piccolo, Capire linformatica 1 Marco Mezzlama, Elio Piccolo Capire linformatica Algebra di Boole e Circuiti Logici.

© 2010 Marco Mezzalama, Elio Piccolo, Capire l’informatica 63

Marco Mezzlama, Elio Piccolo

Capire l’informatica

Esercizio (3)

)(

)(

11000101

1111000101

010101010101

bababbaa

babababbaa

bbaabbaabbaaF