44
Reti Logiche 1 Prof. B. Buttarazzi A.A. 2009/2010 Circuiti Addizionatori

Reti Logiche 1 - Università degli Studi di Roma "Tor Vergata" · Addizionatori Gli addizionatori sono dei circuiti logici che permettono di eseguire l’operazione aritmetica di

Embed Size (px)

Citation preview

Page 1: Reti Logiche 1 - Università degli Studi di Roma "Tor Vergata" · Addizionatori Gli addizionatori sono dei circuiti logici che permettono di eseguire l’operazione aritmetica di

Reti Logiche 1

Prof. B. Buttarazzi

A.A. 2009/2010

Circuiti Addizionatori

Page 2: Reti Logiche 1 - Università degli Studi di Roma "Tor Vergata" · Addizionatori Gli addizionatori sono dei circuiti logici che permettono di eseguire l’operazione aritmetica di

Sommario

Half-Adder

Full-Adder

Circuiti addizionatori

21/06/2010 Corso di Reti Logiche 2009/10 2

Full-Adder

CLA (Carry Look Ahead)

Page 3: Reti Logiche 1 - Università degli Studi di Roma "Tor Vergata" · Addizionatori Gli addizionatori sono dei circuiti logici che permettono di eseguire l’operazione aritmetica di

Addizionatori

Gli addizionatori sono dei circuiti logici che

permettono di eseguire l’operazione aritmetica di

somma su rappresentazioni binarie di numeri.

21/06/2010 Corso di Reti Logiche 2009/10 3

Vediamo come si possono realizzare reti

combinatorie in grado di effettuare questo tipo di

operazione su rappresentazioni binarie di numeri.

Page 4: Reti Logiche 1 - Università degli Studi di Roma "Tor Vergata" · Addizionatori Gli addizionatori sono dei circuiti logici che permettono di eseguire l’operazione aritmetica di

Cominciamo a considerare il caso semplice di rappresentazioni binarie di

numeri su un solo bit (ossia numeri interi compresi tra 0 e 1).

1 +

1=

1 +

0 =

0 +

1 =

0 +

0 =

Addizione tra 2 bit

21/06/2010 Corso di Reti Logiche 2009/10 4

1 0110

Page 5: Reti Logiche 1 - Università degli Studi di Roma "Tor Vergata" · Addizionatori Gli addizionatori sono dei circuiti logici che permettono di eseguire l’operazione aritmetica di

Addizione tra 2 bit

Come si vede la somma 1+1 per poter essere rappresentata richiede 2 bit,

pertanto la tavola di verità che specifica il comportamento di un tale

circuito (addizionatore) é quindi la seguente:

21/06/2010 Corso di Reti Logiche 2009/10 5

1 +

1=

1 0

1 +

0 =

1

0 +

1 =

1

0 +

0 =

0

A B S1 S0

0 0 0 0

0 1 0 1

1 0 0 1

1 1 1 0

A +

B =

S1 S0

Page 6: Reti Logiche 1 - Università degli Studi di Roma "Tor Vergata" · Addizionatori Gli addizionatori sono dei circuiti logici che permettono di eseguire l’operazione aritmetica di

Analizzando la tabella di verità si può notare

che la funzione S0 corrisponde alla tavola di

verità della funzione XOR, mentre la

funzione S1 corrisponde a quella della

funzione AND.

Le due uscite del circuito possono quindi

A B S1 S0

0 0 0 0

0 1 0 1

1 0 0 1

21/06/2010 Corso di Reti Logiche 2009/10 6

Le due uscite del circuito possono quindi

essere ottenute mediante l'uso di queste due

porte elementari agli ingressi A e B.

Questo tipo di circuito con due ingressi,due

uscite una porta AND e una porta XOR viene

normalmente chiamato half adder (semi

addizionatore) per il motivo che scopriremo

tra poco.

1 0 0 1

1 1 1 0

A

B S1

S0

Page 7: Reti Logiche 1 - Università degli Studi di Roma "Tor Vergata" · Addizionatori Gli addizionatori sono dei circuiti logici che permettono di eseguire l’operazione aritmetica di

HA

Chiameremo

Half-Adder il

A B S1

R S0

S 0 0 0 0

0 1 0 1

1 0 0 1

1 1 1 0

