ece 550d - all facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ece 550d...

62
ECE 550D Fundamentals of Computer Systems and Engineering Fall 2017 Combinational Logic Prof. John Board Duke University Slides are derived from work by Profs. Tyler Bletsch and Andrew Hilton (Duke)

Upload: trannhi

Post on 25-May-2018

221 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

ECE 550DFundamentals of Computer Systems and Engineering

Fall 2017

Combinational Logic

Prof. John BoardDuke University

Slides are derived from work byProfs. Tyler Bletsch and Andrew Hilton (Duke)

Page 2: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

2

Last time….

• Who can remind us what we talked about last time?• Electric circuit basics

• Vcc = 1• Ground = 0

• Transistors• PMOS• NMOS

• Gates• Complementary PMOS + NMOS• Output is logical function of inputs

Page 3: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

3

ab

AND(a,b) a

bOR(a,b)

XOR(a,b)a

b

NAND(a,b)a

b

a

bNOR(a,b) XNOR(a,b)a

b

a NOT(a)

Boolean Gates

• Saw these gates

Page 4: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

4

(!A & !C)|(A & C)

equivalently A’C’ + AC

and

Boolean Functions, Gates and Circuits

• Circuits are made from a network of gates.

A

C

Out

�̅�𝐶̅ + 𝐴𝐶

Page 5: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

5

A few more words about gates

• Gates have inputs and outputs• If you try to hook up two outputs, get short circuit (for some inputs)

(Think of the transistors each gate represents)

• If you don’t hook up an input, it behaves kind of randomly – “floating input”

(also not good, but not set-your-chip-on-fire bad)

ab

cd

BAD!

ab

cd

OK!

Page 6: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

6

Introducing the Multiplexer (“mux”)

Input A Input B

Output

Selector(S)

“B”“A”

Page 7: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

7

Introducing the Multiplexer (“mux”)

mux

11 0

0

Input A

Selector (S)

Input B

Output

“A”

Page 8: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

8

Introducing the Multiplexer (“mux”)

mux

00

1Selector (S)

Input B

Output

“B”

1Input A

Page 9: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

9

Introducing the Multiplexer (“mux”)

mux

11

1Selector (S)

Input B

Output

“B”

1Input A

Page 10: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

10

Let’s Make a Useful Circuit

• Pick between 2 inputs (called 2-to-1 MUX)• Short for multiplexor

• What might we do first?• Make a truth table?

• S is selector:• S=0, pick A• S=1, pick B

• Next: how to get formula?Sum-of-products

A B S Output0 0 0 00 0 1 00 1 0 00 1 1 11 0 0 11 0 1 01 1 0 11 1 1 1

Page 11: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

11

Sum of Products

• Find the rows where the output is 1• Write a formula that exactly specifies each row• OR these all together

• Possible ways to get 1.

!A & B & S

A & !B & !S

A & B & !S

A & B & S

A B S Output0 0 0 00 0 1 00 1 0 00 1 1 11 0 0 11 0 1 01 1 0 11 1 1 1

Page 12: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

12

Let’s Make a Useful Circuit

• Sum-of-products (SOP): always correct, straightforward(!A & B & S) |

(A & !B & !S) |(A & B & !S ) | (A & B & S)

• This is long, though.• Translates to lots of large gates• 4 3-in AND and 1 4-in OR

Need to simplify (if we can)

A B S Output0 0 0 00 0 1 00 1 0 00 1 1 11 0 0 11 0 1 01 1 0 11 1 1 1

Page 13: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

13

Simplifying The Formula

• Simplifying this formula:(!A & B & S) | (A & !B & !S) |

(A & B & !S ) | (A & B & S)

B doesn’t matter

Page 14: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

14

Simplifying The Formula

• Simplifying this formula:(!A & B & S) | (A & !S) |

(A & B & S)A doesn’t matter

Page 15: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

15

Simplifying The Formula

• Simplifying this formula:

(A & !S) |

(B & S)

Page 16: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

16

Let’s Make a Useful Circuit

• Simplified formula: double check it’s really the same as SOP(A & !S) | (B & S)

2 2-in AND, 1 2-in OR

A B S Output0 0 0 00 0 1 00 1 0 00 1 1 11 0 0 11 0 1 01 1 0 11 1 1 1

Page 17: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

17

Circuit Example: 2x1 MUX

MUX(A, B, S) = (A & !S) | (B & S)Draw it in gates:

A

B

S

AND

AND

ORoutput

s

ab

output

So common, we give itits own symbol:

Page 18: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

18

