lecture 8 - harvey mudd collegepages.hmc.edu/harris/class/e85/lect8.pdf · digital design and...

43
Lecture 8: Arithmetic Circuits E85 Digital Design & Computer Engineering

Upload: others

Post on 18-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Lecture 8 - Harvey Mudd Collegepages.hmc.edu/harris/class/e85/lect8.pdf · Digital Design and Computer Architecture: ARM® Edition © 2015 Lecture 8  A B 0 0 0 1 1 0 1 1

Lecture 8: Arithmetic Circuits

E85 Digital Design & Computer Engineering

Page 2: Lecture 8 - Harvey Mudd Collegepages.hmc.edu/harris/class/e85/lect8.pdf · Digital Design and Computer Architecture: ARM® Edition © 2015 Lecture 8  A B 0 0 0 1 1 0 1 1

Lecture 8 <2> Digital Design and Computer Architecture: ARM® Edition © 2015

Lecture 8

• Chapter 5 Introduction• Arithmetic Circuits

– 1-bit Adders– N-bit Adders

• Ripple Adders• Carry Lookahead Adders• Prefix Adders

– Subtractors– Arithmetic/Logic Units

Page 3: Lecture 8 - Harvey Mudd Collegepages.hmc.edu/harris/class/e85/lect8.pdf · Digital Design and Computer Architecture: ARM® Edition © 2015 Lecture 8  A B 0 0 0 1 1 0 1 1

Lecture 8 <3> Digital Design and Computer Architecture: ARM® Edition © 2015

• Digital building blocks:– Gates, multiplexers, decoders, registers,

arithmetic circuits, counters, memory arrays, logic arrays

• Building blocks demonstrate hierarchy, modularity, and regularity:– Hierarchy of simpler components– Well-defined interfaces and functions– Regular structure easily extends to different sizes

• Will use these building blocks in Chapter 7 to build microprocessor

Chapter 5 Introduction

Page 4: Lecture 8 - Harvey Mudd Collegepages.hmc.edu/harris/class/e85/lect8.pdf · Digital Design and Computer Architecture: ARM® Edition © 2015 Lecture 8  A B 0 0 0 1 1 0 1 1

Lecture 8 <4> Digital Design and Computer Architecture: ARM® Edition © 2015

A B0 00 11 01 1

0110

SCout0001

S = A Å BCout = AB

HalfAdderA B

S

Cout +

A B0 00 11 01 1

0110

SCout0001

S = A Å B Å CinCout = AB + ACin + BCin

FullAdder

Cin

0 00 11 01 1

00001111

1001

0111

A B

S

Cout Cin+

1-Bit Adders

Page 5: Lecture 8 - Harvey Mudd Collegepages.hmc.edu/harris/class/e85/lect8.pdf · Digital Design and Computer Architecture: ARM® Edition © 2015 Lecture 8  A B 0 0 0 1 1 0 1 1

Lecture 8 <5> Digital Design and Computer Architecture: ARM® Edition © 2015

A B

S

Cout Cin+N

NN

• Types of carry propagate adders (CPAs):– Ripple-carry (slow)– Carry-lookahead (fast)– Prefix (faster)

• Carry-lookahead and prefix adders faster for large adders but require more hardware

Symbol

Multibit Adders (CPAs)

Page 6: Lecture 8 - Harvey Mudd Collegepages.hmc.edu/harris/class/e85/lect8.pdf · Digital Design and Computer Architecture: ARM® Edition © 2015 Lecture 8  A B 0 0 0 1 1 0 1 1

Lecture 8 <6> Digital Design and Computer Architecture: ARM® Edition © 2015

S31

A30 B30

S30

A1 B1

S1

A0 B0

S0

C30 C29 C1 C0Cout ++++

A31 B31

Cin

• Chain 1-bit adders together• Carry ripples through entire chain• Disadvantage: slow

Ripple-Carry Adder

Page 7: Lecture 8 - Harvey Mudd Collegepages.hmc.edu/harris/class/e85/lect8.pdf · Digital Design and Computer Architecture: ARM® Edition © 2015 Lecture 8  A B 0 0 0 1 1 0 1 1

