Sei sulla pagina 1di 8

$GGL]LRQDWRULPHWRGR &DUU\/RRNDKHDG

Salvatore Orlando
&
Marta Simeoni

Arch. Elab. - S. Orlando

$GGL]LRQDWRUL
Il circuito combinatorio che implementa laddizionatore a
n bit costruito collegando in sequenza un numero n di
1-bit adder
il circuito usa lo stesso metodo usato dallalgoritmo
carta e penna
il segnale deve attraversare pi livelli di logica
si pu realizzare con porte con fan-in limitato

Arch. Elab. - S. Orlando

ELW$/8
Catena di 1-bit ALU
propagazione del Riporto
(Carry) da un 1-bit ALU al
successivo 1-bit ALU
Operation
segnale di controllo per
determinare loperazione
che lALU deve eseguire:
propagato a tutte le 1-bit
ALU

Arch. Elab. - S. Orlando

$/8H6RPPDYHORFH
Considerazioni sulla velocit dellALU nelleseguire la
somma:
lingresso CarryIn di ogni 1-bit adder dipende dal
valore calcolato dall1-bit adder precedente
il bit pi significativo della somma deve quindi
attendere 32 volte il tempo di attraversamento del
segnale attraverso i vari sommatori LENTO
... ci sono metodi per velocizzare il calcolo del riporto,
si cerca di far passare il segnale per un numero
minore di porte
metodo Carry Lookahead per anticipare il riporto
Arch. Elab. - S. Orlando

&DOFRORULSRUWLFRQOLYHOOLGLORJLFD
Lequazione per il calcolo di CarryOut
CarryOut = (BCarryIn) + (ACarryIn) + AB
Il CarryOut di un 1-bit adder diventa il CarryIn del 1-bit
adder successivo:
c1 = (b0c0) + (a0c0) + a0b0
c2 = (b1c1) + (a1c1) + a1b1
......
Sostituendo in c2 lespressione relativa a c1 si ottiene
c2 = (b1a0b0)+(b1a0c0)
+(b1b0c0)+(a1a0b0)+(a1a0c0)+(a1b0c0)+(a1b1)
Si pu continuare ad espandere i vari ci in modo da
esprimerli solo in funzione di co e dei vari ai e bi con soli
2 livelli di logica troppo costoso

Arch. Elab. - S. Orlando

&DUU\/RRNDKHDG
Come semplificare il calcolo di ci+1?
ci+1 = (bici) + (aici)+(aibi) = (aibi) + (ai+bi)ci =
= gi + pi ci
gi = GENERATORE
se gi = 1 allora ci+1 = gi + pici = 1 + pici = 1
cio il sommatore genera 1 indipendentemente dal
valore di ci
pi = PROPAGATORE
se gi = 0 e pi = 1, allora ci+1 = 0 + 1ci = ci
cio il sommatore propaga il CarryIn sul CarryOut
Quindi:
ci+1 = 1
ci+1 = 0

se gi = 1 oppure
altrimenti

pi = 1 e ci = 1
Arch. Elab. - S. Orlando

&DUU\/RRNDKHDG
Per un sommatore a 4 bit si ha:
c1 = g0 + p0c0
c2 = g1 + p1c1 = g1 + (p1g0) + (p1p0c0)
c3 = g2 + p2c2 = g2 + (p2g1) + (p2p1g0) + (p2p1p0c0)
c4 = g3 + p3c3 = g3 + (p3g2) + (p3p2g1)
+ (p3p2p1g0) + (p3p2p1p0c0)
Nota che il segnale di riporto i-esimo (ci) vale 1 se qualche
sommatore precedente ha generato un riporto, e tutti i
sommatori intermedi lo propagano
Possiamo calcolare in parallelo i vari pi e gi , e sulla base
di questi possiamo poi calcolare parallelamente i vari ci
Non possiamo calcolare tutti i riporti in parallelo su pi di
4 bit equazioni troppo lunghe e complesse
Arch. Elab. - S. Orlando

$GGL]LRQDWRUHDELWFRQ &DUU\/RRNDKHDG
c0
a0
b0

p0
g0

ris0

c1
a1
b1

p1
g1

c2
a2
b2

p2
g2

ris1

Carry
Lookahead
ris2

c3
a3
b3

+
c4

p3
g3

ris3
Arch. Elab. - S. Orlando

&DUU\/RRNDKHDG
Per realizzare sommatori a pi di 4 bit e con Carry
Lookahead, senza pagare unalta complessit del circuito
di calcolo del riporto
introduciamo ununit di Carry Lookahead di livello superiore

Realizziamo cos un sommatore a 16 bit con Carry


