64
20.02.20 07:39 CSCI 150 Introduction to Digital and Computer System Design Lecture 3: Combinational Logic Design VI Jetic Gū 2020 Winter Semester (S1)

#04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

20.02.20 07:39CSCI 150 Introduction to Digital and Computer

System Design Lecture 3: Combinational Logic Design VI

Jetic Gū2020 Winter Semester (S1)

Page 2: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

Overview• Focus: Arithmetic Functional Blocks

• Architecture: Combinatory Logical Circuits

• Textbook v4: Ch4 4.3, 4.4, 4.7; v5: Ch2 2.9, Ch3 3.10, 3.11

• Core Ideas:

1. Subtraction II

2. Subtraction III

3. VHDL

Page 3: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

Unsigned Binary Subtraction I

Summary

P0 Review

Review

Page 4: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

Unsigned 1-bit Binary Subtraction

• Implementation using 3-to-8 Decoder

• �

• �

B = Σm(1,2,3,7)

D = Σm(1,2,4,7)

Review

P1 Subtraction

XYZ

1-Bit Binary Subtractor

B

D

BD

Page 5: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

Unsigned BinarySubtraction

Review

P1 Subtraction

0011010110

−1001100011

InputOutput

0101101001100011

0Minuend �X0:n−1

Borrows

Subtrahend �Y0:n−1

Difference �D0:n−1

B Z

Technology• 1 bit Unsigned Subtractor

X0Y0Z

1-Bit Binary Subtractor

B

D D0

X1Y1

1-Bit Binary Subtractor

B

D D1

Page 6: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

Unsigned Binary Subtraction II

Summary

P1 Subtraction

� when �X − Y Y > X

Page 7: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

What we have so far

• Binary Adder

• Binary Subtractor (� , � )X − Y X ≥ Y

Review

P1 Subtraction

Page 8: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

Unsigned Binary Subtraction

• We learned to perform subtraction, by subtracting the smaller number from the greater number

• What if it’s the opposite? i.e. � ?X < Y, F = X − Y

Concep

t

P1 Subtraction

X > Y, F = X − Y

Page 9: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

Unsigned Binary Subtraction

Concep

t

P1 Subtraction

1100010011

−0011001101

Minuend

Borrows

Subtrahend

Difference

0011000110

−1001110011

Minuend

Borrows

Subtrahend

Difference

Page 10: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

Unsigned Binary Subtraction

Concep

t

P1 Subtraction

1100010011

−0011001101

Minuend

Borrows

Subtrahend

Difference

0 0011000110

−1001110011

Minuend

Borrows

Subtrahend

Difference

1

Page 11: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

Unsigned Binary Subtraction

Concep

t

P1 Subtraction

1100010011

−0011001101

Minuend

Borrows

Subtrahend

Difference

0 0011000110

−1001110011

Minuend

Borrows

Subtrahend

Difference

1

Page 12: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

Unsigned Binary Subtraction

Concep

t

P1 Subtraction

1100010011

−0011001101

Minuend

Borrows

Subtrahend

Difference

0 0011000110

−1001110011

Minuend

Borrows

Subtrahend

Difference

1

This is correct

Page 13: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

Unsigned Binary Subtraction

Concep

t

P1 Subtraction

1100010011

−0011001101

Minuend

Borrows

Subtrahend

Difference

0 0011000110

−1001110011

Minuend

Borrows

Subtrahend

Difference

1

This is correct This is incorrect

Page 14: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

• Standard subtraction module works if the Minuend is bigger than the Subtrahend

Unsigned Binary Subtraction

Concep

t

P1 Subtraction

1100010011

−0011001101

Minuend

Borrows

Subtrahend

Difference

0 0011000110

−1001110011

Minuend

Borrows

Subtrahend

Difference

1

This is correct This is incorrect

Page 15: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

• Standard subtraction module works if the Minuend is bigger than the Subtrahend

Unsigned Binary Subtraction

Concep

t

P1 Subtraction

0011000110

−1001110011

Minuend

Borrows

Subtrahend

Difference

1

This is incorrect

Y

X

DCorrected D′� −01101

(2’s compliment)

Page 16: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

• Standard subtraction module works if the Minuend is bigger than the Subtrahend

Unsigned Binary Subtraction

Concep

t

P1 Subtraction