Lecture 8 <7> Digital Design and Computer Architecture: ARM® Edition © 2015

tripple = NtFA

where tFA is the delay of a 1-bit full adder

Ripple-Carry Adder Delay

Page 8: Lecture 8 - Harvey Mudd Collegepages.hmc.edu/harris/class/e85/lect8.pdf · Digital Design and Computer Architecture: ARM® Edition © 2015 Lecture 8  A B 0 0 0 1 1 0 1 1

Lecture 8 <8> Digital Design and Computer Architecture: ARM® Edition © 2015

Compute Cout for k-bit blocks using generate and propagate signalsSome definitions:– Column i produces a carry out by either generating a carry out or

propagating a carry in to the carry out– Generate (Gi) and propagate (Pi) signals for each column:

• Generate: Column i will generate a carry out if Ai and Bi are both 1.

Gi = Ai Bi• Propagate: Column i will propagate a carry in to the carry out if Ai or Bi is 1.

Pi = Ai + Bi• Carry out: The carry out of column i (Ci) is:

Ci = Ai Bi + (Ai + Bi )Ci-1 = Gi + Pi Ci-1

Carry-Lookahead Adder

Page 9: Lecture 8 - Harvey Mudd Collegepages.hmc.edu/harris/class/e85/lect8.pdf · Digital Design and Computer Architecture: ARM® Edition © 2015 Lecture 8  A B 0 0 0 1 1 0 1 1

Lecture 8 <9> Digital Design and Computer Architecture: ARM® Edition © 2015

Now use column Propagate and Generate signals to compute Block Propagate and Generate signals for k-bit blocks, i.e.:

• Compute if a k-bit group will propagate a carry in (to the block) to the carry out (of the block)

• Compute if a k-bit group will generate a carry out (of the block)

Block Propagate and Generate

Page 10: Lecture 8 - Harvey Mudd Collegepages.hmc.edu/harris/class/e85/lect8.pdf · Digital Design and Computer Architecture: ARM® Edition © 2015 Lecture 8  A B 0 0 0 1 1 0 1 1

Lecture 8 <10> Digital Design and Computer Architecture: ARM® Edition © 2015

• Example: Block propagate and generate signals for 4-bit blocks (P3:0 and G3:0):

P3:0 = P3P2 P1P0

G3:0 = G3 + G2P3 + G1P2P3 + G0P1P2P3