Example 4x1 MUX

3

2

1

0a

b

c

d

y

S

2

ab

cd

out

s0 s1

The / 2 on the wire means “2 bits”

S1 S0 out0 0 a0 1 b1 0 c1 1 d

Page 19: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

19

Boolean Function Simplification

• Boolean expressions can be simplified by using the following rules (bitwise logical):• A & A = A A | A = A

• A & 0 = 0 A | 0 = A• A & 1 = A A | 1 = 1

• A & !A = 0 A | !A = 1

• !!A = A

• & and | are both commutative and associative• & and | can be distributed:

• A * (B+C) =(A*B) + (A*C) = AB+ AC, but also• A + (B*C) = (A+B) * (A+C) -- not like normal algebra!

• & and | can be subsumed: A | (A & B) = A

• Can typically just let synthesis tools do this dirty work, but good to know

Page 20: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

20

DeMorgan’s Laws

• Two (less obvious) Laws of Boolean Algebra:• Let us push negations inside, flipping & and |

!(A & B) = (!A) | (!B) or AB = A + B

!(A | B) = (!A) & (!B)

Alluded to these last timeVery good rules to know in general

NOTE: AB ≠A B

Page 21: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

21

Next: logic to work with numbers

• Computers do one thing: math• And they do it well/fast• Fundamental rule of computation: “Everything is a number”

• Computers can only work with numbers• Represent things as numbers

• Specifically: good at binary math• Base 2 number system: matches circuit voltages

• 1 (Vcc)• 0 (Ground)

• Use fixed sized numbers• How many bits

• Quick primer on binary numbers/math• Then how to make circuits for it

Page 22: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

22

Numbers for computers

• We usually use base 10:• 12345 = 1 * 104 + 2 * 103 + 3 * 102 + 4 * 101 * 5 * 100

• Recall from third grade: 1’s place, 10’s place, 100’s place…• Yes, we are going to re-cover 3rd grade math, but in binary

• What is the biggest digit that can go in any place?• Base 2:

• 1’s place, 2’s place, 4’s place, 8’s place, ….• What is the biggest digit that can go in any place?

Page 23: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

23

Basic Binary

• Advice: memorize the following• 20 = 1• 21 = 2• 22 = 4• 23 = 8• 24 = 16• 25 = 32• 26 = 64• 27 = 128• 28 = 256• 29 = 512• 210 = 1024

Page 24: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

24

Binary continued:

• Binary Number Example: 101101• Take a second and figure out what number this is

Page 25: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

25

Binary continued:

• Binary Number Example: 101101• Take a second and figure out what number this is1 in 32’s place = 320 in 16’s place 1 in 8’s place = 8 1 in 4’s place = 40 in 2’s place1 in 1’s place = 1

—45

Page 26: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

26

Converting Numbers

• Converting Decimal to BinarySuppose I want to convert 457 to binaryThink for a second about how to do this

Page 27: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

27

Decimal to binary using remainders

? Quotient Remainder457 ÷ 2 = 228 1228 ÷ 2 = 114 0114 ÷ 2 = 57 057 ÷ 2 = 28 128 ÷ 2 = 14 014 ÷ 2 = 7 07 ÷ 2 = 3 13 ÷ 2 = 1 11 ÷ 2 = 0 1 111001001

Page 28: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

28

Decimal to binary using comparison

Num Compare 2n ≥ ?

457 256 1201 128 173 64 19 32 09 16 09 8 11 4 01 2 01 1 1

111001001

Page 29: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

29

Hexadecimal: Convenient shorthand for Binary

• Binary is unwieldy to write• 425,000 decimal = 1100111110000101000 binary• Generally about 3x as many binary digits as decimal• Converting (by hand) takes some work and thought

• Hexadecimal (aka “hex”)—base 16—is convenient:• Easy mapping to/from binary• Digits from 0 to 15, so use A—F for 10—15. • Same or fewer digits than decimal• 425,000 decimal = 0x67C28• Generally write “0x” on front to make clear “this is hex”

• Circuit is still binary in nature, hex is a convenience for humans dealing with lots of binary bits!

Page 30: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

30

Hexadecimal

Hex digit Binary Decimal0 0000 01 0001 12 0010 23 0011 34 0100 45 0101 56 0110 67 0111 78 1000 89 1001 9A 1010 10B 1011 11C 1100 12D 1101 13E 1110 14F 1111 15

0x02468ACE0000 0010 0100 0110 1000 1010 1100 1110

0x13579BDF0001 0011 0101 0111 1001 1011 1101 1111