0011000110

−1001110011

Minuend

Borrows

Subtrahend

Difference

1

This is incorrect

• Incorrect output D= 2n + X − Y

Y

X

DCorrected D′� −01101

(2’s compliment)

Page 17: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

• Standard subtraction module works if the Minuend is bigger than the Subtrahend

Unsigned Binary Subtraction

Concep

t

P1 Subtraction

0011000110

−1001110011

Minuend

Borrows

Subtrahend

Difference

1

This is incorrect

• Incorrect output D= 2n + X − Y

• Correct output D′�

= −(Y − X)= −(2n − D)= −(D + 1)

Y

X

DCorrected D′� −01101

(2’s compliment)

Page 18: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

• Given binary unsigned integer of � bits � , its 2s compliment�

• Proof

• Biggest number represented in � bit: �

• �

• Implementation

• Inversion and plus 1, easily doable as complementer

n D2n − D = D + 1

n (11...1)2 = 2n − 1

2n − D = [(11...1)2 + 1] − D = (11...1)2 − D + 1 = D + 1

2s compliment

Concep

t

P1 Subtraction

Page 19: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

Subtraction

Example

P1 Subtraction

Page 20: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

Subtraction

1. Compute 20-15=5 using 6-bit binary

Example

P1 Subtraction

Page 21: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

Subtraction

1. Compute 20-15=5 using 6-bit binary

• , 20 = (010100)2 15 = (001111)2

Example

P1 Subtraction

Page 22: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

Subtraction

1. Compute 20-15=5 using 6-bit binary

• , 20 = (010100)2 15 = (001111)2

Example

P1 Subtraction

011110010100

−001111000101

0Borrows

Page 23: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

Subtraction

1. Compute 20-15=5 using 6-bit binary

• , 20 = (010100)2 15 = (001111)2

2. Compute 15-20=-5 using 6-bit binary and 2s complement

Example

P1 Subtraction

011110010100

−001111000101

0Borrows

Page 24: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

Subtraction

1. Compute 20-15=5 using 6-bit binary

• , 20 = (010100)2 15 = (001111)2

2. Compute 15-20=-5 using 6-bit binary and 2s complement

Example

P1 Subtraction

011110010100

−001111000101

0Borrows

Page 25: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

Subtraction

1. Compute 20-15=5 using 6-bit binary

• � , �

2. Compute 15-20=-5 using 6-bit binary and 2s complement

• Correction: � 2s complement: �

20 = (010100)2 15 = (001111)2

(111011)2 (000101)2

Example

P1 Subtraction

100000001111

−010100111011

1Borrows

000101

Page 26: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

Subtraction

1. Compute 20-15=5 using 6-bit binary

• � , �

2. Compute 15-20=-5 using 6-bit binary and 2s complement

20 = (010100)2 15 = (001111)2

Example

P1 Subtraction

100000001111

−010100111011

1Borrows

Page 27: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

Subtraction1. Compute 7-15=-8 using 6-bit binary and 2s complement

Example

P1 Subtraction

Page 28: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

Full Unsigned Subtraction

• Solution 1

• Compare the Minuend and Subtrahend, switch places if the Subtrahend is greater, then add negative sign

• Solution 2

• Use 2s compliment

Concep

t

P1 Subtraction

Page 29: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

Full Unsigned Subtraction

Concep

t

P1 Subtraction

ARITHMETIC FUNCTIONS AND HDLS

As we will see, this circuit is more complex than necessary. To reduce theamount of hardware, we would like to share logic between the adder and the sub-tractor. This can also be done using the notion of the complement. So before con-sidering the combined adder–subtractor further, we will take a more careful lookat complements.

Complements

There are two types of complements for each base-r system: the radix comple-ment, which we saw earlier for base 2, and the diminished radix complement. Thefirst is referred to as the r’s complement and the second as the (r ! 1)’s comple-ment. When the value of the base r is substituted in the names, the two types arereferred to as the 2s and 1s complements for binary numbers and the 10s and 9scomplements for decimal numbers, respectively. Since our interest for thepresent is in binary numbers and operations, we will deal with only 1s and 2scomplements.

