26
1 cture 12: Hardware for Arithmetic oday’s topics: Designing an ALU Carry-lookahead adder eminder: Assignment 5 will be posted in a couple of ays (due Thursday 10/12), no class on Thursday 10/1 id-term exam Tuesday 10/24

1 Lecture 12: Hardware for Arithmetic Today’s topics: Designing an ALU Carry-lookahead adder Reminder: Assignment 5 will be posted in a couple of days

Embed Size (px)

Citation preview

Page 1: 1 Lecture 12: Hardware for Arithmetic Today’s topics:  Designing an ALU  Carry-lookahead adder Reminder: Assignment 5 will be posted in a couple of days

1

Lecture 12: Hardware for Arithmetic

• Today’s topics:

Designing an ALU Carry-lookahead adder

• Reminder: Assignment 5 will be posted in a couple of days (due Thursday 10/12), no class on Thursday 10/19, mid-term exam Tuesday 10/24

Page 2: 1 Lecture 12: Hardware for Arithmetic Today’s topics:  Designing an ALU  Carry-lookahead adder Reminder: Assignment 5 will be posted in a couple of days

2

DeMorgan’s Laws

• A + B = A . B

• A . B = A + B

• Confirm that these are indeed true

Page 3: 1 Lecture 12: Hardware for Arithmetic Today’s topics:  Designing an ALU  Carry-lookahead adder Reminder: Assignment 5 will be posted in a couple of days

3

Sum of Products

• Can represent any logic block with the AND, OR, NOT operators Draw the truth table For each true output, represent the corresponding inputs as a product The final equation is a sum of these products

A B C E 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 0

(A . B . C) + (A . C . B) + (C . B . A)

• Can also use “product of sums”• Any equation can be implemented with an array of ANDs, followed by an array of ORs

Page 4: 1 Lecture 12: Hardware for Arithmetic Today’s topics:  Designing an ALU  Carry-lookahead adder Reminder: Assignment 5 will be posted in a couple of days

4

Adder Algorithm

1 0 0 1 0 1 0 1Sum 1 1 1 0Carry 0 0 0 1

A B Cin Sum Cout 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1

Truth Table for the above operations:

Page 5: 1 Lecture 12: Hardware for Arithmetic Today’s topics:  Designing an ALU  Carry-lookahead adder Reminder: Assignment 5 will be posted in a couple of days

5

Adder Algorithm

1 0 0 1 0 1 0 1Sum 1 1 1 0Carry 0 0 0 1

A B Cin Sum Cout 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1

Truth Table for the above operations:

Equations:Sum = Cin . A . B + B . Cin . A + A . Cin . B + A . B . Cin

Cout = A . B . Cin + A . B . Cin + A . Cin . B + B . Cin . A = A . B + A . Cin + B . Cin

Page 6: 1 Lecture 12: Hardware for Arithmetic Today’s topics:  Designing an ALU  Carry-lookahead adder Reminder: Assignment 5 will be posted in a couple of days

6

Carry Out Logic

Equations:Sum = Cin . A . B + B . Cin . A + A . Cin . B + A . B . Cin

Cout = A . B . Cin + A . B . Cin + A . Cin . B + B . Cin . A = A . B + A . Cin + B . Cin

Page 7: 1 Lecture 12: Hardware for Arithmetic Today’s topics:  Designing an ALU  Carry-lookahead adder Reminder: Assignment 5 will be posted in a couple of days

7

1-Bit ALU with Add, Or, And

• Multiplexor selects between Add, Or, And operations

Page 8: 1 Lecture 12: Hardware for Arithmetic Today’s topics:  Designing an ALU  Carry-lookahead adder Reminder: Assignment 5 will be posted in a couple of days

8

32-bit Ripple Carry Adder

1-bit ALUs are connected “in series” with the carry-out of 1 box going into the carry-in of the next box

Page 9: 1 Lecture 12: Hardware for Arithmetic Today’s topics:  Designing an ALU  Carry-lookahead adder Reminder: Assignment 5 will be posted in a couple of days

9

Incorporating Subtraction

Page 10: 1 Lecture 12: Hardware for Arithmetic Today’s topics:  Designing an ALU  Carry-lookahead adder Reminder: Assignment 5 will be posted in a couple of days

10

Incorporating Subtraction

Must invert bits of B and add a 1• Include an inverter• CarryIn for the first bit is 1• The CarryIn signal (for the first bit) can be the same as the Binvert signal

Page 11: 1 Lecture 12: Hardware for Arithmetic Today’s topics:  Designing an ALU  Carry-lookahead adder Reminder: Assignment 5 will be posted in a couple of days

11

Incorporating NOR

Page 12: 1 Lecture 12: Hardware for Arithmetic Today’s topics:  Designing an ALU  Carry-lookahead adder Reminder: Assignment 5 will be posted in a couple of days

12

Incorporating NOR

Page 13: 1 Lecture 12: Hardware for Arithmetic Today’s topics:  Designing an ALU  Carry-lookahead adder Reminder: Assignment 5 will be posted in a couple of days

13

Incorporating slt

Page 14: 1 Lecture 12: Hardware for Arithmetic Today’s topics:  Designing an ALU  Carry-lookahead adder Reminder: Assignment 5 will be posted in a couple of days

14

Incorporating slt

• Perform a – b and check the sign

• New signal (Less) that is zero for ALU boxes 1-31

• The 31st box has a unit to detect overflow and sign – the sign bit serves as the Less signal for the 0th box

Page 15: 1 Lecture 12: Hardware for Arithmetic Today’s topics:  Designing an ALU  Carry-lookahead adder Reminder: Assignment 5 will be posted in a couple of days

15

Incorporating beq

• Perform a – b and confirm that the result is all zero’s

