semplificazione: mappe di karnaugh circuiti digitali...

16
L 6 – 1/32 A.A. 2007/08 Copyright : A. Borghese, F. Pedersini – DSI, UniMI Architettura degli Elaboratori e delle Reti Lezione 6 Semplificazione: mappe di Karnaugh Circuiti digitali notevoli: ALU Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell’Informazione Università degli Studi di Milano L 6 – 2/32 A.A. 2007/08 Copyright : A. Borghese, F. Pedersini – DSI, UniMI Semplificazione: mappe di Karnaugh ! Tecnica di semplificazione, a partire dalla tabella di verità " Rappresentazione cubica di funzioni logiche a 3 variabili: F = f(a,b,c) " Muovendosi sui lati, la configurazione di variabili cambia di un solo bit " Distanza di HAMMING: d(v1, v2) = n. di bit diversi tra le sequenze A B C F 0 0 0 0 0 0 1 0 0 1 0 1 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 1 1 1 1 1 C B B A F ! + ! = 000 100 001 101 010 110 011 111 B A C

Upload: others

Post on 19-Jul-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Semplificazione: mappe di Karnaugh Circuiti digitali ...homes.dsi.unimi.it/~pedersin/AER/AER08_L06.pdf · Semplificazione: mappe di Karnaugh Tecnica di semplificazione, a partire

L 6 – 1/32A.A. 2007/08 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

Architettura degli Elaboratori e delle Reti

Lezione 6

Semplificazione: mappe di Karnaugh

Circuiti digitali notevoli: ALU

Proff. A. Borghese, F. Pedersini

Dipartimento di Scienze dell’InformazioneUniversità degli Studi di Milano

L 6 – 2/32A.A. 2007/08 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

Semplificazione: mappe di Karnaugh

! Tecnica di semplificazione, a partire dalla tabella di verità

" Rappresentazione cubica di funzioni logiche a 3 variabili: F = f(a,b,c)

" Muovendosi sui lati, la configurazione di variabili cambia di un solo bit

" Distanza di HAMMING: d(v1, v2) = n. di bit diversi tra le sequenze

A B C F

0 0 0 0

0 0 1 0

0 1 0 1

0 1 1 0

1 0 0 0

1 0 1 0

1 1 0 1

1 1 1 1

CBBAF !+!=

000 100

001 101

010 110

011 111

B

A

C

Page 2: Semplificazione: mappe di Karnaugh Circuiti digitali ...homes.dsi.unimi.it/~pedersin/AER/AER08_L06.pdf · Semplificazione: mappe di Karnaugh Tecnica di semplificazione, a partire

L 6 – 3/32A.A. 2007/08 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

Semplificazione: mappe di Karnaugh

! Copertura: ricerca di tutti gli implicanti

! Se i vertici di un lato sono entrambi 1, l’implicante è indipendentedalla variabile corrispondente al lato

! Per N>3 variabili, la rappresentazione diviene complessa...

0 0

0 0

1 1

0 1

B

A

C

A B C F

0 0 0 0

0 0 1 0

0 1 0 1

0 1 1 0

1 0 0 0

1 0 1 0

1 1 0 1

1 1 1 1

CBBAF !+!=

L 6 – 4/32A.A. 2007/08 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

Semplificazione: mappe di Karnaugh

! Rappresentazione piana della funzione:" “srotolo” il cubo

" Codifica di Gray (codice riflesso) lungo ogni direzione

1011110110011

1001100100000

10110100AB

C

01001

01100

10110100AB

C

indipendente da a:b~c

indipendente da c:ab

F = ab + b~c

Page 3: Semplificazione: mappe di Karnaugh Circuiti digitali ...homes.dsi.unimi.it/~pedersin/AER/AER08_L06.pdf · Semplificazione: mappe di Karnaugh Tecnica di semplificazione, a partire

L 6 – 5/32A.A. 2007/08 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

Semplificazione: mappe di Karnaugh

! Rappresentazione piana, utilizzabile per: 2 ! N ! 4

011

010

10A

B010001

111111

010010

011000

10110100AB

CD

F = ab + cd + b~c~dF = ~a

L 6 – 6/32A.A. 2007/08 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

Semplificazione: mappe di Karnaugh

! Mappa di Karnaugh: rappresentazione piana e ciclica

010001

110111

010010

011000

10110100AB

CD

F = ab + b~c~d + ~bcd