21/06/2010 Corso di Reti Logiche 2009/10 7

1

1 +

1 =

_____

1 0

HA Half-Adder il

circuito

combinatorio in

grado di eseguire

la somma tra 2

bit e generare

Somma (S0) e

Riporto (S1)

A

B R

S

S = A ⊕⊕⊕⊕ B

R = AB

Page 8: Reti Logiche 1 - Università degli Studi di Roma "Tor Vergata" · Addizionatori Gli addizionatori sono dei circuiti logici che permettono di eseguire l’operazione aritmetica di

Half Adder (semi addizionatore )

A

Schema logico di un Half-AdderTabella di verità di un Half-Adder

A B S S

21/06/2010 Corso di Reti Logiche 2009/10 8

A

B S1

S0

A B S1 S0

0 0 0 0

0 1 0 1

1 0 0 1

1 1 1 0 HAA

B

Schema funzionale di un Half-AdderR

S

Page 9: Reti Logiche 1 - Università degli Studi di Roma "Tor Vergata" · Addizionatori Gli addizionatori sono dei circuiti logici che permettono di eseguire l’operazione aritmetica di

00+

11=

11

00+

10=

10

00+

01=

01

00+

00=

00

01+

00=

01

01+

11=

100

01+

10=

11

01+

01=

10

Passiamo ora al caso di somma tra due numeri

rappresentati su 2 bit (il risultato sarà rappresentato su 3 bit).

21/06/2010 Corso di Reti Logiche 2009/10 9

11100100 01

10+

11=

101

10+

10=

100

10+

01=

11

10+

00=

10

11+

00=

11

1001110

11+

11=

110

11+

10=

101

11+

01=

100

Page 10: Reti Logiche 1 - Università degli Studi di Roma "Tor Vergata" · Addizionatori Gli addizionatori sono dei circuiti logici che permettono di eseguire l’operazione aritmetica di

Il funzionamento del circuito, usando la normale

codifica binaria, può essere definito mediante la

seguente mappa:

21/06/2010 Corso di Reti Logiche 2009/10 10

00 01 11 10

00

110

01

11

10

A1A0

B1 B0

000 001

001 010

011 010

100 011

011 100

010 011

110 101

101

A1A0 +

B1 B0 =

S2 S1 S0

Page 11: Reti Logiche 1 - Università degli Studi di Roma "Tor Vergata" · Addizionatori Gli addizionatori sono dei circuiti logici che permettono di eseguire l’operazione aritmetica di

La realizzazione diretta di tale circuito (4 ingressi e 3

uscite) risulta evidentemente molto più complessa di

quella di un semi-addizionatore.

Inoltre, la complessità di realizzazione diventa

rapidamente proibitiva se aumentiamo ulteriormente il

numero n di bit di rappresentazione per gli addendi.

21/06/2010 Corso di Reti Logiche 2009/10 11

00 01 11 10

00

100

01

11

10

A1A0

B1 B0

000 001

001 010

011 010

100 011

011 100

010 011

110 101

101

A1A0 +

B1 B0 =

S2 S1 S0

Page 12: Reti Logiche 1 - Università degli Studi di Roma "Tor Vergata" · Addizionatori Gli addizionatori sono dei circuiti logici che permettono di eseguire l’operazione aritmetica di

La soluzione che consente di realizzare in modo semplice ed efficiente

circuiti addizionatori per rappresentazioni su due o più bit consiste nel

modularizzare la realizzazione facendo ricorso all'algoritmo di somma

cifra per cifra.

1 1 1 1

21/06/2010 Corso di Reti Logiche 2009/10 12

1 0 1 0 0 0 1 +

1 1 1 1 1 0 1 =

------------------------------

1 1 0 0 1 1 1 0

Page 13: Reti Logiche 1 - Università degli Studi di Roma "Tor Vergata" · Addizionatori Gli addizionatori sono dei circuiti logici che permettono di eseguire l’operazione aritmetica di

Considerando anche i riporti nulli si avrebbe:

1 1 1 0 0 0 1

1 0 1 0 0 0 12 +

modulo

21/06/2010 Corso di Reti Logiche 2009/10 13

Ad ogni passo consideriamo una sola cifra Ai del primo addendo, una

sola cifra Bi del secondo addendo, e l'eventuale cifra "di riporto" ri-1