Given a number N in binary having n digits, the 1s complement of N isdefined as (2n ! 1) ! N. 2n is represented by a binary number that consists of a1 followed by n 0s. 2n ! 1 is a binary number represented by n 1s. For example,if n " 4, we have 24 " (10000)2 and 24 ! 1 " (1111)2 . Thus, the 1s complementof a binary number is obtained by subtracting each digit from 1. When subtract-ing binary digits from 1, we can have either 1 ! 0 " 1 or 1 ! 1 " 0, which

A B

Binary adder Binary subtractor

Selective2's complementer

Quadruple 2-to-1multiplexer

Result

Borrow

Complement

S0 1Subtract/Add

FIGURE 6Block Diagram of Binary Adder–Subtractor

���

X Y

Output

Page 30: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

ARITHMETIC FUNCTIONS AND HDLS

As we will see, this circuit is more complex than necessary. To reduce theamount of hardware, we would like to share logic between the adder and the sub-tractor. This can also be done using the notion of the complement. So before con-sidering the combined adder–subtractor further, we will take a more careful lookat complements.

Complements

There are two types of complements for each base-r system: the radix comple-ment, which we saw earlier for base 2, and the diminished radix complement. Thefirst is referred to as the r’s complement and the second as the (r ! 1)’s comple-ment. When the value of the base r is substituted in the names, the two types arereferred to as the 2s and 1s complements for binary numbers and the 10s and 9scomplements for decimal numbers, respectively. Since our interest for thepresent is in binary numbers and operations, we will deal with only 1s and 2scomplements.

Given a number N in binary having n digits, the 1s complement of N isdefined as (2n ! 1) ! N. 2n is represented by a binary number that consists of a1 followed by n 0s. 2n ! 1 is a binary number represented by n 1s. For example,if n " 4, we have 24 " (10000)2 and 24 ! 1 " (1111)2 . Thus, the 1s complementof a binary number is obtained by subtracting each digit from 1. When subtract-ing binary digits from 1, we can have either 1 ! 0 " 1 or 1 ! 1 " 0, which

A B

Binary adder Binary subtractor

Selective2's complementer

Quadruple 2-to-1multiplexer

Result

Borrow

Complement

S0 1Subtract/Add

FIGURE 6Block Diagram of Binary Adder–Subtractor

���

Adder-Subtractor

Concep

t

P1 Subtraction ARITHMETIC FUNCTIONS AND HDLS

As we will see, this circuit is more complex than necessary. To reduce theamount of hardware, we would like to share logic between the adder and the sub-tractor. This can also be done using the notion of the complement. So before con-sidering the combined adder–subtractor further, we will take a more careful lookat complements.

Complements

There are two types of complements for each base-r system: the radix comple-ment, which we saw earlier for base 2, and the diminished radix complement. Thefirst is referred to as the r’s complement and the second as the (r ! 1)’s comple-ment. When the value of the base r is substituted in the names, the two types arereferred to as the 2s and 1s complements for binary numbers and the 10s and 9scomplements for decimal numbers, respectively. Since our interest for thepresent is in binary numbers and operations, we will deal with only 1s and 2scomplements.

Given a number N in binary having n digits, the 1s complement of N isdefined as (2n ! 1) ! N. 2n is represented by a binary number that consists of a1 followed by n 0s. 2n ! 1 is a binary number represented by n 1s. For example,if n " 4, we have 24 " (10000)2 and 24 ! 1 " (1111)2 . Thus, the 1s complementof a binary number is obtained by subtracting each digit from 1. When subtract-ing binary digits from 1, we can have either 1 ! 0 " 1 or 1 ! 1 " 0, which

A B

Binary adder Binary subtractor

Selective2's complementer

Quadruple 2-to-1multiplexer

Result

Borrow

Complement

S0 1Subtract/Add

FIGURE 6Block Diagram of Binary Adder–Subtractor

���

X Y

Output

Page 31: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

Unsigned Binary Subtraction III

Summary

P2 Subtraction

What do you mean we can do subtraction using an adder?

Page 32: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

2s compliment

Concep

t

P2 Subtraction

2n − D = D + 1

Page 33: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

Subtraction using 2s Complement

Concep

t

P2 Subtraction

• Input: � and �

• � : 2s complement � ( � )

• �

• Since � , and we only output � -bits, it can be discarded

X Y

Y Y′� = Y + 1 Y + 1 = 2n − Y