Page 4: Semplificazione: mappe di Karnaugh Circuiti digitali ...homes.dsi.unimi.it/~pedersin/AER/AER08_L06.pdf · Semplificazione: mappe di Karnaugh Tecnica di semplificazione, a partire

L 6 – 7/32A.A. 2007/08 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

Esercizi

Data: F = AC + BC + ~A~BC + AB~C1. Scrivere la tabella di verità di F

2. Determinare la I e la II forma canonica di F

3. Semplificare F mediante mappa di Karnaugh

4. Ottenere la stessa semplificazione mediante operazioni

algebriche

! Calcolare la funzione F = f(A,B,C,D) tale che:F=1 sse: il n. di ingressi=‘1’ è 1 oppure 4

1. Calcolare la TT

2. Det. la forma canonica più conveniente

3. Semplificare la rappresentazione di F mediante mappe di

Karnaugh

L 6 – 8/32A.A. 2007/08 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

ALU: Arithmetic-Logic Unit

! Esegue le operazioni aritmetico-logiche+ ; – ; x ; …and ; or ; not ; xor ; = ; ! ; …

! Normalmente integrata nel processore" Inizio anni ‘90 # introduzione con il nome di co-processore matematico

" Le ALU non compaiono solamente nei micro-processori

! E’ un circuito combinatorio" Rappresentabile come insieme di funzioni logiche

! Opera su parole (N bit)" 6502, 8080, Z-80 8 bit

" MIPS, 80386: 32 bit

" PowerPC G5, Athlon64: 64 bit

! Struttura modulare" Blocchi funzionali da 1 bit, replicati N volte

" Blocchi da 4 bit

Page 5: Semplificazione: mappe di Karnaugh Circuiti digitali ...homes.dsi.unimi.it/~pedersin/AER/AER08_L06.pdf · Semplificazione: mappe di Karnaugh Tecnica di semplificazione, a partire

L 6 – 9/32A.A. 2007/08 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

Struttura a 2 livelli di una ALU

Flusso di elaborazione

Parte di calcolo

!"

#"

Parte di

selezione

$"

Selettore operazione: ALUop

! Struttura ALU – k-esimo bit:

L 6 – 10/32A.A. 2007/08 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

Parte di

selezioneParte di calcolo

ALUop

sa

b

a

b

s

ALUop

ALUop = 0 ! s = AND(a,b)

ALUop = 1 ! s = OR(a,b)

Progettazione della ALU

! Porta AND / OR" Selezionabile

! Componenti:" 1 porta AND

" 1 porta OR

" 1 Multiplexer (MUX)

Page 6: Semplificazione: mappe di Karnaugh Circuiti digitali ...homes.dsi.unimi.it/~pedersin/AER/AER08_L06.pdf · Semplificazione: mappe di Karnaugh Tecnica di semplificazione, a partire

L 6 – 11/32A.A. 2007/08 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

HALF Adder (1 bit)

$%& %!%"%#

'%& %! !#

1011

0101

0110

0000

riportosommaba

! Somma aritmetica tra 2 bit" 2 ingressi: addendi: a , b

" 2 uscite: somma: sriporto: r

Tabella della verità

#

$

'

!

HA

rout s

a b

L 6 – 12/32A.A. 2007/08 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

FULL Adder (1 bit)

()*+

s = m1 + m

2 + m

4 + m

7

rout = m3 + m

5 + m

6 + m

7

! Gestisce anche il riporto in ingresso

" 3 ingressi: !, %# , %'-." 2 uscite: s, rOUT

1

1

1

0

1

0

0

0

rout

1111

0101

0110

1100

0011

1001

1010

0000

srinba

ininininout

inininin

abrrbabrarabr

abrrbarbarbas

+++=

+++=

FA

rout s

arin b

Page 7: Semplificazione: mappe di Karnaugh Circuiti digitali ...homes.dsi.unimi.it/~pedersin/AER/AER08_L06.pdf · Semplificazione: mappe di Karnaugh Tecnica di semplificazione, a partire

L 6 – 13/32A.A. 2007/08 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

Semplificando le espressioni

!

s = abrin

+ abrin

+ abrin

+ abrin

=

= a" b( )rin + ab + ab( )rin =

= a" b( )rin + a" b( )rin =

= a" b( )" rin

rout

= abrin

+ abrin

+ abrin

+ abrin

=