derivante dall'applicazione dello stesso algoritmo alle cifre precedenti.

1 0 1 0 0 0 12 +

1 1 1 1 1 0 12 =

------------------------------

1 1 0 0 1 1 1 02

Page 14: Reti Logiche 1 - Università degli Studi di Roma "Tor Vergata" · Addizionatori Gli addizionatori sono dei circuiti logici che permettono di eseguire l’operazione aritmetica di

L'unica differenza rispetto al circuito semi-addizionatore visto in

precedenza é che ora dobbiamo considerare la presenza di 3 addendi da

un bit (a, b e la cifra di riporto r).

FA

Chiameremo

Full-Adder il

21/06/2010 Corso di Reti Logiche 2009/10 14

1 1 1 0 0 0 1

1 0 1 0 0 0 12 +

1 1 1 1 1 0 12 =

------------------------------

1 1 0 0 1 1 1 02

FA Full-Adder il

circuito

combinatorio

in grado di

eseguire la

somma tra 3

bit e generare

Somma e

Riporto

Page 15: Reti Logiche 1 - Università degli Studi di Roma "Tor Vergata" · Addizionatori Gli addizionatori sono dei circuiti logici che permettono di eseguire l’operazione aritmetica di

La specifica di un circuito in grado di effettuare tale somma (chiamato

Full Adder, o sommatore completo a 1 bit) é data dalla seguente tavola

di verità:

r A B R S

0 0 0 0 0 r

21/06/2010 Corso di Reti Logiche 2009/10 15

0 0 1 0 1

0 1 0 0 1

0 1 1 1 0

1 0 0 0 1

1 0 1 1 0

1 1 0 1 0

1 1 1 1 1

r

A

RFull

Adder

B

S

Page 16: Reti Logiche 1 - Università degli Studi di Roma "Tor Vergata" · Addizionatori Gli addizionatori sono dei circuiti logici che permettono di eseguire l’operazione aritmetica di

La sintesi di questo circuito può essere diversa a

seconda delle varie soluzioni

•Sintesi canonica

21/06/2010 Corso di Reti Logiche 2009/10 16

•Sintesi canonica

•Sintesi a tre livelli

Page 17: Reti Logiche 1 - Università degli Studi di Roma "Tor Vergata" · Addizionatori Gli addizionatori sono dei circuiti logici che permettono di eseguire l’operazione aritmetica di

Sintesi canonica del Full AdderS = r’. A’. B + r’. A . B’ + r . A’. B’ + r. A . B

R = r’. A . B + r . A’. B + r . A . B’ + r . A . B

r’ r A’ A B’ B

r A B R S

0 0 0 0 0

0 0 1 0 1

21/06/2010 Corso di Reti Logiche 2009/10 17

S

R

0 0 1 0 1

0 1 0 0 1

0 1 1 1 0

1 0 0 0 1

1 0 1 1 0

1 1 0 1 0

1 1 1 1 1

Page 18: Reti Logiche 1 - Università degli Studi di Roma "Tor Vergata" · Addizionatori Gli addizionatori sono dei circuiti logici che permettono di eseguire l’operazione aritmetica di

Sintesi a 3 livelli del Full Adder

r A B R S

0 0 0 0 0

0 0 1 0 1

21/06/2010 Corso di Reti Logiche 2009/10 18

0 0 1 0 1

0 1 0 0 1

0 1 1 1 0

1 0 0 0 1

1 0 1 1 0

1 1 0 1 0

1 1 1 1 1

Page 19: Reti Logiche 1 - Università degli Studi di Roma "Tor Vergata" · Addizionatori Gli addizionatori sono dei circuiti logici che permettono di eseguire l’operazione aritmetica di

Sintesi a 3 livelli del Full Adder

r A B (A⊕B)⊕r R S

0 0 0 0 0 0

0 0 1 1 0 1

0 1 0 1 0 1

S = (A ⊕⊕⊕⊕ B) ⊕⊕⊕⊕ r

La funzione S vale 1 solo se il

numero di 1nella somma (r,A,

B ) è dispari (XOR)

21/06/2010 Corso di Reti Logiche 2009/10 19

0 1 0 1 0 1

0 1 1 0 1 0

1 0 0 1 0 1

1 0 1 0 1 0

1 1 0 0 1 0