0xDEADBEEF1101 1110 1010 1101 1011 1110 1110 1111

Indicates a hex number

Binary ó Hex conversion is straightforward. Every 4 binary bits = 1 hex digit. If # of bits not a multiple of 4, add implicit 0s on left as needed

Page 31: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

31

Binary to/from hexadecimal

• 01011011001000112 -->• 0101 1011 0010 00112 -->• 5 B 2 316

1F4B16 -->

00011111010010112 -->

00011111010010112

Hex digit Binary Decimal0 0000 01 0001 12 0010 23 0011 34 0100 45 0101 56 0110 67 0111 78 1000 89 1001 9A 1010 10B 1011 11C 1100 12D 1101 13E 1110 14F 1111 15

Page 32: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

32

Binary Math : Addition

•Suppose we want to add two numbers:

00011101

+ 00101011

•How do we do this?

Page 33: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

33

Binary Math : Addition

•Suppose we want to add two numbers:

00011101 29

+ 00101011 + 43

•How do we do this?• Let’s revisit decimal addition• Think about the process as we do it

Page 34: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

34

Binary Math : Addition

•Suppose we want to add two numbers:

00011101 29

+ 00101011 + 43

2

•First add one’s digit 9+3 = 12 (2 carry a 1)

Page 35: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

35

Binary Math : Addition

•Suppose we want to add two numbers:1

00011101 29

+ 00101011 + 43

72

•First add one’s digit 9+3 = 12 (2 carry a 1)•Next add ten’s digit 2 + 4 + 1 = 7

Page 36: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

36

Binary Math : Addition

•Suppose we want to add two numbers:

00011101

+ 00101011

•Back to the binary:• First add 1’s digit 1+1 = …?

Page 37: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

37

Binary Math : Addition

•Suppose we want to add two numbers:1

00011101

+ 00101011

0

•Back to the binary:• First add 1’s digit 1+1 = 2 (0 carry a 1)

Page 38: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

38

Binary Math : Addition

• Suppose we want to add two numbers:11

00011101

+ 00101011

00

• Back to the binary:• First add 1’s digit 1+1 = 2 (0 carry a 1)• Then 2’s digit: 1+0+1 =2 (0 carry a 1)• You all finish it out….

Page 39: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

39

Binary Math : Addition

•Suppose we want to add two numbers:111111

00011101 = 29

+ 00101011 = 43

01001000 = 72

•Can check our work in decimal

Page 40: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

40

Negative Numbers

• May want negative numbers too!• Many ways to represent negative numbers:

• Sign/magnitude• Biased• 1’s complement• 2’s complement

Page 41: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

41

2’s complement

• In n-bit universe, for –x, subtract x from 2n

• Equivalently, “flip all the bits and add 1”

4 bits: +3: 0011

-3: 10000-0011

______1101

Or: flip bits 1100, add 1-> 1101

Page 42: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

42

2’s Complement Integers

• Mathematical definition: in n bit universe, to form (-x), subtract x from 2n

• Pragmatically, to negate, flip bits, add 1:

• 1’s complement + 1• Pros:

• Easy to compute with• One representation of 0• MSB acts as sign bit!

• Cons:• More complex negation• Extra negative number (-8)

0000 00001 10010 20011 30100 40101 50110 60111 71000 -81001 -71010 -61011 -51100 -41101 -31110 -21111 -1

Page 43: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

43

Beauty of 2’s complement

• All addition and subtraction just needs a regular adder like we designed on Friday!

• Call out 8 bit problems on board

A – B is now just A + (-B), where (-B) is 2’s complement of B

Page 44: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

44

Subtraction

• 2’s complement makes subtraction easy:• Remember: A - B = A + (-B)• And: -B = ~B + 1

é that means flip bits (“not”)• So we just flip the bits and start with CI = 1• Fortunate for us: makes circuits easy (next time)

1

0110101 -> 0110101

- 1010010 + 0101101

Page 45: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

45

Signed and Unsigned Ints

• Most programming languages support two int types• Signed: negative and positive• Unsigned: positive only, but can hold larger positive numbers

• Addition and subtraction:• Same, except overflow detection• x86: one add instruction, sets two different flags for overflows

Page 46: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

46

Critical to declare number system in use!

• 8 bit unsigned numbers: run from 0 to 255• 8 bit 2’s complement numbers run from -128 to 127

Page 47: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

47

Binary Math : Addition

•Revisit binary math for a minute: If 8 bit unsigned:

11011101 221

+ 01101011 107

1 11001000 338

Page 48: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

48

Binary Math : Addition