X − Y = X + (2n − Y) − 2n = X + Y′� − 2n

2n = (10...0)2 n

Page 34: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

Subtraction using 2s Complement

• 84 - 67 (10bit)

Example

P2 Subtraction

Page 35: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

Subtraction using 2s Complement

• 84 - 67 (10bit)

Example

P2 Subtraction

X = 0001010100

Page 36: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

Subtraction using 2s Complement

• 84 - 67 (10bit)

Example

P2 Subtraction

X = 0001010100 Y = 0001000011

Page 37: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

Subtraction using 2s Complement

• 84 - 67 (10bit)

Example

P2 Subtraction

X = 0001010100 Y = 0001000011 Y′� = 11101111012s complement

Page 38: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

Subtraction using 2s Complement

• 84 - 67 (10bit)

Example

P2 Subtraction

X = 0001010100 Y = 0001000011 Y′� = 1110111101

X + Y′ � = 100000100012s complement

Page 39: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

Subtraction using 2s Complement

• 84 - 67 (10bit)

Example

P2 Subtraction

X = 0001010100 Y = 0001000011 Y′� = 1110111101

X + Y′ � = 10000010001 X + Y′ � − 210 = 0000010001

2s complement

discard carry

Page 40: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

Subtraction using 2s Complement

• 84 - 67 (10bit)

Example

P2 Subtraction

X = 0001010100 Y = 0001000011 Y′� = 1110111101

X + Y′ � = 10000010001 X + Y′ � − 210 = 0000010001

(84 − 67)10 = 1710 = 10001 = 0000010001

2s complement

discard carry

verify

Page 41: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

Subtraction using 2s Complement

• 84 - 67 (10bit)

Example

P2 Subtraction

X = 0001010100 Y = 0001000011 Y′� = 1110111101

X + Y′ � = 10000010001 X + Y′ � − 210 = 0000010001

(84 − 67)10 = 1710 = 10001 = 0000010001

2s complement

discard carry

verify

correct!

Page 42: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

Adder-Subtractor Unit

Concep

t

P2 Subtraction

Page 43: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

Adder-Subtractor Unit

Concep

t

P2 Subtraction

1. Adder

X0:n−1Y0:n−1

Z

! -Bit Binary Adder

nS

C

S0:n−1

C

Page 44: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

Adder-Subtractor Unit

Concep

t

P2 Subtraction

1. Adder

2. Complementer (Inverting and add 1)

X0:n−1Y0:n−1

Z

! -Bit Binary Adder

nS

C

S0:n−1

C

Page 45: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

Adder-Subtractor Unit

Concep

t

P2 Subtraction

1. Adder

2. Complementer (Inverting and add 1)

• Or just inverting, and then plus one

X0:n−1Y0:n−1

Z

! -Bit Binary Adder

nS

C

S0:n−1

C

Page 46: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

Adder-Subtractor Unit

Concep

t

P2 Subtraction

1. Adder

2. Complementer (Inverting and add 1)

• Or just inverting, and then plus one

• Addition: X + Y X0:n−1Y0:n−1

Z

! -Bit Binary Adder

nS

C

S0:n−1

C

Page 47: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

Adder-Subtractor Unit

Concep

t

P2 Subtraction

1. Adder

2. Complementer (Inverting and add 1)

• Or just inverting, and then plus one

• Addition: X + Y

• Subtraction: X − Y = X + Y + 1 − 2n

X0:n−1Y0:n−1

Z

! -Bit Binary Adder

nS

C

S0:n−1

C

Page 48: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

Adder-Subtractor Unit

Concep

t

P2 Subtraction

1. Adder

2. Complementer (Inverting and add 1)

• Or just inverting, and then plus one

• Addition: X + Y

• Subtraction: X − Y = X + Y + 1 − 2n

• We are using -bit adder, can be disregardedn 2n

X0:n−1Y0:n−1

Z

! -Bit Binary Adder

nS

C

S0:n−1

C

Page 49: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

Adder-Subtractor Unit

Concep

t

P2 Subtraction

1. Adder

2. Complementer (Inverting and add 1)

• Or just inverting, and then plus one

• Addition: X + Y

• Subtraction: X − Y = X + Y + 1 − 2n

• We are using -bit adder, can be disregardedn 2n

• The plus 1 here can be input to the adderZ