1 1 1 1 1 1

Page 20: Reti Logiche 1 - Università degli Studi di Roma "Tor Vergata" · Addizionatori Gli addizionatori sono dei circuiti logici che permettono di eseguire l’operazione aritmetica di

Sintesi a 3 livelli del Full Adder

r A B AB+(A+B)r R S

0 0 0 0 0 0

0 0 1 0 0 1

0 1 0 0 0 1

R = AB+(A + B)r

La funzione R risulta vera se

"almeno due ingressi dei tre

assumono il valore 1".

R corrisponde alla funzione

majority.

21/06/2010 Corso di Reti Logiche 2009/10 20

0 1 0 0 0 1

0 1 1 1 1 0

1 0 0 0 0 1

1 0 1 1 1 0

1 1 0 1 1 0

1 1 1 1 1 1

Page 21: Reti Logiche 1 - Università degli Studi di Roma "Tor Vergata" · Addizionatori Gli addizionatori sono dei circuiti logici che permettono di eseguire l’operazione aritmetica di

Ricordando che un Half-Adder è un circuito che realizza le funzioni R e S

1

1 +A

B R

R = AB

21/06/2010 Corso di Reti Logiche 2009/10 21

1 =

_____

1 0

B R

S

S = A ⊕⊕⊕⊕ B

Page 22: Reti Logiche 1 - Università degli Studi di Roma "Tor Vergata" · Addizionatori Gli addizionatori sono dei circuiti logici che permettono di eseguire l’operazione aritmetica di

Sintesi a 3 livelli del Full AdderS = (A ⊕⊕⊕⊕ B) ⊕⊕⊕⊕ r

1 BitHalf

AdderA

B

1 BitHalfr

R

S

R = AB + (A ⊕⊕⊕⊕ B)r

(A ⊕⊕⊕⊕ B)

AB

(A ⊕⊕⊕⊕ B)r

21/06/2010 Corso di Reti Logiche 2009/10 22

A

B

Sr

R

HalfAdder

r S

Page 23: Reti Logiche 1 - Università degli Studi di Roma "Tor Vergata" · Addizionatori Gli addizionatori sono dei circuiti logici che permettono di eseguire l’operazione aritmetica di

Un Full-Adder ad 1 bit è realizzabile connettendo

secondo il seguente schema logico 2 Half-Adder.

21/06/2010 Corso di Reti Logiche 2009/10 23

A

B

r S

Carry

S Carry

1 BitHalfAdder

1 BitHalfAdder

R

Page 24: Reti Logiche 1 - Università degli Studi di Roma "Tor Vergata" · Addizionatori Gli addizionatori sono dei circuiti logici che permettono di eseguire l’operazione aritmetica di

Schema funzionale di un modulo Full-Adder

r

A

S

R

Full

Adder

21/06/2010 Corso di Reti Logiche 2009/10 24

RB

Ciascun modulo lavora su 2 cifre binarie A,B ed un riporto r

(proveniente dal modulo che lo precede) e genera una cifra S

come somma ed una cifra R di "riporto" verso il modulo

successivo.

Page 25: Reti Logiche 1 - Università degli Studi di Roma "Tor Vergata" · Addizionatori Gli addizionatori sono dei circuiti logici che permettono di eseguire l’operazione aritmetica di

L'operazione di somma tra rappresentazioni binarie su più

cifre, può essere ottenuta combinando in modo opportuno i

moduli base.

21/06/2010 Corso di Reti Logiche 2009/10 25

Page 26: Reti Logiche 1 - Università degli Studi di Roma "Tor Vergata" · Addizionatori Gli addizionatori sono dei circuiti logici che permettono di eseguire l’operazione aritmetica di

Schema di connessione di 3 moduli per formare un addizionatore per

addendi rappresentati su 3 bit (e risultato rappresentato su 4 bit).

1 BITFULLADDER

S0

S1

A0B0

A1

0

ADDIZIONATORE PARALLELO

21/06/2010 Corso di Reti Logiche 2009/10 26

1 BITFULLADDER

1 BITFULLADDER

S2

S3

A1B1

A2B2

Page 27: Reti Logiche 1 - Università degli Studi di Roma "Tor Vergata" · Addizionatori Gli addizionatori sono dei circuiti logici che permettono di eseguire l’operazione aritmetica di