= G3 + P3 (G2 + P2 (G1 + P1G0 )

Block Propagate and Generate Signals

Page 11: Lecture 8 - Harvey Mudd Collegepages.hmc.edu/harris/class/e85/lect8.pdf · Digital Design and Computer Architecture: ARM® Edition © 2015 Lecture 8  A B 0 0 0 1 1 0 1 1

Lecture 8 <11> Digital Design and Computer Architecture: ARM® Edition © 2015

• In general for a block spanning bits i through j,Pi:j = PiPi-1 Pi-2 … Pj

Gi:j = Gi + Pi (Gi-1 + Pi-1 (Gi-2 + Pi-2 … Gj )Ci = Gi:j + Pi:j Cj-1

Block Propagate and Generate Signals

Page 12: Lecture 8 - Harvey Mudd Collegepages.hmc.edu/harris/class/e85/lect8.pdf · Digital Design and Computer Architecture: ARM® Edition © 2015 Lecture 8  A B 0 0 0 1 1 0 1 1

Lecture 8 <12> Digital Design and Computer Architecture: ARM® Edition © 2015

B0

++++

P3:0

G3P3G2P2G1P1G0

P3P2P1P0

G3:0

Cin

Cout

A0

S0

C0

B1 A1

S1

C1

B2 A2

S2

C2

B3 A3

S3

Cin

A3:0B3:0

S3:0

4-bit CLABlock Cin

A7:4B7:4

S7:4

4-bit CLABlock

C3C7

A27:24B27:24

S27:24

4-bit CLABlock

C23

A31:28B31:28

S31:28

4-bit CLABlock

C27Cout

32-bit CLA with 4-bit Blocks

Page 13: Lecture 8 - Harvey Mudd Collegepages.hmc.edu/harris/class/e85/lect8.pdf · Digital Design and Computer Architecture: ARM® Edition © 2015 Lecture 8  A B 0 0 0 1 1 0 1 1

Lecture 8 <13> Digital Design and Computer Architecture: ARM® Edition © 2015

• Step 1: Compute Gi and Pi for all columns • Step 2: Compute G and P for k-bit blocks• Step 3: Cin propagates through each k-bit

propagate/generate logic (meanwhile computing sums)

• Step 4: Compute sum for most significant k-bit block

Carry-Lookahead Addition

Page 14: Lecture 8 - Harvey Mudd Collegepages.hmc.edu/harris/class/e85/lect8.pdf · Digital Design and Computer Architecture: ARM® Edition © 2015 Lecture 8  A B 0 0 0 1 1 0 1 1

Lecture 8 <14> Digital Design and Computer Architecture: ARM® Edition © 2015

• Step 1: Compute Gi and Pi for all columns

Carry-Lookahead Addition

Gi = Ai Bi

Pi = Ai + Bi

Page 15: Lecture 8 - Harvey Mudd Collegepages.hmc.edu/harris/class/e85/lect8.pdf · Digital Design and Computer Architecture: ARM® Edition © 2015 Lecture 8  A B 0 0 0 1 1 0 1 1

Lecture 8 <15> Digital Design and Computer Architecture: ARM® Edition © 2015

• Step 1: Compute Gi and Pi for all columns • Step 2: Compute G and P for k-bit blocks

Carry-Lookahead Addition

P3:0 = P3P2 P1P0

G3:0 = G3 + P3 (G2 + P2 (G1 + P1G0 )

Page 16: Lecture 8 - Harvey Mudd Collegepages.hmc.edu/harris/class/e85/lect8.pdf · Digital Design and Computer Architecture: ARM® Edition © 2015 Lecture 8  A B 0 0 0 1 1 0 1 1

Lecture 8 <16> Digital Design and Computer Architecture: ARM® Edition © 2015

• Step 1: Compute Gi and Pi for all columns • Step 2: Compute G and P for k-bit blocks• Step 3: Cin propagates through each k-bit

propagate/generate logic (meanwhile computing sums)

Carry-Lookahead Addition

A3:0B3:0

S3:0

4-bit CLABlock Cin

A7:4B7:4

S7:4

4-bit CLABlock

C3C7

A27:24B27:24

S27:24

4-bit CLABlock

C23

A31:28B31:28

S31:28

4-bit CLABlock

C27Cout

B0++++

P3:0

G3P3G2P2G1P1G0P3P2P1P0

G3:0

CinCout

A0

S0

C0B1 A1

S1

C1B2 A2

S2

C2B3 A3

S3Cin

B0++++

P3:0

G3P3G2P2G1P1G0P3P2P1P0

G3:0

CinCout

A0

S0

C0B1 A1

S1

C1B2 A2

S2

C2B3 A3

S3Cin

B0++++

P3:0

G3P3G2P2G1P1G0P3P2P1P0

G3:0

CinCout

A0

S0

C0B1 A1

S1

C1B2 A2

S2

C2B3 A3

S3Cin

B0++++

P3:0

G3P3G2P2G1P1G0P3P2P1P0

G3:0

CinCout

A0

S0

C0B1 A1

S1

C1B2 A2

S2

C2B3 A3

S3Cin

Page 17: Lecture 8 - Harvey Mudd Collegepages.hmc.edu/harris/class/e85/lect8.pdf · Digital Design and Computer Architecture: ARM® Edition © 2015 Lecture 8  A B 0 0 0 1 1 0 1 1

Lecture 8 <17> Digital Design and Computer Architecture: ARM® Edition © 2015

• Step 1: Compute Gi and Pi for all columns • Step 2: Compute G and P for k-bit blocks• Step 3: Cin propagates through each k-bit

propagate/generate logic (meanwhile computing sums)

• Step 4: Compute sum for most significant k-bit block

Carry-Lookahead Addition

B0++++

P3:0

G3P3G2P2G1P1G0P3P2P1P0

G3:0

CinCout

A0

S0

C0B1 A1

S1

C1B2 A2

S2

C2B3 A3

S3Cin

B0++++

P3:0

G3P3G2P2G1P1G0P3P2P1P0

G3:0

CinCout

A0

S0

C0B1 A1

S1

C1B2 A2

S2

C2B3 A3

S3Cin

B0++++

P3:0

G3P3G2P2G1P1G0P3P2P1P0

G3:0

CinCout

A0

S0

C0B1 A1

S1

C1B2 A2

S2

C2B3 A3

S3Cin

B0++++

P3:0

G3P3G2P2G1P1G0P3P2P1P0

G3:0

CinCout

A0

S0

C0B1 A1

S1

C1B2 A2

S2

C2B3 A3

S3Cin

Page 18: Lecture 8 - Harvey Mudd Collegepages.hmc.edu/harris/class/e85/lect8.pdf · Digital Design and Computer Architecture: ARM® Edition © 2015 Lecture 8  A B 0 0 0 1 1 0 1 1

Lecture 8 <18> Digital Design and Computer Architecture: ARM® Edition © 2015

For N-bit CLA with k-bit blocks:

tCLA = tpg + tpg_block + (N/k – 1)tAND_OR + ktFA

– tpg : delay to generate all Pi, Gi

– tpg_block : delay to generate all Pi:j, Gi:j

– tAND_OR : delay from Cin to Cout of final AND/OR gate in k-bit CLA block

An N-bit carry-lookahead adder is generally much faster than a ripple-carry adder for N > 16

Carry-Lookahead Adder Delay

Page 19: Lecture 8 - Harvey Mudd Collegepages.hmc.edu/harris/class/e85/lect8.pdf · Digital Design and Computer Architecture: ARM® Edition © 2015 Lecture 8  A B 0 0 0 1 1 0 1 1

Lecture 8 <19> Digital Design and Computer Architecture: ARM® Edition © 2015

• Computes carry in (Ci-1) for each column, then computes sum:

Si = (Ai ^ Bi) ^ Ci-1• Computes G and P for 1-, 2-, 4-, 8-bit blocks, etc.

until all Gi (carry in) known• log2N stages

Prefix Adder

Page 20: Lecture 8 - Harvey Mudd Collegepages.hmc.edu/harris/class/e85/lect8.pdf · Digital Design and Computer Architecture: ARM® Edition © 2015 Lecture 8  A B 0 0 0 1 1 0 1 1

Lecture 8 <20> Digital Design and Computer Architecture: ARM® Edition © 2015

• Carry in either generated in a column or propagated from a previous column.

• Column -1 holds Cin, so G-1 = Cin

• Carry in to column i = carry out of column i-1:

Ci-1 = Gi-1:-1

Gi-1:-1: generate signal spanning columns i-1 to -1• Sum equation:

Si = (Ai ^ Bi) ^ Gi-1:-1

• Goal: Quickly compute G0:-1, G1:-1, G2:-1, G3:-1, G4:-1, G5:-1, … (called prefixes) (= C0, C1, C2, C3, C4, C5, …)

Prefix Adder

Page 21: Lecture 8 - Harvey Mudd Collegepages.hmc.edu/harris/class/e85/lect8.pdf · Digital Design and Computer Architecture: ARM® Edition © 2015 Lecture 8  A B 0 0 0 1 1 0 1 1

Lecture 8 <21> Digital Design and Computer Architecture: ARM® Edition © 2015

• Generate and propagate signals for a block spanning bits i:j

Gi:j = Gi:k + Pi:k Gk-1:j

Pi:j = Pi:kPk-1:j• In words:

– Generate: block i:j will generate a carry if:• upper part (i:k) generates a carry or • upper part (i:k) propagates a carry generated in

lower part (k-1:j)– Propagate: block i:j will propagate a carry if both the

upper and lower parts propagate the carry

Prefix Adder

Page 22: Lecture 8 - Harvey Mudd Collegepages.hmc.edu/harris/class/e85/lect8.pdf · Digital Design and Computer Architecture: ARM® Edition © 2015 Lecture 8  A B 0 0 0 1 1 0 1 1

Lecture 8 <22> Digital Design and Computer Architecture: ARM® Edition © 2015

16-Bit Prefix Adder Schematic

0:-1

-1

2:1

1:-12:-1

012

4:3

3

6:5

5:36:3

456

5:-16:-1 3:-14:-1

8:7

7

10:9

9:710:7

8910

12:11

11

14:13

13:1114:11

121314

13:714:7 11:712:7

9:-110:-1 7:-18:-113:-114:-1 11:-112:-1

15

0123456789101112131415

Gk-1:jPk-1:jGi:kPi:k

Gi:jPi:j

BiAi

Gi:iPi:i

i

i:j

BiAiGi-1:-1

Si

i

Page 23: Lecture 8 - Harvey Mudd Collegepages.hmc.edu/harris/class/e85/lect8.pdf · Digital Design and Computer Architecture: ARM® Edition © 2015 Lecture 8  A B 0 0 0 1 1 0 1 1

Lecture 8 <23> Digital Design and Computer Architecture: ARM® Edition © 2015

tPA = tpg + log2N(tpg_prefix ) + tXOR

tpg: delay to produce Pi, Gi (AND or OR gate)tpg_prefix: delay of black prefix cell (AND-OR gate)

Prefix Adder Delay

Page 24: Lecture 8 - Harvey Mudd Collegepages.hmc.edu/harris/class/e85/lect8.pdf · Digital Design and Computer Architecture: ARM® Edition © 2015 Lecture 8  A B 0 0 0 1 1 0 1 1

Lecture 8 <24> Digital Design and Computer Architecture: ARM® Edition © 2015

Compare delay of: 32-bit ripple-carry, CLA, and prefix adders• CLA has 4-bit blocks• 2-input gate delay = 10 ps; full adder delay = 30 ps

tripple = NtFA = 32(30 ps) = 960 ps

tCLA = tpg + tpg_block + (N/k – 1)tAND_OR + ktFA

= [10 + 60 + (7)20 + 4(30)] ps= 330 ps

tPA = tpg + log2N(tpg_prefix ) + tXOR

= [10 + log232(20) + 10] ps= 120 ps

Adder Delay Comparisons

Page 25: Lecture 8 - Harvey Mudd Collegepages.hmc.edu/harris/class/e85/lect8.pdf · Digital Design and Computer Architecture: ARM® Edition © 2015 Lecture 8  A B 0 0 0 1 1 0 1 1

Lecture 8 <25> Digital Design and Computer Architecture: ARM® Edition © 2015

Symbol Implementation

+

A B

-

YY

A B

NN

N

N N

N

N

Subtracter

Page 26: Lecture 8 - Harvey Mudd Collegepages.hmc.edu/harris/class/e85/lect8.pdf · Digital Design and Computer Architecture: ARM® Edition © 2015 Lecture 8  A B 0 0 0 1 1 0 1 1

Lecture 8 <26> Digital Design and Computer Architecture: ARM® Edition © 2015

Symbol ImplementationA3B3A2B2A1B1A0B0

Equal=

A B

Equal

44

Comparator: Equality

Page 27: Lecture 8 - Harvey Mudd Collegepages.hmc.edu/harris/class/e85/lect8.pdf · Digital Design and Computer Architecture: ARM® Edition © 2015 Lecture 8  A B 0 0 0 1 1 0 1 1

Lecture 8 <27> Digital Design and Computer Architecture: ARM® Edition © 2015 5-<27>

A < B

-

BA

[N-1]

N

N N

Comparator: Less Than

Page 28: Lecture 8 - Harvey Mudd Collegepages.hmc.edu/harris/class/e85/lect8.pdf · Digital Design and Computer Architecture: ARM® Edition © 2015 Lecture 8  A B 0 0 0 1 1 0 1 1

Lecture 8 <28> Digital Design and Computer Architecture: ARM® Edition © 2015

ALU should perform:• Addition• Subtraction• AND• OR

ALU: Arithmetic Logic Unit

Page 29: Lecture 8 - Harvey Mudd Collegepages.hmc.edu/harris/class/e85/lect8.pdf · Digital Design and Computer Architecture: ARM® Edition © 2015 Lecture 8  A B 0 0 0 1 1 0 1 1

Lecture 8 <29> Digital Design and Computer Architecture: ARM® Edition © 2015

ALU: Arithmetic Logic Unit

ALUControl1:0 Function00 Add01 Subtract10 AND11 OR

Example: Perform A + BALUControl = 00Result = A + B

Page 30: Lecture 8 - Harvey Mudd Collegepages.hmc.edu/harris/class/e85/lect8.pdf · Digital Design and Computer Architecture: ARM® Edition © 2015 Lecture 8  A B 0 0 0 1 1 0 1 1

Lecture 8 <30> Digital Design and Computer Architecture: ARM® Edition © 2015

ALU: Arithmetic Logic UnitALUControl1:0 Function00 Add01 Subtract10 AND11 OR

Example: Perform A OR B

Page 31: Lecture 8 - Harvey Mudd Collegepages.hmc.edu/harris/class/e85/lect8.pdf · Digital Design and Computer Architecture: ARM® Edition © 2015 Lecture 8  A B 0 0 0 1 1 0 1 1

Lecture 8 <31> Digital Design and Computer Architecture: ARM® Edition © 2015

ALU: Arithmetic Logic UnitALUControl1:0 Function00 Add01 Subtract10 AND11 OR

Example: Perform A OR BALUControl1:0 = 11Mux selects output of OR gate as Result, so

Result = A OR B

Page 32: Lecture 8 - Harvey Mudd Collegepages.hmc.edu/harris/class/e85/lect8.pdf · Digital Design and Computer Architecture: ARM® Edition © 2015 Lecture 8  A B 0 0 0 1 1 0 1 1

Lecture 8 <32> Digital Design and Computer Architecture: ARM® Edition © 2015

ALU: Arithmetic Logic UnitALUControl1:0 Function00 Add01 Subtract10 AND11 OR

Example: Perform A + B

Page 33: Lecture 8 - Harvey Mudd Collegepages.hmc.edu/harris/class/e85/lect8.pdf · Digital Design and Computer Architecture: ARM® Edition © 2015 Lecture 8  A B 0 0 0 1 1 0 1 1

Lecture 8 <33> Digital Design and Computer Architecture: ARM® Edition © 2015

ALU: Arithmetic Logic UnitALUControl1:0 Function00 Add01 Subtract10 AND11 OR

Example: Perform A + BALUControl1:0 = 00ALUControl0 = 0, so:

Cin to adder = 02nd input to adder is B

Mux selects Sum as Result, soResult = A + B

Page 34: Lecture 8 - Harvey Mudd Collegepages.hmc.edu/harris/class/e85/lect8.pdf · Digital Design and Computer Architecture: ARM® Edition © 2015 Lecture 8  A B 0 0 0 1 1 0 1 1

Lecture 8 <34> Digital Design and Computer Architecture: ARM® Edition © 2015

Flag DescriptionN Result is NegativeZ Result is ZeroC Adder produces Carry outV Adder oVerflowed

ALU with Status Flags

Page 35: Lecture 8 - Harvey Mudd Collegepages.hmc.edu/harris/class/e85/lect8.pdf · Digital Design and Computer Architecture: ARM® Edition © 2015 Lecture 8  A B 0 0 0 1 1 0 1 1

Lecture 8 <35> Digital Design and Computer Architecture: ARM® Edition © 2015

ALU with Status Flags

Page 36: Lecture 8 - Harvey Mudd Collegepages.hmc.edu/harris/class/e85/lect8.pdf · Digital Design and Computer Architecture: ARM® Edition © 2015 Lecture 8  A B 0 0 0 1 1 0 1 1

Lecture 8 <36> Digital Design and Computer Architecture: ARM® Edition © 2015

ALU with Status Flags: NegativeN = 1 if:Result is negativeSo, N is connected to most significant bit of Result

Page 37: Lecture 8 - Harvey Mudd Collegepages.hmc.edu/harris/class/e85/lect8.pdf · Digital Design and Computer Architecture: ARM® Edition © 2015 Lecture 8  A B 0 0 0 1 1 0 1 1

Lecture 8 <37> Digital Design and Computer Architecture: ARM® Edition © 2015

ALU with Status Flags: ZeroZ = 1 if:all of the bits of Resultare 0

Page 38: Lecture 8 - Harvey Mudd Collegepages.hmc.edu/harris/class/e85/lect8.pdf · Digital Design and Computer Architecture: ARM® Edition © 2015 Lecture 8  A B 0 0 0 1 1 0 1 1

Lecture 8 <38> Digital Design and Computer Architecture: ARM® Edition © 2015

ALU with Status Flags: CarryC = 1 if:Cout of Adder is 1

ANDALU is adding or subtracting (ALUControlis 00 or 01)

Page 39: Lecture 8 - Harvey Mudd Collegepages.hmc.edu/harris/class/e85/lect8.pdf · Digital Design and Computer Architecture: ARM® Edition © 2015 Lecture 8  A B 0 0 0 1 1 0 1 1

Lecture 8 <39> Digital Design and Computer Architecture: ARM® Edition © 2015

ALU with Status Flags: oVerflowV = 1 if:The addition of 2 same-signed numbers produces a result with the opposite sign

Page 40: Lecture 8 - Harvey Mudd Collegepages.hmc.edu/harris/class/e85/lect8.pdf · Digital Design and Computer Architecture: ARM® Edition © 2015 Lecture 8  A B 0 0 0 1 1 0 1 1

Lecture 8 <40> Digital Design and Computer Architecture: ARM® Edition © 2015

ALU with Status Flags: oVerflowV = 1 if:ALU is performing addition or subtraction(ALUControl1 = 0)

Page 41: Lecture 8 - Harvey Mudd Collegepages.hmc.edu/harris/class/e85/lect8.pdf · Digital Design and Computer Architecture: ARM® Edition © 2015 Lecture 8  A B 0 0 0 1 1 0 1 1

Lecture 8 <41> Digital Design and Computer Architecture: ARM® Edition © 2015

ALU with Status Flags: oVerflowV = 1 if:ALU is performing addition or subtraction(ALUControl1 = 0)ANDA and Sum have opposite signs

Page 42: Lecture 8 - Harvey Mudd Collegepages.hmc.edu/harris/class/e85/lect8.pdf · Digital Design and Computer Architecture: ARM® Edition © 2015 Lecture 8  A B 0 0 0 1 1 0 1 1

Lecture 8 <42> Digital Design and Computer Architecture: ARM® Edition © 2015

ALU with Status Flags: oVerflowV = 1 if:ALU is performing addition or subtraction(ALUControl1 = 0)ANDA and Sum have opposite signsANDA and B have same signs upon addition ORA and B have different signs upon subtraction

Page 43: Lecture 8 - Harvey Mudd Collegepages.hmc.edu/harris/class/e85/lect8.pdf · Digital Design and Computer Architecture: ARM® Edition © 2015 Lecture 8  A B 0 0 0 1 1 0 1 1

Lecture 8 <43> Digital Design and Computer Architecture: ARM® Edition © 2015

ALU with Status Flags: oVerflowV = 1 if:ALU is performing addition or subtraction(ALUControl1 = 0)ANDA and Sum have opposite signsANDA and B have same signs upon addition (ALUControl0 = 0) OR A and B have different signs upon subtraction(ALUControl0 = 1)