A.A. 2016/17
Marco Tarini - Università dell'Insubria
Ricapitolando
A B X
∞:1
Rete combinatoria
1:1
A + /A /B
0
0
1
0
1
0
1
0
1
1
1
1
∞:1
Tabella verità
Espressione booleana
Architettura degli elaboratori
Porte logiche
- 30 -
Ricapitolando
(ciascuna freccia rappresenta un procedimento, che vedremo)
A B X
Rete
combinatoria
Rete
Retecombinatoria
combinatoria
Analisi
A + /A /B
0
0
1
0
1
0
1
0
1
1
1
1
Tabella verità
Rete combinatoria
Rete combinatoria
Espressione booleana
Architettura degli elaboratori
- 32 -
Architettura degli elaboratori - Porte logiche & Algebra di Boole
Porte logiche
1
A.A. 2016/17
Marco Tarini - Università dell'Insubria
Regole di trasformazione
delle espressioni booleane
Regola
Prodotto logico (AND)
Somma logica (OR)
Elem. identità
1A=A
0+A=A
Elemento nullo
0A=0
1+A=1
Idempotenza
AA = A
A+A=A
Inverso
A /A = 0
A + /A = 1
Commutativa
AB=BA
A+B=B+A
Associativa
(A B) C = A (B C)
(A + B) + C = A + (B + C)
Distributiva
A + B C = (A + B) (A + C)
A (B + C) = A B + A C
Assorbimento
A (A + B) = A
A+AB=A
De Morgan
/(A B) = /A + /B
/(A + B) = /A /B
//A=A
Tertium non datur
Architettura degli elaboratori
- 36 -
Porte logiche
Proprietà degli operatori booleani: note
Le le regole di trasformazione (o «di riscrittura»)
ci consentono di passare da una espressione ad un’altra, equivalente.
l’equivalenza è garantita dalla teoria!
Obiettivo delle riscritture: ottimizzare l’espressione di partenza
Cioè: rendere il circuito associato piú economico, o piú veloce, etc
Gli A, B nelle regole rappresentano sotto-espressioni qualsiasi
(non necessariamente variabili: es: (A(B+C) + A(B+C)) = A(B+C)
Tutte le regole sono in doppia copia: una per l’AND una per l’OR
una è la regola DUALE dell’altra
cioè una è ottenuta dall’altra scambiando fra di loro:
AND <==> OR e 0 <==> 1
Ciascuna regola si può usare in un verso, o nel verso opposto
XXX = YYY
posso passare da XXX a YYY… oppure viceversa
Alcune regole somigliano a quelle dell’algebra numerica tradizionale
Altre sono piuttosto diverse (per esempio i due assorbimenti)!
Architettura degli elaboratori
- 37 -
Architettura degli elaboratori - Porte logiche & Algebra di Boole
Porte logiche
2
A.A. 2016/17
Marco Tarini - Università dell'Insubria
De Morgan explained
Nel primale:
/(A B) = /A + /B
cioè
A B =/ ( /A + /B )
«affermare che sia vero A e-anche B
signfica
negare che uno qualsiasi dei due sia falso»
Nel duale:
/(A + B) = /A /B
cioè
A + B = / ( /A /B )
«affermare che sia vero A oppure B (o entrambi)
signfica
negare che siano entrambi falsi»
Architettura degli elaboratori
- 38 -
Porte logiche
De Morgan: una conseguenza
DeMorgan ci mostra che possiamo, se lo vogliamo,
fare a meno di porte OR .
potremmo sempre sostituirle con porte AND (più alcuni NOT)
e viceversa!
ecco le leggi
di De Morgan…
…a circuito:
Architettura degli elaboratori
- 39 -
Architettura degli elaboratori - Porte logiche & Algebra di Boole
Porte logiche
3
A.A. 2016/17
Marco Tarini - Università dell'Insubria
Un altro assorbimento
A + /A B = A + B
Architettura degli elaboratori
A (/A + B) = AB
- 40 -
Porte logiche
Esempio di applicazione delle
regole di riscrittura
Si consideri la funzione booleana di 3 variabili G(a,b,c) espressa dalla
seguente equazione:
G(a,b,c) = (/a /b /c) + (/a /b c) + (/a /b c) + (/a b c) +(a /b c) + (a b c)
Semplificare l’espressione. Indicare le operazioni svolte
Espressione
Regola utilizzata
(ā b̄ c̄) + (ā b̄ c) + (ā b̄ c) + (ā b c) + (a b̄ c) + (a b c)
(ā b̄ c̄) + (ā b̄ c) + (ā b c) + (a b̄ c) + (a b c)
ā b̄ (c̄ +c) + ā c (b̄ +b) + a c (b̄ +b)
XY + XZ = X (Y + Z)
X + !X = 1 e X1=X
ā b̄ + ā c + a c
XY + XZ = X (Y + Z)
ā b̄ + c (ā + a)
X + !X = 1
ā b̄ + c
Architettura degli elaboratori
X+X=X
- 41 -
Architettura degli elaboratori - Porte logiche & Algebra di Boole
Porte logiche
4
A.A. 2016/17
Marco Tarini - Università dell'Insubria
Teorema del consenso
Dimostrazione
Architettura degli elaboratori
Porte logiche
- 42 -
Altri operatori booleani binari
(e porte corrispondenti)
Noi useremo circuiti che usano porte AND, OR e NOT
comodità, + uso diretto della logica classica
Altre porte popolari:
XOR
(«or esclusivo»)
A B X
0
0
0
0
1
1
1
0
1
1
1
0
Architettura degli elaboratori
uno o l’altro,
ma
NON entrambi
Significati intuitivi di A XOR B:
A oppure B, ma non entrambi
(in latino: A aut B)
vero se A e B diversi
falso se A e B uguali
vale /A se B = 1
vale A se B = 0
(e viceversa)
il contrario di A, se B vale;
A immutato, altrimenti
(e viceversa)
- 43 -
Architettura degli elaboratori - Porte logiche & Algebra di Boole
Porte logiche
5
A.A. 2016/17
Marco Tarini - Università dell'Insubria
Altri operatori booleani binari
(e porte corrispondenti)
Noi useremo circuiti che usano porte AND, OR e NOT
comodità, + uso diretto della logica classica
Altre porte popolari:
NXOR
(«fa il contrario di XOR»)
A B X
0
0
1
0
1
0
1
0
0
1
1
1
Architettura degli elaboratori
Significati intuitivi di A NXOR B:
uno XOR seguito da un NOT
A NXOR B = \( A XOR B)
cioè…
entrambi veri oppure
entrambi falsi
cioè…
AB + \A\B
cioè…
operatore di uguaglianza fra A e B:
vero se A e B sono uguali.
falso se sono diversi
Porte logiche
- 44 -
Altri operatori booleani binari
(e porte corrispondenti)
Noi useremo circuiti che usano porte AND, OR e NOT
comodità, + uso diretto della logica classica
Altre porte popolari:
NAND
(«fa il contrario di AND»)
NOR
(«fa il contrario di OR»)
A B X
A B X
0
0
1
0
0
1
0
1
1
0
1
0
1
0
1
1
0
0
1
1
0
1
1
0
Architettura degli elaboratori
- 45 -
Architettura degli elaboratori - Porte logiche & Algebra di Boole
Porte logiche
6
A.A. 2016/17
Marco Tarini - Università dell'Insubria
Porte NAND e porte NOR
Convenienti:
Sono le porte più economiche da realizzare (solo 2 transistor)
Hanno la latenza minore (vel maggiore) delle porte a 2 ingressi
Molto popolari!
Nota:
A NOR A = \A
B NAND B = \B
(verificare nella tabella!)
equivalenti
A
/A
A
/A
A
/A
quindi: con un NAND (o un NOR)
posso fare un NOT
Un NAND seguito da un NOT = AND
Un NOR seguito da un NOT = OR
Architettura degli elaboratori
- 46 -
Porte logiche
Porte NAND e porte NOR
Se ho a disposizione solo porte NAND…
(e quindi posso fare anche il NOT)
…allora posso fare anche l’AND , negando il risutato del NAND
A AND B = NOT (A NAND B)
NOT
A
B
AB
AND
(con due NAND!)
Architettura degli elaboratori
- 47 -
Architettura degli elaboratori - Porte logiche & Algebra di Boole
Porte logiche
7
A.A. 2016/17
Marco Tarini - Università dell'Insubria
Porte NAND e porte NOR
Se ho a disposizione solo porte NAND…
(e quindi posso fare anche il NOT e anche l’AND )
…allora posso fare anche l’OR , grazie a DeMorgan.
A AND B = NOT (A NAND B)
A
A+B
B
OR
(con tre NAND!)
Architettura degli elaboratori
- 48 -
Porte logiche
Operatori binari (porte logiche) universali
Vedremo che usando solo porte { AND, OR, NOT }
possiamo implementare a circuito qualsiasi funzione booleana data
(con qualsiasi numero di parametri) – v. forme canoniche, dopo
Ma, come abbiamo visto, grazie a De-Morgan:
con porte AND e NOT possiamo «fare» porte OR
(e viceversa, con OR e NOT possiamo «fare» porte AND)
Quindi, potremmo limitarci a porte AND e NOT e fare tutto con loro
(oppure OR e NOT )
Usando solo NAND possiamo fare NOT e AND
quindi possiamo fare tutto
Usando solo NOR possiamo fare NOT e OR
quindi possiamo fare tutto
per questo, NAND e NOR sono detti operatori universali
(sono gli unici due)
Architettura degli elaboratori
- 49 -
Architettura degli elaboratori - Porte logiche & Algebra di Boole
Porte logiche
8
A.A. 2016/17
Marco Tarini - Università dell'Insubria
Avvertenza
Per progettare un buon circuito (= ottimizzato)
che usa solo porte NAND (o solo NOR)
non ci si può limitare ad:
costruire un circuito ottimizzato con le porte NOT, AND e OR
(come vedremo nella prossima lezione)
sostiture queste con i circuiti visti che usano solo NAND.
Funzionerebbe, ma il risultato sarebbe molto lontano dall’ottimo!
Architettura degli elaboratori
- 50 -
Architettura degli elaboratori - Porte logiche & Algebra di Boole
Porte logiche
9