Questo tipo di addizionatore presenta il grande vantaggio

(derivante dalla modularità della realizzazione) che la

complessità della realizzazione cresce linearmente

all'aumentare del numero di bit degli addendi (in quanto

Osservazione

21/06/2010 Corso di Reti Logiche 2009/10 27

all'aumentare del numero di bit degli addendi (in quanto

l'aggiunta di una cifra comporta esattamente l'aggiunta di un

modulo full-adder).

Page 28: Reti Logiche 1 - Università degli Studi di Roma "Tor Vergata" · Addizionatori Gli addizionatori sono dei circuiti logici che permettono di eseguire l’operazione aritmetica di

1 BITFULLADDER

S0

S1

A0B0

A1

0

ADDIZIONATORE PARALLELO

Schema di connessione di 4 moduli per formare un addizionatore per

addendi rappresentati su 4 bit (e risultato rappresentato su 4 bit).

21/06/2010 Corso di Reti Logiche 2009/10 28

S4

1 BITFULLADDER

1 BITFULLADDER

1 BITFULLADDER

S2

S3

A1B1

A2B2

A3B3

Page 29: Reti Logiche 1 - Università degli Studi di Roma "Tor Vergata" · Addizionatori Gli addizionatori sono dei circuiti logici che permettono di eseguire l’operazione aritmetica di

Il circuito addizionatore parallelo n- bit progettato può

operare su rappresentazioni binarie di numeri senza segno.

Osservazione

21/06/2010 Corso di Reti Logiche 2009/10 29

Page 30: Reti Logiche 1 - Università degli Studi di Roma "Tor Vergata" · Addizionatori Gli addizionatori sono dei circuiti logici che permettono di eseguire l’operazione aritmetica di

Il circuito addizionatore parallelo n- bit può essere usato

anche per operare su rappresentazioni di numeri con segno in

complemento a 2 .

Osservazione

21/06/2010 Corso di Reti Logiche 2009/10 30

L'unica accortezza che occorre osservare in tal caso é quella

di definire il risultato su n bit (senza considerare l‘n+1-esimo

bit di riporto) e accertarsi che il risultato di una operazione di

somma tra numeri dello stesso segno non generi condizioni di

overflow.

Page 31: Reti Logiche 1 - Università degli Studi di Roma "Tor Vergata" · Addizionatori Gli addizionatori sono dei circuiti logici che permettono di eseguire l’operazione aritmetica di

Questo tipo di addizionatore detto anche ripple carry

(a propagazione di riporto) presenta un difetto, quello di richiedere un

tempo di assestamento del risultato che cresce linearmente al crescere

del numero di bit della rappresentazione degli addendi.

In particolare, a causa della propagazione del riporto il tempo di

Osservazione

21/06/2010 Corso di Reti Logiche 2009/10 31

In particolare, a causa della propagazione del riporto il tempo di

assestamento del segnale per la cifra più significativa sarà n volte più

grande di quello per la cifra meno significativa,infatti per generare il

risultato occorre aspettare che il riporto via via generato attraverso tutti i

moduli full-adder.

Page 32: Reti Logiche 1 - Università degli Studi di Roma "Tor Vergata" · Addizionatori Gli addizionatori sono dei circuiti logici che permettono di eseguire l’operazione aritmetica di

1 BITFULLADDER

S0

S1

A0B0

A1

0

ADDIZIONATORE PARALLELO

21/06/2010 Corso di Reti Logiche 2009/10 32

S4

1 BITFULLADDER

1 BITFULLADDER

1 BITFULLADDER

S2

S3

A1B1

A2B2

A3B3

Page 33: Reti Logiche 1 - Università degli Studi di Roma "Tor Vergata" · Addizionatori Gli addizionatori sono dei circuiti logici che permettono di eseguire l’operazione aritmetica di

Addizionatore per numeri binari rappresentati su 4 bit (e

risultato rappresentato su 5 bit) ottenuto dalla connessione di 4

moduli FA.

1 BITFULLADDER

Z0

Z1

X0Y0

X1

0

Esempio di RC: ADDIZIONATORE PARALLELO

21/06/2010 Corso di Reti Logiche 2009/10 33

Z4

1 BITFULLADDER

1 BITFULLADDER