X0:n−1Y0:n−1

Z

! -Bit Binary Adder

nS

C

S0:n−1

C

Page 50: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

Adder-Subtractor Unit

Concep

t

P2 Subtraction

ARITHMETIC FUNCTIONS AND HDLS

adder interconnected to form an adder–subtractor. We have used 2s complement,since it is most prevalent in modern systems. The 2s complement can be obtainedby taking the 1s complement and adding 1 to the least significant bit. The 1s com-plement can be implemented easily with inverter circuits, and we can add 1 to thesum by making the input carry of the parallel adder equal to 1. Thus, by using 1scomplement and an unused adder input, the 2s complement is obtained inexpen-sively. In 2s complement subtraction, as the correction step after adding, we com-plement the result and append a minus sign if an end carry does not occur. Thecorrection operation is performed by using either the adder–subtractor a secondtime with M ! 0 or a selective complementer as in Figure 6.

The circuit for subtracting A " B consists of a parallel adder as shown inFigure 5, with inverters placed between each B terminal and the correspondingfull-adder input. The input carry C0 must be equal to 1. The operation that is per-formed becomes A plus the 1s complement of B plus 1. This is equal to A plus the2s complement of B. For unsigned numbers, it gives A " B if or the 2scomplement of B " A if .

The addition and subtraction operations can be combined into one circuitwith one common binary adder. This is done by including an exclusive-OR gatewith each full adder. A 4-bit adder–subtractor circuit is shown in Figure 7. Input Scontrols the operation. When S ! 0 the circuit is an adder, and when S ! 1 the cir-cuit becomes a subtractor. Each exclusive-OR gate receives input S and one of theinputs of B, Bi. When S ! 0, we have Bi ⊕ 0. If the full adders receive the value ofB, and the input carry is 0, the circuit performs A plus B. When S ! 1, we have Bi ⊕1 = and C0 ! 1. In this case, the circuit performs the operation A plus the 2scomplement of B.

FA FA FA FA

S

B3

C3

S2 S1 S0S3C4

C2 C1 C0

A3 B2 A2 B1 A1 B0 A0

FIGURE 7Adder–Subtractor Circuit

A B#A B$

Bi

���

Add/Subtract

Z

X0Y0X1Y1X2Y2X3Y3

Page 51: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

Adder Subtractor Units (Unsigned)

• Binary Adder

• Binary Subtractor

• Binary Adder-Subtractor Unit, using Adder, Subtractor, Complementer and Multiplexer

• Binary Adder-Subtractor Unit using Adder and XOR

Review

P0-2 Adder-Subtractor

Page 52: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

Excercises

Summary

P3 Exercises

2s ComplementSubtraction using 2s Complement

Page 53: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

Subtraction

Exerci

se

P1 Subtraction

Page 54: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

Subtraction

• Compute 10-7 using 4-bit binary using Adder and 2s complement

Exerci

se

P1 Subtraction

Page 55: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

Subtraction

Exerci

se

P1 Subtraction

Page 56: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

Subtraction

• Compute 24-17 using 8-bit binary using Adder and 2s complement

Exerci

se

P1 Subtraction

Page 57: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

Hardware Description Language

Summary

P4 VHDL

VHDL (VHSIC-HDL): Very High Speed Integrated Circuit Hardware Description Language

Page 58: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

Previous: 1-bit Half Adder

• Create a new component in VHDL called HalfAdder1

• Input: X, Y

• Output: S, C

• Don’t use AFTER

Practic

e

P4 VHDL

158 CHAPTER 3 / COMBINATIONAL LOGIC DESIGN

The half adder can be implemented with one exclusive-OR gate and one AND gate, as shown in Figure 3-40.

Full Adder

A full adder is a combinational circuit that forms the arithmetic sum of three input bits. Besides the three inputs, it has two outputs. Two of the input variables, denoted by X and Y, represent the two significant bits to be added. The third input, Z, rep-resents the carry from the previous lower significant position. Two outputs are neces-sary because the arithmetic sum of three bits ranges in value from 0 to 3, and binary 2 and 3 need two digits for their representation. Again, the two outputs are designat-ed by the symbols S for “sum” and C for “carry”; the binary variable S gives the value of the bit of the sum, and the binary variable C gives the output carry. The truth table of the full adder is listed in Table 3-12. The values for the outputs are determined from the arithmetic sum of the three input bits. When all the input bits are 0, the out-puts are 0. The S output is equal to 1 when only one input is equal to 1 or when all three inputs are equal to 1. The C output is a carry of 1 if two or three inputs are equal to 1. The maps for the two outputs of the full adder are shown in Figure 3-41. The simplified sum-of-product functions for the two outputs are

