7udvirupd]lrqh gl (vsuhvvlrql...

12
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 di Espressioni Booleane Marco Tarini Dipartimento di Scienze Teoriche e Applicate [email protected] Idea: ottimizzare l’espressione prima di implementarla in un circuito Funzioni e circuiti combinatori Architettura degli elaboratori - 38 - Funzione booleana (tav. verita) espressione booleana prodotto di somme OPPURE somma di prodotti sintesi di espressione in 1ma oppure 2da forma canonica rete combinatoria ottimizzata Ottimizzazione usando regole di riscrittura delle espr. booleane espressione booleana più semplice implementazione dell’espressione booleana in un circuito combinatorio

Upload: others

Post on 18-Jun-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 7UDVIRUPD]LRQH GL (VSUHVVLRQL %RROHDQHvcg.isti.cnr.it/~tarini/teaching/archi/2017/04-RetiCombinatorie.3.pdf · 0dufr 7dulql 8qlyhuvlwj ghoo,qvxeuld$ $ $ufklwhwwxud ghjol hoderudwrul

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

[email protected]

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

Page 2: 7UDVIRUPD]LRQH GL (VSUHVVLRQL %RROHDQHvcg.isti.cnr.it/~tarini/teaching/archi/2017/04-RetiCombinatorie.3.pdf · 0dufr 7dulql 8qlyhuvlwj ghoo,qvxeuld$ $ $ufklwhwwxud ghjol hoderudwrul

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

Page 3: 7UDVIRUPD]LRQH GL (VSUHVVLRQL %RROHDQHvcg.isti.cnr.it/~tarini/teaching/archi/2017/04-RetiCombinatorie.3.pdf · 0dufr 7dulql 8qlyhuvlwj ghoo,qvxeuld$ $ $ufklwhwwxud ghjol hoderudwrul

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è

Page 4: 7UDVIRUPD]LRQH GL (VSUHVVLRQL %RROHDQHvcg.isti.cnr.it/~tarini/teaching/archi/2017/04-RetiCombinatorie.3.pdf · 0dufr 7dulql 8qlyhuvlwj ghoo,qvxeuld$ $ $ufklwhwwxud ghjol hoderudwrul

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

Page 5: 7UDVIRUPD]LRQH GL (VSUHVVLRQL %RROHDQHvcg.isti.cnr.it/~tarini/teaching/archi/2017/04-RetiCombinatorie.3.pdf · 0dufr 7dulql 8qlyhuvlwj ghoo,qvxeuld$ $ $ufklwhwwxud ghjol hoderudwrul

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

Page 6: 7UDVIRUPD]LRQH GL (VSUHVVLRQL %RROHDQHvcg.isti.cnr.it/~tarini/teaching/archi/2017/04-RetiCombinatorie.3.pdf · 0dufr 7dulql 8qlyhuvlwj ghoo,qvxeuld$ $ $ufklwhwwxud ghjol hoderudwrul

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!)

Page 7: 7UDVIRUPD]LRQH GL (VSUHVVLRQL %RROHDQHvcg.isti.cnr.it/~tarini/teaching/archi/2017/04-RetiCombinatorie.3.pdf · 0dufr 7dulql 8qlyhuvlwj ghoo,qvxeuld$ $ $ufklwhwwxud ghjol hoderudwrul

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 -

Page 8: 7UDVIRUPD]LRQH GL (VSUHVVLRQL %RROHDQHvcg.isti.cnr.it/~tarini/teaching/archi/2017/04-RetiCombinatorie.3.pdf · 0dufr 7dulql 8qlyhuvlwj ghoo,qvxeuld$ $ $ufklwhwwxud ghjol hoderudwrul

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

Page 9: 7UDVIRUPD]LRQH GL (VSUHVVLRQL %RROHDQHvcg.isti.cnr.it/~tarini/teaching/archi/2017/04-RetiCombinatorie.3.pdf · 0dufr 7dulql 8qlyhuvlwj ghoo,qvxeuld$ $ $ufklwhwwxud ghjol hoderudwrul

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

Page 10: 7UDVIRUPD]LRQH GL (VSUHVVLRQL %RROHDQHvcg.isti.cnr.it/~tarini/teaching/archi/2017/04-RetiCombinatorie.3.pdf · 0dufr 7dulql 8qlyhuvlwj ghoo,qvxeuld$ $ $ufklwhwwxud ghjol hoderudwrul

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á

Page 11: 7UDVIRUPD]LRQH GL (VSUHVVLRQL %RROHDQHvcg.isti.cnr.it/~tarini/teaching/archi/2017/04-RetiCombinatorie.3.pdf · 0dufr 7dulql 8qlyhuvlwj ghoo,qvxeuld$ $ $ufklwhwwxud ghjol hoderudwrul

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 -

Page 12: 7UDVIRUPD]LRQH GL (VSUHVVLRQL %RROHDQHvcg.isti.cnr.it/~tarini/teaching/archi/2017/04-RetiCombinatorie.3.pdf · 0dufr 7dulql 8qlyhuvlwj ghoo,qvxeuld$ $ $ufklwhwwxud ghjol hoderudwrul

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 -