1 BITFULLADDER

Z2

Z3

X1Y1

X2Y2

X3Y3

Page 34: Reti Logiche 1 - Università degli Studi di Roma "Tor Vergata" · Addizionatori Gli addizionatori sono dei circuiti logici che permettono di eseguire l’operazione aritmetica di

I limiti dell’addizionatore parallelo (ripple carry) legati al tempo

di assestamento del risultato (che cresce linearmente al crescere

del numero di bit della rappresentazione degli addendi) potrebbero

essere rimossi se riuscissimo a realizzare una rete combinatoria

che sia in grado di calcolare simultaneamente le cifre di riporto

per ogni coppia di addendi (carry look ahead).

21/06/2010 Corso di Reti Logiche 2009/10 34

per ogni coppia di addendi (carry look ahead).

Page 35: Reti Logiche 1 - Università degli Studi di Roma "Tor Vergata" · Addizionatori Gli addizionatori sono dei circuiti logici che permettono di eseguire l’operazione aritmetica di

1 BITFULLADDER

Z0

Z1

X0Y0

X1

0

ADDIZIONATO PARALLELO CLA

R0

R1

Dotato di un

circuito logico

aggiuntivo

CLA

21/06/2010 Corso di Reti Logiche 2009/10 35

1 BITFULLADDER

1 BITFULLADDER

1 BITFULLADDER

Z2

Z3

X1Y1

X2Y2

X3Y3 Z4

R2

R3

che calcola in

anticipo tutti i

riporti e li

fornisce

simultanea-

mente a

ciascun

modulo “Full-

Adder”

Page 36: Reti Logiche 1 - Università degli Studi di Roma "Tor Vergata" · Addizionatori Gli addizionatori sono dei circuiti logici che permettono di eseguire l’operazione aritmetica di

R A B R S

Per comprendere il principio che è alla base della logica ausiliaria di calcolo del riporto

nel CLA analizziamo nuovamente la tabella di verità e vediamo in quali condizioni può

essere generato ciascun riporto.

