Fondamenti di Informatica B
Lezione n.3
Fondamenti di Informatica B
Lezione n.3
Forme canoniche
Q Trasformazioni
Q Esercizi
Q
In questa lezione verranno considerate le proprietà
dell'algebra booleana che saranno poi utili per l'analisi e la
progettazione di circuiti a livello logico
Introdurremo poi le tecniche per trasformare la
rappresentazione algebrica di un problema nella
rappresentazione circuitale
Lez.3 - Algebra di Boole
Fondamenti di Informatica B
2
Forme canoniche
Q
Un minterm è un’espressione prodotto
che contiene in modo affermato o negato
tutte le variabili della funzione
– es: in una funzione di tre variabili {x1, x2, x3}
sono minterm le seguenti espressioni:
x1 • x2 • x3
x1 • x2 • x3
– mentre non sono minterm:
x1 • x2
Lez.3 - Algebra di Boole
x1 • x3
Fondamenti di Informatica B
3
Forme canoniche
Q
Un maxterm è un’espressione somma che
contiene in modo affermato o negato
tutte le variabili della funzione
– es: in una funzione di tre variabili {x1, x2, x3}
sono maxterm espressioni quali:
x1 + x2 + x3
x1 + x2 + x3
– mentre non lo sono:
x1 + x2
Lez.3 - Algebra di Boole
x1 + x3
Fondamenti di Informatica B
4
Forme canoniche
Q
Si dicono forme canoniche le somme di
minterm (SdP) e i prodotti di maxterm
(PdS)
– esempi di forme canoniche:
Lez.3 - Algebra di Boole
Q
SdP: (x1 • x2 • x3 ) + (x1 • x2 • x3 )
Q
PdS: (x1 + x2 + x3 ) (x1 + x2 + x3 )
Fondamenti di Informatica B
5
La somma di numeri binari
Q
Si consideri la somma tra:
riporto
1 1 1
addendo
1 0 1 1+
addendo
0 1 1 1=
somma
10010
S0 e C1 sono funzioni
booleane nelle variabili
{x0, y0, C0}
Lez.3 - Algebra di Boole
Fondamenti di Informatica B
x0
0
0
0
0
1
1
1
1
y0
0
0
1
1
0
0
1
1
C0
0
1
0
1
0
1
0
1
S0
0
1
1
0
1
0
0
1
C1
0
0
0
1
0
1
1
1
6
La somma di numeri binari
Q
Per sommare due numeri binari è quindi
necessario sintetizzare due funzioni:
– S0(x0, y0, C0)
– C1(x0, y0, C0)
Q
Per sintetizzare una funzione è possibile
ricorrere a:
– somma di minterm (forma SdP)
– prodotto di maxterm (forma PdS)
Lez.3 - Algebra di Boole
Fondamenti di Informatica B
7
La somma di numeri binari
Q
Esempio: sintetizzare la funzione C1
– Selezionare gli 1 della
funzione
– a ciascuno di essi
corrisponde un minterm
C1 = x0 y0 C0 +
x 0 y0 C0 +
x0 y0 C0 +
x0 y0 C0
Una somma di minterm rappresenta
direttamente tutti gli 1 di una funzione
Lez.3 - Algebra di Boole
Fondamenti di Informatica B
x0
y0
C0
S0
C1
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
8
La somma di numeri binari
Q
Esempio: sintetizzare la funzione C1
– Selezionare gli 0 della
funzione
– a ciascuno di essi
corrisponde un maxterm
C1 = ³(x0 + y0 + C0 )´•
x0 + y0 + C0
(x0 + y0 + C0 )
( x 0 + y0 + C 0 )
Un prodotto di maxterm rappresenta
direttamente tutti gli 0 di una funzione
Lez.3 - Algebra di Boole
Fondamenti di Informatica B
•
•
x0
y0
C0
S0
C1
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
9
Forme canoniche
Q
Una qualunque funzione f(x1, x2, …, xn)
può essere espressa univocamente da
una forma canonica costituita da:
– somma di minterm:
f (x1 , x2 , . . . , xn ) =
P
i
(xi,1 • xi,2 • · · · • xi,n )
– prodotto di maxterm:
f (x1 , x2 , . . . , xn ) =
Lez.3 - Algebra di Boole
Q
i
(xi,1 + xi,2 + · · · + xi,n )
Fondamenti di Informatica B
10
Logica a due livelli
Q
Qualunque espressione del tipo prodotto
di somme (PdS) può essere
implementata mediante un circuito a due
livelli di logica
– es:
U = (A + B)(A + B + C )
A
B
U
C
Lez.3 - Algebra di Boole
Fondamenti di Informatica B
11
Logica a due livelli
Q
Qualunque espressione del tipo somma
di prodotti (SdP) può essere
implementata mediante un circuito a due
livelli di logica
– es:
U = (A • B) + (A • B • C )
A
B
U
C
Lez.3 - Algebra di Boole
Fondamenti di Informatica B
12
Logica a due livelli
Q
Anche le funzioni S0 e C1 possono essere
sintetizzate con due livelli di logica
x0
y0
C0
S0
C1 C1(SP ) = x0 y0 C0 + x0 y0 C0 + x0 y0 C0 + x0 y0 C0
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
S0(P S) = (x0 + y0 + C0 )(x0 + y0 + C0 ) •
1
1
1
1
1
(x0 + y0 + C0 )(x0 + y0 + C0 )
Lez.3 - Algebra di Boole
C1(P S)
= (x0 + y0 + C0 )(x0 + y0 + C0 ) •
(x0 + y0 + C0 )( x0 + y0 + C0 )
S0(SP ) = x0 y0 C0 + x0 y0 C0 + x0 y0 C0 + x0 y0 C0
Fondamenti di Informatica B
13
Full adder
Q
Q
•••
Un circuito che implementa le
funzioni S0 e C1 è detto Full Adder
(FA) o sommatore completo
Connettendo più FA assieme è
possibile realizzare un circuito che
somma numeri binari di lunghezza
qualsiasi
xi yi Ci
FA
Si
Ci+1
x3 y3 C3
x2 y2 C2
x1 y1 C1
x0 y0 0
FA
FA
FA
FA
S3
Lez.3 - Algebra di Boole
C4
S2
C3
S1
Fondamenti di Informatica B
C2
S0
C1
14
Negazione logica
Un cerchio all’ingresso o all’uscita di una
porta logica significa negazione
Q I nuovi simboli così costruiti possono
essere utilizzati per rappresentare
funzioni booleane anche complesse
Q
– es: U = A + B
Lez.3 - Algebra di Boole
Fondamenti di Informatica B
15
Equivalenze
Q
Il Teorema di De Morgan afferma che:
A•B = A + B
che corrisponde all’equivalenza circuitale:
Le relazioni di equivalenza dell’algebra booleana si
riflettono, a livello circuitale, in relazioni di equivalenza
fra moduli logici
Lez.3 - Algebra di Boole
Fondamenti di Informatica B
16
Equivalenze
Q
E’ possibile effettuare trasformazioni
circuitali basate su proprietà logiche:
A+B = A • B
A•B = A + B
A+B = A • B
La stessa funzione logica può essere rappresentata da circuiti diversi
Lez.3 - Algebra di Boole
Fondamenti di Informatica B
17
Trasformazioni circuitali
Q
Funzione ex-or realizzata con un circuito a due
livelli di logica
A
B
U
0
0
0
AB
0
1
1
AB
1
0
1
1
1
0
Lez.3 - Algebra di Boole
A
B
A
B
Fondamenti di Informatica B
18
Trasformazioni circuitali
Q
Q
Aggiungendo due negazioni all’inizio e alla fine
della linea di un segnale, la funzione
sintetizzata non cambia
Sfruttando una delle equivalenze logiche, è
possibile ottenere la stessa funzione con sole
porte NAND
“push the
bubble”
A + B = A•B
Lez.3 - Algebra di Boole
Fondamenti di Informatica B
19
Trasformazioni circuitali
Q
Trasformazioni analoghe alla precedente
possono essere applicate in casi più complessi:
ABC + DEF
=
(A + B + C)(D + E + F ) =
Q
ABC • DEF
A+B+C + D+E+F
E’ possibile sintetizzare qualunque funzione
rappresentata come SdP o PdS utilizzando solo
porte NAND o solo porte NOR
– sia le porte NAND che le porte NOR sono insiemi
completi
Lez.3 - Algebra di Boole
Fondamenti di Informatica B
20
Realizzazione circuitale di un FA
x0
y0
C1
FA
Q
Circuito a due livelli (SdP)
che sintetizza le funzioni
logiche necessarie per
realizzare un FA:
S0(SP )
=
x0 y0 C0 + x0 y0 C0 +
x0 y0 C0 + x0 y0 C0
C1(SP )
=
x0 y0 C0 + x0 y0 C0 +
x0 y0 C0 + x0 y0 C0
Lez.3 - Algebra di Boole
Fondamenti di Informatica B
21
Esercizi
Q
Verificare la seguente identità:
AB + AC + BC = AB + A C
Dimostrazione:
AB + AC + BC = AB + A C + BC(A + A )
= AB + ABC + AC + A BC
= AB(1 + C) + AC(1 + B)
Q
Altre tecniche:
= AB + AC
– confronto delle tabelle della verità
– diagrammi di Venn
– confronto delle forme canoniche
Lez.3 - Algebra di Boole
Fondamenti di Informatica B
22
Esercizi
Q
Verifica dell’equivalenza con i diagrammi
di Venn:
AB+AC+BC
AC+AB
C
A
AB
Lez.3 - Algebra di Boole
AC
C
A
AB
B
Fondamenti di Informatica B
B
AC
BC
23
Esercizi
Q
Semplificare il seguente circuito:
A
C
B
U
B
U = B C (C + C A) + (A + C )( AB + A C)
Lez.3 - Algebra di Boole
Fondamenti di Informatica B
24
Esercizi
Q
U
Occorre semplificare la relazione:
= B C ( C + AC ) + ( A + C )(A B + AC)
= B C + (A + C )(A B + AC)
= B C + (A + C )A (B + C)
= B C + (A + A C )(B + C)
= B C + A(1 + C )(B + C)
= B C + A(B + C)
B
C
A
Lez.3 - Algebra di Boole
Fondamenti di Informatica B
U
25