Page 16: 1 Lecture 12: Hardware for Arithmetic Today’s topics:  Designing an ALU  Carry-lookahead adder Reminder: Assignment 5 will be posted in a couple of days

16

Control Lines

What are the valuesof the control lines

and what operationsdo they correspond to?

Page 17: 1 Lecture 12: Hardware for Arithmetic Today’s topics:  Designing an ALU  Carry-lookahead adder Reminder: Assignment 5 will be posted in a couple of days

17

Control Lines

What are the valuesof the control lines

and what operationsdo they correspond to?

Ai Bn OpAND 0 0 00OR 0 0 01Add 0 0 10Sub 0 1 10SLT 0 1 11NOR 1 1 00

Page 18: 1 Lecture 12: Hardware for Arithmetic Today’s topics:  Designing an ALU  Carry-lookahead adder Reminder: Assignment 5 will be posted in a couple of days

18

Speed of Ripple Carry

• The carry propagates thru every 1-bit box: each 1-bit box sequentially implements AND and OR – total delay is the time to go through 64 gates!

• We’ve already seen that any logic equation can be expressed as the sum of products – so it should be possible to compute the result by going through only 2 gates!

• Caveat: need many parallel gates and each gate may have a very large number of inputs – it is difficult to efficiently build such large gates, so we’ll find a compromise:

moderate number of gates moderate number of inputs to each gate moderate number of sequential gates traversed

Page 19: 1 Lecture 12: Hardware for Arithmetic Today’s topics:  Designing an ALU  Carry-lookahead adder Reminder: Assignment 5 will be posted in a couple of days

19

Computing CarryOut

CarryIn1 = b0.CarryIn0 + a0.CarryIn0 + a0.b0CarryIn2 = b1.CarryIn1 + a1.CarryIn1 + a1.b1 = b1.b0.c0 + b1.a0.c0 + b1.a0.b0 + a1.b0.c0 + a1.a0.c0 + a1.a0.b0 + a1.b1 …CarryIn32 = a really large sum of really large products

• Potentially fast implementation as the result is computed by going thru just 2 levels of logic – unfortunately, each gate is enormous and slow

Page 20: 1 Lecture 12: Hardware for Arithmetic Today’s topics:  Designing an ALU  Carry-lookahead adder Reminder: Assignment 5 will be posted in a couple of days

20

Generate and Propagate

Equation re-phrased: Ci+1 = ai.bi + ai.Ci + bi.Ci = (ai.bi) + (ai + bi).Ci

Stated verbally, the current pair of bits will generate a carry if they are both 1 and the current pair of bits will propagate a carry if either is 1

Generate signal = ai.bi Propagate signal = ai + bi

Therefore, Ci+1 = Gi + Pi . Ci

Page 21: 1 Lecture 12: Hardware for Arithmetic Today’s topics:  Designing an ALU  Carry-lookahead adder Reminder: Assignment 5 will be posted in a couple of days

21

Generate and Propagate

c1 = g0 + p0.c0 c2 = g1 + p1.c1 = g1 + p1.g0 + p1.p0.c0 c3 = g2 + p2.g1 + p2.p1.g0 + p2.p1.p0.c0 c4 = g3 + p3.g2 + p3.p2.g1 + p3.p2.p1.g0 + p3.p2.p1.p0.c0

Either, a carry was just generated, or a carry was generated in the last step and was propagated, or a carry was generated two steps back and was propagated by both the next two stages, or a carry was generated N steps back and was propagated by every single one of the N next stages

Page 22: 1 Lecture 12: Hardware for Arithmetic Today’s topics:  Designing an ALU  Carry-lookahead adder Reminder: Assignment 5 will be posted in a couple of days

22

Divide and Conquer

• The equations on the previous slide are still difficult to implement as logic functions – for the 32nd bit, we must AND every single propagate bit to determine what becomes of c0 (among other things)

• Hence, the bits are broken into groups (of 4) and each group computes its group-generate and group-propagate

• For example, to add 32 numbers, you can partition the task as a tree

. . . . .. . . . . . . . . . . . . . . .

Page 23: 1 Lecture 12: Hardware for Arithmetic Today’s topics:  Designing an ALU  Carry-lookahead adder Reminder: Assignment 5 will be posted in a couple of days

23

P and G for 4-bit Blocks

• Compute P0 and G0 (super-propagate and super-generate) for the first group of 4 bits (and similarly for other groups of 4 bits) P0 = p0.p1.p2.p3 G0 = g3 + g2.p3 + g1.p2.p3 + g0.p1.p2.p3

• Carry out of the first group of 4 bits is C1 = G0 + P0.c0 C2 = G1 + P1.G0 + P1.P0.c0 …

• By having a tree of sub-computations, each AND, OR gate has few inputs and logic signals have to travel through a modest set of gates (equal to the height of the tree)

Page 24: 1 Lecture 12: Hardware for Arithmetic Today’s topics:  Designing an ALU  Carry-lookahead adder Reminder: Assignment 5 will be posted in a couple of days

24

Example

Add A 0001 1010 0011 0011 and B 1110 0101 1110 1011 g 0000 0000 0010 0011 p 1111 1111 1111 1011

P 1 1 1 0 G 0 0 1 0

C4 = 1

Page 25: 1 Lecture 12: Hardware for Arithmetic Today’s topics:  Designing an ALU  Carry-lookahead adder Reminder: Assignment 5 will be posted in a couple of days

25

Carry Look-Ahead Adder

• 16-bit Ripple-carry takes 32 steps

• This design takes how many steps?

Page 26: 1 Lecture 12: Hardware for Arithmetic Today’s topics:  Designing an ALU  Carry-lookahead adder Reminder: Assignment 5 will be posted in a couple of days

26

Title

• Bullet