= ab rin

+ rin( ) + ab + ab( )rin =

= ab + a" b( )rin

L 6 – 14/32A.A. 2007/08 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

Implementazione circuitale

!

s = a" b( )rin + a" b( )rin = a" b( )" rin

rout

= ab + a" b( )rin

b

a

rin

s

rout

Page 8: Semplificazione: mappe di Karnaugh Circuiti digitali ...homes.dsi.unimi.it/~pedersin/AER/AER08_L06.pdf · Semplificazione: mappe di Karnaugh Tecnica di semplificazione, a partire

L 6 – 15/32A.A. 2007/08 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

Implementazione mediante PLA

!%%%%# %%%%'/0

s rout

! Approccio SOP

" Costruisco i mintermini

" Li sommo alle uscite

1

1

1

0

1

0

0

0

rout

1111

0101

0110

1100

0011

1001

1010

0000

srinba

L 6 – 16/32A.A. 2007/08 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

ALU 1bit con OR,AND,Adder

ALUop

s

a

b

rin

rout

Page 9: Semplificazione: mappe di Karnaugh Circuiti digitali ...homes.dsi.unimi.it/~pedersin/AER/AER08_L06.pdf · Semplificazione: mappe di Karnaugh Tecnica di semplificazione, a partire

L 6 – 17/32A.A. 2007/08 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

Sommario

! ALU su 1 bit:operazioni logiche e somma

! ALU su 32 bit:implementazione di sottrazione, confronto e test di uguaglianza

L 6 – 18/32A.A. 2007/08 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

ALU a 32 bit

Flu

sso

di c

alc

olo

! Come?" Collegare le ALU a 1 bit

per ottenere ALU a 32 bit

! ALU in parallelo, ma..." Propagazione dei riporti

" Limite alla velocità di

calcolo

Page 10: Semplificazione: mappe di Karnaugh Circuiti digitali ...homes.dsi.unimi.it/~pedersin/AER/AER08_L06.pdf · Semplificazione: mappe di Karnaugh Tecnica di semplificazione, a partire

L 6 – 19/32A.A. 2007/08 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

Sottrazione

! Sottrazione ! addizione dell’opposto:

a – b = a + (– b)

! Complemento a 2:

– b = ~b + 1

! Realizzazione:

" Inversione logica

" Aggiunta della costante “1”

If (invertib=1) 1% f = ~b

2#

Invertitore

L 6 – 20/32A.A. 2007/08 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

ALUi

Propagazione riporti: rin(i) = rout(i-1) i = 1, 2, 3, ...31

Addizione: 1% rin(0) = 0, invertiB = 0Sottrazione: 1% rin(0) = 1, invertiB = 1

FA

rout

ALUop

!

#

$

'/0

Page 11: Semplificazione: mappe di Karnaugh Circuiti digitali ...homes.dsi.unimi.it/~pedersin/AER/AER08_L06.pdf · Semplificazione: mappe di Karnaugh Tecnica di semplificazione, a partire

L 6 – 21/32A.A. 2007/08 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

Comparazione (confronto)

! Fondamentale per dirigere il flusso di esecuzione

" (test, cicli...)

if a < b then s = 1

Dove:

" s(i) = 0, i = 1, 2, 3, ... 31

" s(0) = 1 if (a < b) & (ALUop = “comparazione”)

if (a<b) ! s = [ 0 0 0 … 0 1 ]

else ! s = [ 0 0 0 … 0 0 ]

L 6 – 22/32A.A. 2007/08 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

Come sviluppare la comparazione?

a < b ! a – b < 0

! MSB della somma (bit di segno) = 1 # sMSB = 1

! Nuovo ingresso: LESS

IF: ALUop = “comparazione” # si = LESSi

! Operazioni:" Calcolare la differenza 3a – b4 (senza mandarla in uscita)

" Inviare l’uscita del sommatore del MSB a LESS di ALU0

s31 ! LESS0

" Questa uscita viene chiamata segnale di set

Page 12: Semplificazione: mappe di Karnaugh Circuiti digitali ...homes.dsi.unimi.it/~pedersin/AER/AER08_L06.pdf · Semplificazione: mappe di Karnaugh Tecnica di semplificazione, a partire

L 6 – 23/32A.A. 2007/08 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

rout

FA

2ALUop

$

a

b

Less(i)

ALUi con comparatore

Less(i) 5 0 i = 1,2,3, ....31

