Sunteți pe pagina 1din 6

Implementarea unui sumator

Ciin Xi Yi

SUM C1 A0 B0 Z0 C0 Rezi Ciout

module fulladd(sum,carry,a,b,c); input a,b,c; output sum,carry; wire sum1; xor xor1(sum1,a,b); xor xor2(sum,sum1,c); and and1(c1,a,b); and and2(c2,b,c); and and3(c3,a,c); or or1(carry,c1,c2,c3); endmodule

Sumatorul cu anticiparea transportului

cin1
ci
1

b0 cin0
bi ci a i ci

a0 cin0
ai bi

a0 b0
ai bi ci ( ai bi )
Propagarea transportului

p g

Generarea transportului

ci

gi

pi ci

sumi

ai ^ bi ^ ci

sumi

(~ gi pi ) ^ ci

Sum3 Sum3 C3 GP GC

x3 y3 P/G 3

Sum2 Sum2

x2 y2 P/G 2 G2 C 1

Sum1 Sum1

x1 y1 P/G 1 G1 C 0

Sum0 Sum0

x0 y0 P/G 0 G0 C0

P3

G3 C 2

P2

P1

P0

LOGICA DE ANTICIPARE A TRANSPORTULUI

Seciune pe 4 bii a unui sumator cu anticipare a transportului

Nivel superior de abstractizare pentru trecerea la sumatorul de 16 bii.

Considerm:

P propagarea transportului la nivel de bloc G generarea transportului la nivel de bloc

P0

p3 p 2 p1 p0

P1
P2 P3
G0
G1

p 7 p 6 p5 p 4
p11 p10 p9 p8 p15 p14 p13 p12
g3
g7

p3 g 2
p7 g6

p3 p 2 g1
p7 p6

p3 p 2 p1 g 0
g5 p7 p6 p5 g4

G2
G3

g11
g15

p11 g10
p15 g14

p11 p10 g 9
p15 p14 g13

p11 p10

p9 g 8

p15 p14 p13 g12

Sumator pe 16 bii