Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
4
Funzioni di due variabili
Esistono 16 diverse funzioni booleane di due
variabili:
x AND y x OR y NOT(x)
5
Funzioni di due variabili
contraddizione
6
Funzioni logiche notevoli e porte
logiche associate
• Abbiamo visto che le operazioni fondamentali
dell’algebra di commutazione (operatori
AND, OR e NOT) sono realizzate mediante
porte logiche elementari
– Si può dimostrare che qualsiasi funzione booleana
può essere calcolata applicando le funzioni AND,
OR, e NOT, pertanto l’insieme {AND, OR, NOT} si
dice funzionalmente completo.
• Esistono altre funzioni booleane notevoli di
due ingressi a cui corrispondono specifiche
porte logiche (circuiti elementari):
– XOR, EQU, NAND, NOR
Funzioni XOR ed EQU
x1 x2 f(x1,x2) x1 x2 f(x1,x2)
0 0 0 0 0 1
0 1 1 0 1 0
1 0 1 1 0 0
1 1 0 1 1 1
Questa funzione è detta Questa funzione è detta
OR esclusivo, o XOR equivalenza, o EQU
Funzioni NAND e NOR
x NOR y = NOT(x OR y)
Funzioni NAND e NOR
Applicando il teorema di De Morgan è possibile scrivere la funzione NAND
in termini di NOT e OR, e la funzione NOR in termini di NOT ed AND
NAND x y = x y= x + y De Morgan
NOR
x y = x + y= x y
x1 x2 xn = x1 x2 xn = x1 + x2 + xn
x1 x2 xn = x1 + x2 + + xn = x1 x2 xn
Non associatività di NAND e NOR
x y = x y = x y
x+ y = x y = x y
• E’ possibile ottenere una NOT tramite NAND e
NOR
NAND x 1 = x 1 = x Oppure x NAND x = !x
x NOR x = !x
NOR
x0= x+0 = x
AND, OR e NOT da NAND e NOR
NAND NOR
NOT
OR
AND
Funzioni NAND e NOR
• Riassumendo, utilizzando solo porte NAND è
possibile ottenere una NOT, una AND ed una
OR
– Similmente per la NOR
• Ricordiamo che {AND,OR,NOT} è un insieme
funzionalmente completo, quindi →
= !a!b!c*f(0,0,0)+!a!bc*f(0,0,1)+!ab!c*f(0,1,0)+!abc*f(0,1,1)+
+ a!b!c*f(1,0,0)+a!bc*f(1,0,1)+ab!c*f(1,1,0)+abc*f(1,1,1)
Esempio teorema Shannon per
una funzione a 3 variabili
I valori in rosso sono pari a
1, gli altri a 0 nella tabella!
f(a,b,c) =
= !a!b!c*f(0,0,0)+!a!bc*f(0,0,1)+!ab!c*f(0,1,0)+!abc*f(0,1,1)+
+ a!b!c*f(1,0,0)+a!bc*f(1,0,1)+ab!c*f(1,1,0)+abc*f(1,1,1) =
= !a!b!c + !a!bc + !ab!c + !abc + abc
Forma normale di tipo P
• Da quanto visto prima si deduce che una funzione di n
variabili, assegnata mediante una tabella di verità, può
essere espressa da una forma disgiuntiva di
congiunzioni o, algebricamente, da una somma di
prodotti.
• Ciascun termine della somma, detto mintermine, è un
prodotto di n letterali, ognuno rappresentativo di una
delle variabili di ingresso della funzione, presa in forma
affermata o negata: se la variabile di ingresso assume
valore 0 il letterale è in forma negata, se è 1 è in forma
affermata
• Ciascun mintermine è associato ad un "1" presente nella
colonna di uscita della tabella
Forma Normale di Tipo P
2 n −1
f ( x1 xn ) = i =0 ( i + Si )
Si può ottenere con il procedimento duale di
quello usato per la forma di tipo P
In alternativa, si può negare la forma di tipo P
e poi applicare de Morgan
Seconda forma canonica o forma
normale di tipo S
• Una funzione di n variabili può essere espressa
da una forma congiuntiva di disgiunzioni o,
algebricamente, da un prodotto di somme.
• Ciascun termine del prodotto, detto
maxtermine, è una somma di n letterali, ognuno
rappresentativo di una delle variabili di ingresso
della funzione, presa in forma affermata o
negata: se la variabile di ingresso assume
valore 1 il letterale è in forma negata, se è 0 è in
forma affermata
• Ciascun maxtermine è associato ad un “0"
presente nella colonna di uscita della tabella
Forma Normale di Tipo S
y = (a + b + c) (a + b + c) (a + b + c)
Espressioni logiche e
rappresentazione circuitale
• Da una espressione logica che
rappresenta una funzione logica può
essere direttamente ricavato un circuito
logico.
• Poichè le espressioni usano gli operatori
AND, OR e NOT è immediato ricavare il
circuito con porte AND, OR e NOT
• f = x+y’z
Espressioni logiche e circuiti
• Un circuito che rappresenta una funzione
booleana è espresso mediante una espressione
ben precisa
– La corrispondenza biunivoca è tra FORMA e
CIRCUITO e non tra una funzione e un circuito
• Circuiti diversi possono essere equivalenti
funzionalmente se le rispettive forme
rappresentano la stessa funzione logica
– Es: Y = A xor B è equivalente a Y=A*!B+!A*B ma le
due forme corrispondono a circuiti diversi che usano
porte diverse