Lookahead
composto da 4 sommatori a 4 bit (con logica interna di Carry
Lookahead)
ciascun sommatore a 4 bit diventa un blocco elementare
verifichiamo se ogni blocco elementare (sommatore a 4 bit)
propaga o genera un riporto
Superpropagatore e Supergeneratore

Usiamo i Superpropagatori e Supergeneratori come input della


nuova unit di carry-lookahead per velocizzare il calcolo dei
riporti in input ai 4 blocchi elementari (sommatori a 4 bit)
Arch. Elab. - S. Orlando

6XSHUSURSDJDWRULH6XSHUJHQHUDWRUL
Per eseguire il Carry Lookahead con 4 sommatori a 4 bit
necessario considerare i segnali genera e propaga di
ordine superiore
Supergeneratori e Superpropagatori

Un sommatore a 4 bit propaga un eventuale CarryIn solo


se ciascuno dei bit del gruppo propaga un riporto
Superpropagatori:
P0 = p3p2p1p0
P1 = p7p6p5p4
P2 = p11p10p9p8
P3 = p15p14p13p12
Arch. Elab. - S. Orlando

10

6XSHUSURSDJDWRULH6XSHUJHQHUDWRUL
Un sommatore a 4bit genera un riporto
se il riporto viene generato in una certa posizione, e viene
propagato in tutte le posizioni intermedie

Supergeneratori
G0 = g3 + (p3g2) + (p3p2g1) + (p3p2p1g0)
G1 = g7 + (p7g6) + (p7p6g5) + (p7p6p5g4)
G2 = g11 + (p11g10) + (p11p10g9) + (p11p10p9g8)
G3 = g15 + (p15g14) + (p15p14g13) + (p15p14p13g12)

Arch. Elab. - S. Orlando

11

&DUU\ORRNDKHDG
I Superpropagatori e Supergeneratori possono essere
usati, analogamente ai propagatori e generatori di ordine
inferiore, per calcolare i vari riporto in ingresso a ciascun
blocco elementare (sommatore a 4 bit):
C1 = G0 + P0c0
C2 = G1 + (P1G0) + (P1P0c0)
C3 = G2 + (P2G1) + (P2P1G0) + (P2P1P0c0)
C4 = G3 + (P3G2) + (P3P2G1) + (P3P2P1G0) + (P3P2P1P0c0)

Arch. Elab. - S. Orlando

12

6RPPDWRUHDELWFRQ &DUU\ORRNDKHDG
Sommatore a 16bit composto di
quattro ALU a 4bit, con logica interna
di Carry-Lookahead
Si osservi la carry-lookahead unit
esterna
i riporti alle varie ALU a 4 bit
provengono dallunit di carrylookahead esterna
lunit di carry-lookahead esterna
lavora in base ai vari Pi e Gi, e di co
Il meccanismo del Carry Lookahead
rende il calcolo dei riporti pi veloce,
perch riduce il numero porte che i
segnali devono attraversare per
calcolare la somma
abbiamo per un limitato aumento
nel numero di porte impiegate
Arch. Elab. - S. Orlando

13

(VHPSLR&DUU\/RRNDKHDG
Calcolare gi, pi Gi Pi per i seguenti due numeri
a
b

0010 1011 1111 1000


0001 0100 1101 0110

gi = aibi
pi = ai + bi

0000 0000 1101 0000


0011 1111 1111 1110

I segnali Pi per gruppi di 4bit sono dati dallAND dei relativi pi


P3 = 0011 = 0
P2 = 1111 = 1
P1 = 1111 = 1
P0 = 1110 = 0
I segnali Gi sono invece dati da:
G0 = g3+(p3g2)+(p3p2g1)+(p3p2p1g0) = 0+(10)+(110) +(1110)=0
G1 = g7+(p7g6)+(p7p6g5)+(p7p6p5g4) = 1+(11)+(110) +(1111)=1
G2 = g11+(p11g10)+(p11p10g9)+(p11p10p9g8)=0+(10)+(110) +(1110)=0
G3 = g15+(p15g14)+(p15p14g13)+(p15p14p13g12)=0+(00)+(000) +(0010)=0
Arch. Elab. - S. Orlando

14

(VHPSLR &DUU\/RRNDKHDG FRQWLQXD


La somma a+b genera riporto?
E' sufficiente calcolare C4:
C4 = G3 + (P3G2) + (P3P2G1) + (P3P2P1G0) + (P3P2P1P0c0) =
= 0 + (00) + (011) + (0110) + (01100) =
=0 + 0
+ 0
+0
+0=
=0

Arch. Elab. - S. Orlando

15

Potrebbero piacerti anche