Marco Tarini - Università dell'Insubria A.A. 2017-1018
Architettura degli elaboratori - Circuiti combinatori - 3 1
Università degli Studi dell’Insubria
Dipartimento di Scienze Teoriche e Applicate
Architettura degli elaboratori
Il Livello Logico-Digitale:
Trasformazione diEspressioni Booleane
Marco TariniDipartimento di Scienze Teoriche e Applicate
Idea: ottimizzare l’espressione prima di implementarla in un circuito
Funzioni e circuiti combinatoriArchitettura degli elaboratori - 38 -
Funzionebooleana(tav. verita)
espressionebooleana
prodotto di sommeOPPUREsomma di prodotti
sintesi di espressionein 1ma oppure 2daforma canonica
rete combinatoriaottimizzata
Ottimizzazioneusando regole di riscrittura delle espr. booleane
espressionebooleanapiù semplice
implementazionedell’espressionebooleanain un circuitocombinatorio
Marco Tarini - Università dell'Insubria A.A. 2017-1018
Architettura degli elaboratori - Circuiti combinatori - 3 2
Rete combinatoriaRete combinatoria
Trasformazione di espressioni booleane
Porte logicheArchitettura degli elaboratori - 39 -
Espressione booleana
A + /A /BTransfor-mazione
passare da una espressione booleana ad una equivalente(stessa funzione booleana)con lo scopo di ridurne la complessità
Regole di trasformazione delle espressioni booleane
Porte logicheArchitettura degli elaboratori - 41 -
con AND
1 A = A
0 A = 0
A A = A
A /A = 0
A B = B A
(A B) C = A (B C)
A + B C = (A + B) (A + C)
A (A + B) = A
/(A B) = /A + /B
con OR (duale)
0 + A = A
1 + A = 1
A + A = A
A + /A = 1
A + B = B + A
(A + B) + C = A + (B + C)
A (B + C) = A B + A C
A + A B = A
/(A + B) = /A /B
Legge
Identità
Elemento nullo
Idempotenza
Inverso
Commutativa
Associativa
Distributiva
Assorbimento
De Morgan
Tertium non datur / / A = A
Marco Tarini - Università dell'Insubria A.A. 2017-1018
Architettura degli elaboratori - Circuiti combinatori - 3 3
Porte logicheArchitettura degli elaboratori - 42 -
Regole di trasformazione: note
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)!
De Morgan explained
Nel primale:
«affermare che sia vero A e-anche Bsignificanegare che uno qualsiasi dei due sia falso»
Porte logicheArchitettura degli elaboratori - 43 -
/(A B) = /A + /B A B =/ ( /A + /B )cioè
Nel duale:
«affermare che sia vero A oppure B (o entrambi)significanegare che siano entrambi falsi»
/(A + B) = /A /B A + B = / ( /A /B )cioè
Marco Tarini - Università dell'Insubria A.A. 2017-1018
Architettura degli elaboratori - Circuiti combinatori - 3 4
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:
Porte logicheArchitettura degli elaboratori - 44 -
Un altro assorbimento
Porte logicheArchitettura degli elaboratori - 45 -
A + /A B = A + B A (/A + B) = AB
Marco Tarini - Università dell'Insubria A.A. 2017-1018
Architettura degli elaboratori - Circuiti combinatori - 3 5
Porte logicheArchitettura degli elaboratori - 46 -
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
(a b c) + (a b c) + (a b c) + (a b c) + (a b c) + (a b c)
a b (c +c) + a c (b +b) + a c (b +b)
a b + a c + a c
a b + c (a + a)
a b + c
Regola utilizzata
X + X = X
XY + XZ = X (Y + Z)
X + !X = 1 e X1=X
XY + XZ = X (Y + Z)
X + !X = 1
(a b c) + (a b c) + (a b c) + (a b c) + (a b c)
Teorema del consenso
Porte logicheArchitettura degli elaboratori - 47 -
Dimostrazione
Marco Tarini - Università dell'Insubria A.A. 2017-1018
Architettura degli elaboratori - Circuiti combinatori - 3 6
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!)
quindi: con un NAND (o un NOR) posso fare un NOT
Un NAND seguito da un NOT = AND
Un NOR seguito da un NOT = ORPorte logicheArchitettura degli elaboratori - 48 -
A /A
/AA
/AA
equivalenti
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)
Porte logicheArchitettura degli elaboratori - 49 -
ABA
B
NOT
AND(con due NAND!)
Marco Tarini - Università dell'Insubria A.A. 2017-1018
Architettura degli elaboratori - Circuiti combinatori - 3 7
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 OR B = NOT (NOT A AND NOT B) = (NOT A) NAND (NOT B)
Porte logicheArchitettura degli elaboratori - 50 -
A+BA
B
OR(con tre NAND!)
Operatori binari (porte logiche) universali
Come abbiamo visto, usando solo porte { AND, OR, NOT }possiamo implementare a circuito qualsiasi funzione booleana data(con qualsiasi numero di parametri) – v. forme canoniche
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!)
Porte logicheArchitettura degli elaboratori - 51 -
Marco Tarini - Università dell'Insubria A.A. 2017-1018
Architettura degli elaboratori - Circuiti combinatori - 3 8
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 abbiamo visto in questa lezione)
sostiture queste porte con i circuiti visti che usano solo NAND.(NOT = 1 NAND, AND = 2 NAND, OR = 3 NAND)
Funzionerebbe, ma il risultato sarebbe molto lontano dall’ottimo!
Porte logicheArchitettura degli elaboratori - 52 -
Funzioni e circuiti combinatoriArchitettura degli elaboratori - 53 -
Due reti equivalenti
F1 = AB + AC
F2 = A(B + C)
F1 = AB + AC =
= A (B + C) == F2
A
F1
B
C
AB
AC
AB+AC
A
F2
B
C B+C
A(B+C)
Proprietà distributiva
Marco Tarini - Università dell'Insubria A.A. 2017-1018
Architettura degli elaboratori - Circuiti combinatori - 3 9
Funzioni e circuiti combinatoriArchitettura degli elaboratori - 54 -
Ottimizzazione: esempio
/A B C + A /B C + A B /C + A B C =
/A B C + A /B C + A B /C + A B C + A B C + A B C =
/A B C + A B C + A /B C + A B C + A B /C + A B C =
(/A + A) B C + A C (/B + B) + A B (/C + C) =
BC + AC + AB
Meno costosa e più veloce! (provare)
oppure, andando avanti con le riscrittureBC + AC + AB = C (A+B) + AB
Ancora meno costosa (solo 4 porte a due ingressi, anziché 5)
Velocità?
Velocità alta VS costo ridotto :come spesso capita, possono essere due obbiettivi contrastanti
Funzioni e circuiti combinatoriArchitettura degli elaboratori - 55 -
Ottimizzazione: esempio
Altro possibile svolgimento
/A B C + A /B C + A B /C + A B C =
/A B C + A /B C + A B ( /C + C ) =
/A B C + A /B C + A B 1 =
/A B C + A /B C + A B =
/A B C + A ( /B C + B ) =
/A B C + A ( C + B ) =
/A B C + A B + A C =
B ( /A C + A ) + A C =
B ( C + A ) + A C .
// metto in evidenza AB
// regola: inversa
// regola: idempotenza
// metto in evidenza A
// assorbimento
// distribuisco A
// metto in evidenza B
// assorbimento
Marco Tarini - Università dell'Insubria A.A. 2017-1018
Architettura degli elaboratori - Circuiti combinatori - 3 10
Esempio dell’intero processo 1/5
Numeri a led (cosiddetti “Seven-segment display”) :
costruiamo un piccolo circuito combinatorio che calcolalo stato (acceso, spento) di uno dei 7 led del display
dobbiamo accendere sul display una cifra in base 8espresso da tre bit dati in igresso in base 2
la cifra da esprimere è espressa con tre bit A,B,C
Funzioni e circuiti combinatoriArchitettura degli elaboratori - 56 -
000ABC
001ABC
010ABC
011ABC
100ABC
101ABC
110ABC
111ABC
Esempio dell’intero processo 2/5
Numeri a led (“Seven-segment display”) in base 8: risolviamo per il led in alto
Funzioni e circuiti combinatoriArchitettura degli elaboratori - 57 -
000ABC
001ABC
010ABC
011ABC
100ABC
101ABC
110ABC
111ABC
acceso spento acceso acceso spento acceso acceso acceso A B C X
0 0 0 1
0 0 1 0
0 1 0 1
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 1
tabelladi veritá
Marco Tarini - Università dell'Insubria A.A. 2017-1018
Architettura degli elaboratori - Circuiti combinatori - 3 11
Esempio dell’intero processo 3/5
Come SOMMA DI PRODOTTI(1ma forma canonica)
\A \B \C + \A B \C + \A B C + A \B C + A B \C + A B C
Come PRODOTTO DI SOMME(2da forma canonica)
( A + B + \C ) ( \A + B + C)
(usiamo questa! meno 0 che 1)
Funzioni e circuiti combinatoriArchitettura degli elaboratori - 58 -
A B C X
0 0 0 1
0 0 1 0
0 1 0 1
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 1
Esempio dell’intero processo 4/5
Ottimizzazione:// start: 5 operatori binari, 2 not
( A + B + \C ) ( \A + B + C)= // distributiva: ( X + Y ) ( X + Z ) = X + YZ
B + ( A + \C ) ( \A + C)= // distr (2 volte): X( Z + K ) = XZ+XK
B + A \A + AC + \C \A + C \C = // inverso (2 volte): X \X = 0
B + 0 + AC + \C \A + 0 = // elem neutro
B + AC + \A \C // end: 4 opeatori binari, 2 not
Funzioni e circuiti combinatoriArchitettura degli elaboratori - 59 -
Marco Tarini - Università dell'Insubria A.A. 2017-1018
Architettura degli elaboratori - Circuiti combinatori - 3 12
Esempio dell’intero processo 5/5
Rete combinatoria per: B + AC + \A\C
Funzioni e circuiti combinatoriArchitettura degli elaboratori - 60 -
A
B
C
or a tre ingressi(costa due or)
Esercizi proposti
Simulare la rete che abbiamo costruito e verificarese soddisfa la tabella di verita’
Stimare la velocita’ del circuito(tempi di latenza (nanosec): AND:2, OR:3, NOT:1)
Costruire la tabella di verita’ per l’espressione boolana ottimizzatae verificare che sia la stessa tabella di verita’
Scrivere l’espressione booleana associata al circuito e verificare chesia la stessa espressione booleana ottimizzata
Costruire la tabella di verita’ per l’espressione booleana non ottimizzata e verificare che sia la tabella dalla quale siamo partiti
Ottimizzare anche l’espressione in 1ma forma normale
Scrivere il circuito risultante. Paragonarlo con quello ottenuto dalla 2 forma.
Scrivere il circuito (ottimizzato) per qualche altro led!Ripetere gli esercizi sopra per qualche altro led
Funzioni e circuiti combinatoriArchitettura degli elaboratori - 61 -