•Revisit binary math for a minute: If 8 bit unsigned:

11011101 221

+ 01101011 107

1 11001000 338UNSIGNED OVERFLOW!

Page 49: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

49

Binary Math : Addition

•Revisit binary math for a minute: If 8 bit 2’s complement:

01011101

+ 01101011

Page 50: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

50

Binary Math : Addition

•What about this one: if 2-s complement1111111

01011101 = 93

+ 01101011 = 107

11001000 = -56

•But… that can’t be right?• What do you expect for the answer?• What is it in 8-bit signed 2’s complement?

• Note if unsigned, this would be fine! +200

Page 51: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

51

Integer Overflow

• Answer should be 200• Not representable in 8-bit signed representation• No right answer

• Called Integer Overflow• Signed addition: CI != CO of last bit

• Or more intuitively, if sign of answer is differrent from sign of addends, overflow

• Unsigned addition: CO != 0 of last bit• Can detect in hardware

• Signed: XOR CI and CO of last bit• Unsigned: CO of last bit• What processor does: depends

Page 52: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

52

“One hot” representation

• Binary representation convenient for math• Another representation:

• One hot: one wire per number• At any time, one wire = 1, others = 0

• Though an inefficient way to code numbers – n bits for n values - has many useful properties

• Very convenient in many cases (e.g., homework 1)

0 1 2 3

Page 53: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

53

Converting to/from one hot

• Converting from 2N bits one hot to N bits binary=encoder• E.g., “an 8-to-3 encoder”

• Converting from N bits binary to 2N bits one hot=decoder• E.g., “a 4-to-16 decoder”

(which may be quite us0eful on hwk1)

8:3 encoder

0 01 02 03 14 05 06 07 0

011

4:16 decoder

0111

Page 54: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

54

Lets build a 4-to-2 encoder

• Start with a truth table• Input constrained to 1-hot: don’t care about invalid inputs

• Can do anything we want

• Simplest formulas:• Out0 = In1 or In3 [alternatively: Out0 = In0 nor In2]• Out1 = In2 or In3 [alternatively: Out1 = In0 nor In1]

In0 In1 In2 In3 Out1 Out0

1 0 0 0 0 00 1 0 0 0 10 0 1 0 1 00 0 0 1 1 1

Page 55: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

55

4-to-2 encoder

• Our 4-to-2 encoder• Note: the dots here show connections

• Don’t confuse with open circles which mean NOT

In0

In1

In2

In3

Out0

Out1

Page 56: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

56

4-to-2 encoder

• Our 4-to-2 encoder• Note: the dots here show connections

• Don’t confuse with open circles which mean NOT

In0

In1

In2

In3

Out0

Out1

In0 didn’t actually figure into the logic. That’s okSynthesis will eliminate it if its not used elsewhere…And whatever logic creates it, etc..

Page 57: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

57

Lets build a 2-to-4 decoder

• Start with a truth table• Now input unconstrained

For each of the 4 outputs:Out0 = (Not In1) and (Not In0)Out1 = (Not In1) and In0Out2 = In1 and (Not In0)Out3 = In1 and In0

In1 In0 Out0 Out1 Out2 Out3

0 0 1 0 0 00 1 0 1 0 01 0 0 0 1 01 1 0 0 0 1

Page 58: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

58

2-to-4 decoder

• 2-to-4 decoder

In0

In1

Out0

Out1

Out2

Out3

Page 59: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

59

2-to-4 decoder

• 2-to-4 decoder

In0

In1

Out0

Out1

Out2

Out3

Page 60: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

60

2-to-4 decoder

• 2-to-4 decoder

In0

In1

Out0

Out1

Out2

Out3

Page 61: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

61

Delays

• Mentioned before: switching not instant• Not going to try to calculate delays by hand (tools can do)• But good to know where delay comes from, to tweak/improve

• Gates:• Switching the transistors in gates takes time• More gates (in series) = more delay

• Fan-out: how many gates the output drives• Related to capacitance• High fan-out = slow• Sometimes better to replicate logic to reduce its fan-out

• Wire delay:• Signals take time to travel down wires

Page 62: ECE 550D - All Facultypeople.ee.duke.edu/~jab/ece550/slides/03-combo-logic.pdf · ECE 550D Fundamentals of ... • Pick between 2 inputs (called 2-to-1 MUX) • Short for multiplexor

62

Wrap Up

• Combinatorial Logic• Putting gates together• Sum-of-products• Simplification• Muxes, Encoders, Decoders

• Number Representations• One Hot• 2’s complement