Fondamenti di Informatica B Fondamenti di Informatica B Forme

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