Less(0) 5 s31 iff (a < b) & (S = comparazione)

rin

L 6 – 24/32A.A. 2007/08 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

! Esempio decimale:" a + b = c dove a,b,c tutti codificati con 2 cifre decimali

" a = 19, b = 83

" Overflow: 19 + 83 = (1)02

! Supponendo il MSB dedicato al bit di segno..." 019 + 083 = 102

" L’overflow modifica il MSB (in compl. a 2, dedicato al segno)

! Overflow nella somma quando:

a + b = s, a > 0, b > 0 ! MSB di a e b = 0, MSB di s = 1

a + b = s, a < 0, b < 0 ! MSB di a e b = 1, MSB di s = 0

! Si può avere overflow con a e b di segno opposto ?

Overflow

Page 13: Semplificazione: mappe di Karnaugh Circuiti digitali ...homes.dsi.unimi.it/~pedersin/AER/AER08_L06.pdf · Semplificazione: mappe di Karnaugh Tecnica di semplificazione, a partire

L 6 – 25/32A.A. 2007/08 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

Circuito di riconoscimento dell’overflow

! 3 ingressi, tutti dalla ALU31:

" MSB di a, b e somma: a31 b31 s31

over

flow

Overflow detector

a31

b31

s31

a31 b31 s31 overflow

0 0 0 0

0 0 1 1

0 1 0 0

0 1 1 0

1 0 0 0

1 0 1 0

1 1 0 1

1 1 1 0

L 6 – 26/32A.A. 2007/08 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

ALU31 con overflow detector

ALUop

s

a

b

Less

rin

= r30

ALU31

Page 14: Semplificazione: mappe di Karnaugh Circuiti digitali ...homes.dsi.unimi.it/~pedersin/AER/AER08_L06.pdf · Semplificazione: mappe di Karnaugh Tecnica di semplificazione, a partire

L 6 – 27/32A.A. 2007/08 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

ALU completa a 32 bit

! InvertiB e rIN(0)

sono lo stesso segnale

! Si può ancora ottimizzare

L 6 – 28/32A.A. 2007/08 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

Test di uguaglianza

! Esempio: istruzione Assembly:

beq rs, rt label # if (rs – rt) = 0 , salta

! Operazioni necessarie

" Impostare una differenza.

" Effettuare l’ OR di tutti i bit somma.

" Uscita dell’ OR = 0 ! i due numeri sono uguali

! Operazioni possibili:

" AND

" OR

" Somma / Sottrazione

" Comparazione

" Test di uguaglianza

Page 15: Semplificazione: mappe di Karnaugh Circuiti digitali ...homes.dsi.unimi.it/~pedersin/AER/AER08_L06.pdf · Semplificazione: mappe di Karnaugh Tecnica di semplificazione, a partire

L 6 – 29/32A.A. 2007/08 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

ALU a 32 bit: struttura finale

ALUop

3

L 6 – 30/32A.A. 2007/08 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

Circuito della somma

FA

si

ai

bi

Lessi

riout

ALUopriin

FA

si-1

ai-1

bi-1

Lessi-1

riout

ALUopri-2in

ri-1out =

ALU

(i-1

)ALU

(i)

Riporto r:variabile

interna

ai-1rin,i-1

bi-1

ai

bi

rout,i-1

rin,i

rout,isi

si-1

Page 16: Semplificazione: mappe di Karnaugh Circuiti digitali ...homes.dsi.unimi.it/~pedersin/AER/AER08_L06.pdf · Semplificazione: mappe di Karnaugh Tecnica di semplificazione, a partire

L 6 – 31/32A.A. 2007/08 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

Cammini critici

! Per ogni stadio:" Somma: 6(%& %7

" Riporto: 68%& %7

! Per N stadi:" Somma: 6(%& %7

" Riporto: 68%& %7•.

! N = 4 bit !"CR=12

ai-1rin,i-1

bi-1

ai

bi

rout,i-1

rin,i

rout,isi

si-1

L 6 – 32/32A.A. 2007/08 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

I problemi del full-adder

! Full Adder con propagazione di riporto è lento" Il riporto si propaga sequenzialmente

! caratteristica dell’algoritmo di calcolo

" La commutazione dei circuiti non è istantanea

! caratteristica fisica dei dispositivi

! Soluzioni" modificare i dispositivi

" modificare l’algoritmo