S = X YZ + XYZ + XY Z + XYZ

C = XY + XZ + YZ

The two-level implementation requires seven AND gates and two OR gates. However, the map for output S is recognized as an odd function, as discussed in

XY

S

C

FIGURE 3-40Logic Diagram of Half Adder

TABLE 3-12Truth Table of Full Adder

Inputs Outputs

X Y Z C S

0 0 0 0 00 0 1 0 10 1 0 0 10 1 1 1 01 0 0 0 11 0 1 1 01 1 0 1 01 1 1 1 1

M03_MANO0637_05_SE_C03.indd 158 23/01/15 1:51 PM

Page 59: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

Previous: 1-bit Half Adder

architecture arch1 of HalfAdder is

begin

S <= X XOR Y;

C <= X AND Y;

end arch1;

Practic

e

P4 VHDL

158 CHAPTER 3 / COMBINATIONAL LOGIC DESIGN

The half adder can be implemented with one exclusive-OR gate and one AND gate, as shown in Figure 3-40.

Full Adder

A full adder is a combinational circuit that forms the arithmetic sum of three input bits. Besides the three inputs, it has two outputs. Two of the input variables, denoted by X and Y, represent the two significant bits to be added. The third input, Z, rep-resents the carry from the previous lower significant position. Two outputs are neces-sary because the arithmetic sum of three bits ranges in value from 0 to 3, and binary 2 and 3 need two digits for their representation. Again, the two outputs are designat-ed by the symbols S for “sum” and C for “carry”; the binary variable S gives the value of the bit of the sum, and the binary variable C gives the output carry. The truth table of the full adder is listed in Table 3-12. The values for the outputs are determined from the arithmetic sum of the three input bits. When all the input bits are 0, the out-puts are 0. The S output is equal to 1 when only one input is equal to 1 or when all three inputs are equal to 1. The C output is a carry of 1 if two or three inputs are equal to 1. The maps for the two outputs of the full adder are shown in Figure 3-41. The simplified sum-of-product functions for the two outputs are

S = X YZ + XYZ + XY Z + XYZ

C = XY + XZ + YZ

The two-level implementation requires seven AND gates and two OR gates. However, the map for output S is recognized as an odd function, as discussed in

XY

S

C

FIGURE 3-40Logic Diagram of Half Adder

TABLE 3-12Truth Table of Full Adder

Inputs Outputs

X Y Z C S

0 0 0 0 00 0 1 0 10 1 0 0 10 1 1 1 01 0 0 0 11 0 1 1 01 1 0 1 01 1 1 1 1

M03_MANO0637_05_SE_C03.indd 158 23/01/15 1:51 PM

Page 60: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

Today’s Tasks

Exerci

se

P4 VHDL

Page 61: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

Today’s Tasks

• 1-bit Half Adder

Exerci

se

P4 VHDL

Page 62: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

Today’s Tasks

• 1-bit Half Adder

• 1-bit Full Adder using Schema Diagram (Logic Circuit Diagram)

Exerci

se

P4 VHDL

Page 63: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

Today’s Tasks

• 1-bit Half Adder

• 1-bit Full Adder using Schema Diagram (Logic Circuit Diagram)

• 4-bit Full Adder using Schema Diagram (Logic Circuit Diagram)

Exerci

se

P4 VHDL

Page 64: #04-2020-1000-115 Lecture3 Combinational Logic Design VII · 2020-02-20 · Subtraction 11000 10011 −00110 01101 Minuend Borrows Subtrahend Difference 00110 00110 −10011 10011

Today’s Tasks

• 1-bit Half Adder

• 1-bit Full Adder using Schema Diagram (Logic Circuit Diagram)

• 4-bit Full Adder using Schema Diagram (Logic Circuit Diagram)

• 4-bit Adder-Subtractor using Schema Diagram (Logic Circuit Diagram)

Exerci

se

P4 VHDL