Dalla osservazione della tabella si vede che il riporto Ri+1 (che andrà ad alimentare la

somma tra Ai+1.Bi+1 viene generato se (Aie Bi in ingresso valgono contemporaneamente

1)Ai.Bi =1 oppure se

al passo precedente si era verificato un riporto (Ri =1) e (Ai + Bi)=1 ovvero

(Ai + Bi).Ri.

21/06/2010 Corso di Reti Logiche 2009/10 36

Ri Ai Bi Ri+1 Si

0 0 0 0 0

0 0 1 0 1

0 1 0 0 1

0 1 1 1 0

1 0 0 0 1

1 0 1 1 0

1 1 0 1 0

1 1 1 1 1

Ri+1 = Ai.Bi + (Ai + Bi).Ri.

Page 37: Reti Logiche 1 - Università degli Studi di Roma "Tor Vergata" · Addizionatori Gli addizionatori sono dei circuiti logici che permettono di eseguire l’operazione aritmetica di

Ri Ai Bi Ri+1 Si

mentre Si vale 1 solo se il numero di 1nella tabella (Ai, Bi,Ri ) è

dispari (XOR)

21/06/2010 Corso di Reti Logiche 2009/10 37

Ri Ai Bi Ri+1 Si

0 0 0 0 0

0 0 1 0 1

0 1 0 0 1

0 1 1 1 0

1 0 0 0 1

1 0 1 1 0

1 1 0 1 0

1 1 1 1 1

quindi

Si = Ai ⊕ Bi ⊕ Ri

Page 38: Reti Logiche 1 - Università degli Studi di Roma "Tor Vergata" · Addizionatori Gli addizionatori sono dei circuiti logici che permettono di eseguire l’operazione aritmetica di

Ri+1 = Ai.Bi + (Ai + Bi).Ri.

Si = Ai ⊕ Bi ⊕ Ri

21/06/2010 Corso di Reti Logiche 2009/10 38

Page 39: Reti Logiche 1 - Università degli Studi di Roma "Tor Vergata" · Addizionatori Gli addizionatori sono dei circuiti logici che permettono di eseguire l’operazione aritmetica di

Ri+1 = Ai.Bi + (Ai + Bi).Ri.

i termini G (Generate- che genera il riporto) e P

(Propagate - che causa la propagazione del riporto)

Indicando nella formula:

21/06/2010 Corso di Reti Logiche 2009/10 39

(Propagate - che causa la propagazione del riporto)

Gi = Ai.Bi

Pi. = (Ai + Bi)

si ha che

Ri+1 = Gi + Pi.Ri

mentre

Si = Ai ⊕ Bi ⊕ Ri = Pi ⊕ Ri.

Page 40: Reti Logiche 1 - Università degli Studi di Roma "Tor Vergata" · Addizionatori Gli addizionatori sono dei circuiti logici che permettono di eseguire l’operazione aritmetica di

Ri+1 = Gi + Pi.Ri

Interpretazione

Il riporto Ri+1 o è generato (Ai Bi=1) ex-novo oppure è propagato Ri attraverso la funzione Pi

oppure entrambi

Ri Ai Bi Ri+1 Si

0 0 0 0 0

0 0 1 0 1

21/06/2010 Corso di Reti Logiche 2009/10 40

0 0 1 0 1

0 1 0 0 1

0 1 1 1 0

1 0 0 0 1

1 0 1 1 0

1 1 0 1 0

1 1 1 1 1

Page 41: Reti Logiche 1 - Università degli Studi di Roma "Tor Vergata" · Addizionatori Gli addizionatori sono dei circuiti logici che permettono di eseguire l’operazione aritmetica di

Applicando le espressioni di calcolo del riporto a un addizionatore a 4-bit e facendo le

sostituzioni :

R1 = G0 + P0.R0 = A0.B0 + (A0 + B0) .R0

R2 = G1 + P1.R1 = G1 + P1.G0 + P1.P0.R0 = A1.B1 +

(A1 + B1) A0B0 +

(A1 + B1) (A0 + B0) R0

R3 = G2 + P2. R2 = G2 + P2. G1 + P2.P1.G0 + P2.P1.P0.R0 =

21/06/2010 Corso di Reti Logiche 2009/10 41

R3 = G2 + P2. R2 = G2 + P2. G1 + P2.P1.G0 + P2.P1.P0.R0 =

R4 = G3 + P3.R3 = G3 + P3.G2 + P3.P2.G1 + P3P2.P1.G0 + P3P2.P1.P0.R0 =

Page 42: Reti Logiche 1 - Università degli Studi di Roma "Tor Vergata" · Addizionatori Gli addizionatori sono dei circuiti logici che permettono di eseguire l’operazione aritmetica di

R3 = G2 + P2. R2 = G2 + P2. G1 + P2.P1.G0 + P2.P1.P0.R0 =

A2.B2 +

(A2 + B2) A1B1 +

(A2 + B2)(A1 + B1) A0.B0

(A2 + B2)(A1 + B1) (A0 + B0) R0

R4 = G3 + P3.R3 = G3 + P3.G2 + P3.P2.G1 + P3P2.P1.G0 + P3P2.P1.P0.R0 =

A .B +

21/06/2010 Corso di Reti Logiche 2009/10 42

A3.B3 +

(A3 + B3) A2B2 +

(A3 + B3)(A2 + B2) A1.B1

(A3 + B3)(A2 + B2) (A1 + B1) A0B0

(A3 + B3)(A2 + B2) (A1 + B1) (A0 + B0) A0B0

Page 43: Reti Logiche 1 - Università degli Studi di Roma "Tor Vergata" · Addizionatori Gli addizionatori sono dei circuiti logici che permettono di eseguire l’operazione aritmetica di

emerge che è possibile generare una rete combinatoria, non più modulare, denominata

carry look ahead che tramite circuiti opportuni è in grado di calcolare qualunque

riporto (carry) Ri .

21/06/2010 Corso di Reti Logiche 2009/10 43

Si noti però la perdita di modularità (derivante dal fatto che ogni blocco che genera un

carry è diverso dagli altri) derivante da questa tecnica può comportare un aggravio di

tempo in fase di progetto del circuito.

Page 44: Reti Logiche 1 - Università degli Studi di Roma "Tor Vergata" · Addizionatori Gli addizionatori sono dei circuiti logici che permettono di eseguire l’operazione aritmetica di

La figura mostra lo schema di una possibile implementazione per sommatore CLA

21/06/2010 Corso di Reti Logiche 2009/10 44