ECE 550D Fundamentals of Computer Systems and Engineering. Fall 2017

Similar documents
EE292: Fundamentals of ECE

COMP combinational logic 1 Jan. 18, 2016

8/27/2016. ECE 120: Introduction to Computing. Graphical Illustration of Modular Arithmetic. Representations Must be Unambiguous

GC03 Boolean Algebra

Slide Set 1. for ENEL 339 Fall 2014 Lecture Section 02. Steve Norman, PhD, PEng

4. Write a sum-of-products representation of the following circuit. Y = (A + B + C) (A + B + C)

Signed umbers. Sign/Magnitude otation

CS/COE 0447 Example Problems for Exam 2 Spring 2011

ECE 2030D Computer Engineering Spring problems, 5 pages Exam Two 8 March 2012

6.1 Combinational Circuits. George Boole ( ) Claude Shannon ( )

E40M. Binary Numbers, Codes. M. Horowitz, J. Plummer, R. Howe 1

Lecture 3: Binary Subtraction, Switching Algebra, Gates, and Algebraic Expressions

Microcomputers. Outline. Number Systems and Digital Logic Review

Slide Set 5. for ENEL 353 Fall Steve Norman, PhD, PEng. Electrical & Computer Engineering Schulich School of Engineering University of Calgary

Binary Adders: Half Adders and Full Adders

Logic, Words, and Integers

T02 Tutorial Slides for Week 2

(Refer Slide Time 6:48)

CHW 261: Logic Design

Computer Organization and Levels of Abstraction

Binary Values. CSE 410 Lecture 02

ECE 2020B Fundamentals of Digital Design Spring problems, 6 pages Exam Two Solutions 26 February 2014

Arithmetic and Bitwise Operations on Binary Data

2. MACHINE REPRESENTATION OF TYPICAL ARITHMETIC DATA FORMATS (NATURAL AND INTEGER NUMBERS).

Arithmetic-logic units

(Refer Slide Time 3:31)

D I G I T A L C I R C U I T S E E

1010 2?= ?= CS 64 Lecture 2 Data Representation. Decimal Numbers: Base 10. Reading: FLD Digits: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

QUESTION BANK FOR TEST

Computer Architecture Set Four. Arithmetic

DIGITAL ARITHMETIC: OPERATIONS AND CIRCUITS

Basic Arithmetic (adding and subtracting)

Topic Notes: Bits and Bytes and Numbers

DIGITAL SYSTEM DESIGN

CS 31: Introduction to Computer Systems. 03: Binary Arithmetic January 29

(Refer Slide Time: 00:01:53)

Inf2C - Computer Systems Lecture 2 Data Representation

Arithmetic and Bitwise Operations on Binary Data

Parallel logic circuits

SWITCHING THEORY AND LOGIC CIRCUITS

UC Berkeley College of Engineering, EECS Department CS61C: Combinational Logic Blocks

UC Berkeley College of Engineering, EECS Department CS61C: Combinational Logic Blocks

Logic Design (Part 2) Combinational Logic Circuits (Chapter 3)

Computer Organization and Levels of Abstraction

Chapter 3 Data Representation

LECTURE 4. Logic Design

EE 109L Review. Name: Solutions

ECE 2020B Fundamentals of Digital Design Spring problems, 6 pages Exam Two 26 February 2014

Read this before starting!

Number Systems. Decimal numbers. Binary numbers. Chapter 1 <1> 8's column. 1000's column. 2's column. 4's column

Propositional Calculus. Math Foundations of Computer Science

Chapter 3. Boolean Algebra and Digital Logic

CSC 220: Computer Organization Unit 10 Arithmetic-logic units

Slide Set 1. for ENEL 353 Fall Steve Norman, PhD, PEng. Electrical & Computer Engineering Schulich School of Engineering University of Calgary

CS 31: Intro to Systems Digital Logic. Kevin Webb Swarthmore College February 3, 2015

Integer Multiplication and Division

ELECTRICAL AND COMPUTER ENGINEERING DEPARTMENT, OAKLAND UNIVERSITY ECE-278: Digital Logic Design Fall Notes - Unit 4. hundreds.

ELECTRICAL AND COMPUTER ENGINEERING DEPARTMENT, OAKLAND UNIVERSITY ECE-2700: Digital Logic Design Winter Notes - Unit 4. hundreds.

A complement number system is used to represent positive and negative integers. A complement number system is based on a fixed length representation

CS 31: Intro to Systems Digital Logic. Kevin Webb Swarthmore College February 2, 2016

Under the Hood: Data Representation. Computer Science 104 Lecture 2

CS 24: INTRODUCTION TO. Spring 2015 Lecture 2 COMPUTING SYSTEMS

Read this before starting!

Arithmetic Logic Unit (ALU)

IT 201 Digital System Design Module II Notes

Kinds Of Data CHAPTER 3 DATA REPRESENTATION. Numbers Are Different! Positional Number Systems. Text. Numbers. Other

Injntu.com Injntu.com Injntu.com R16

6.1 Combinational Circuits. George Boole ( ) Claude Shannon ( )

Chapter 4. Combinational Logic

Topic Notes: Bits and Bytes and Numbers

Experiment 4 Boolean Functions Implementation

Bawar Abid Abdalla. Assistant Lecturer Software Engineering Department Koya University

History of Computing. Ahmed Sallam 11/28/2014 1

Designing Information Devices and Systems II Fall 2017 Miki Lustig and Michel Maharbiz Discussion 1B

2. BOOLEAN ALGEBRA 2.1 INTRODUCTION

CS140 Lecture 03: The Machinery of Computation: Combinational Logic

ECE 250 / CS 250 Computer Architecture. C to Binary: Memory & Data Representations. Benjamin Lee

Homework. Update on website issue Reading: Chapter 7 Homework: All exercises at end of Chapter 7 Due 9/26

1. Mark the correct statement(s)

The LC3's micro-coded controller ("useq") is nothing more than a finite-state machine (FSM). It has these inputs:

Combinational Logic Worksheet

Combinational Devices and Boolean Algebra

Data Representation. DRAM uses a single capacitor to store and a transistor to select. SRAM typically uses 6 transistors.

CS429: Computer Organization and Architecture

ECE 331: N0. Professor Andrew Mason Michigan State University. Opening Remarks

Integers. N = sum (b i * 2 i ) where b i = 0 or 1. This is called unsigned binary representation. i = 31. i = 0

Read this before starting!

CS 31: Intro to Systems Binary Arithmetic. Kevin Webb Swarthmore College January 26, 2016

Objectives: 1- Bolean Algebra. Eng. Ayman Metwali

Number Systems and Computer Arithmetic

Chapter 2: Universal Building Blocks. CS105: Great Insights in Computer Science

Number Systems. Readings: , Problem: Implement simple pocket calculator Need: Display, adders & subtractors, inputs

ECE 2030B 1:00pm Computer Engineering Spring problems, 5 pages Exam Two 10 March 2010

Chapter Three. Digital Components

Digital Logic Design Exercises. Assignment 1

Henry Lin, Department of Electrical and Computer Engineering, California State University, Bakersfield Lecture 7 (Digital Logic) July 24 th, 2012

Computer Science 324 Computer Architecture Mount Holyoke College Fall Topic Notes: Bits and Bytes and Numbers

Goals for this Week. CSC 2400: Computer Systems. Bits, Bytes and Data Types. Binary number system. Finite representations of binary integers

Topics of this Slideset. CS429: Computer Organization and Architecture. Digital Signals. Truth Tables. Logic Design

Boolean Logic CS.352.F12

Transcription:

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)

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 2

Boolean Gates Saw these gates a b AND(a,b) a b OR(a,b) a NOT(a) a b XOR(a,b) a b NAND(a,b) a b NOR(a,b) a b XNOR(a,b) 3

Boolean Functions, Gates and Circuits Circuits are made from a network of gates. (!A &!C) (A & C) equivalently A C + AC and A C + AC A C Out 4

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) a b a b OK! c d BAD! c d 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) 5

Introducing the Multiplexer ( mux ) Selector (S) B A Input A Input B Output 6

Introducing the Multiplexer ( mux ) Selector (S) 0 mux 1 A 1 0 Output Input A Input B 7

Introducing the Multiplexer ( mux ) Selector (S) 1 mux 1 0 0 Output B Input A Input B 8

Introducing the Multiplexer ( mux ) Selector (S) 1 mux 1 1 1 Output B Input A Input B 9

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 Output 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 1 1 0 1 0 1 1 0 1 1 1 1 1 10

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 Output 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 1 1 0 1 0 1 1 0 1 1 1 1 1 11

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 Output 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 1 1 0 1 0 1 1 0 1 1 1 1 1 12

Simplifying The Formula Simplifying this formula: (!A & B & S) (A &!B &!S) (A & B &!S ) (A & B & S) B doesn t matter 13

Simplifying The Formula Simplifying this formula: (!A & B & S) (A &!S) (A & B & S) A doesn t matter 14

Simplifying The Formula Simplifying this formula: (A &!S) (B & S) 15

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 Output 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 1 1 0 1 0 1 1 0 1 1 1 1 1 16

Circuit Example: 2x1 MUX Draw it in gates: A AND MUX(A, B, S) = (A &!S) (B & S) OR output B AND S So common, we give it its own symbol: a b output s 17

Example 4x1 MUX a b a 0 c d out b c d 1 2 3 y 2 S1 S0 out 0 0 a s 0 s 1 S 0 1 b 1 0 c The / 2 on the wire means 2 bits 1 1 d 18

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 19

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 time Very good rules to know in general NOTE: AB A B 20

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 21

Numbers for computers We usually use base 10: 12345 = 1 * 10 4 + 2 * 10 3 + 3 * 10 2 + 4 * 10 1 * 5 * 10 0 Recall from third grade: 1 s place, 10 s place, 100 s place Yes, we are going to re-cover 3 rd 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? 22

Basic Binary Advice: memorize the following 2 0 = 1 2 1 = 2 2 2 = 4 2 3 = 8 2 4 = 16 2 5 = 32 2 6 = 64 2 7 = 128 2 8 = 256 2 9 = 512 2 10 = 1024 23

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

Binary continued: Binary Number Example: 101101 Take a second and figure out what number this is 1 in 32 s place = 32 0 in 16 s place 1 in 8 s place = 8 1 in 4 s place = 4 0 in 2 s place 1 in 1 s place = 1 45 25

Converting Numbers Converting Decimal to Binary Suppose I want to convert 457 to binary Think for a second about how to do this 26

Decimal to binary using remainders? Quotient Remainder 457 2 = 228 1 228 2 = 114 0 114 2 = 57 0 57 2 = 28 1 28 2 = 14 0 14 2 = 7 0 7 2 = 3 1 3 2 = 1 1 1 2 = 0 1 111001001 27

Decimal to binary using comparison Num Compare 2 n? 111001001 457 256 1 201 128 1 73 64 1 9 32 0 9 16 0 9 8 1 1 4 0 1 2 0 1 1 1 28

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! 29

Hexadecimal 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 Hex digit Binary Decimal 0 0000 0 1 0001 1 2 0010 2 Indicates a hex number 0xDEADBEEF 1101 1110 1010 1101 1011 1110 1110 1111 3 0011 3 4 0100 4 5 0101 5 6 0110 6 7 0111 7 8 1000 8 0x02468ACE 0000 0010 0100 0110 1000 1010 1100 1110 9 1001 9 A 1010 10 B 1011 11 C 1100 12 D 1101 13 E 1110 14 F 1111 15 0x13579BDF 0001 0011 0101 0111 1001 1011 1101 1111 30

Binary to/from hexadecimal 0101101100100011 2 --> 0101 1011 0010 0011 2 --> 5 B 2 3 16 Hex digit Binary Decimal 0 0000 0 1 0001 1 2 0010 2 3 0011 3 4 0100 4 5 0101 5 6 0110 6 7 0111 7 8 1000 8 1 F 4 B 16 --> 0001 1111 0100 1011 2 --> 0001111101001011 2 9 1001 9 A 1010 10 B 1011 11 C 1100 12 D 1101 13 E 1110 14 F 1111 15 31

Binary Math : Addition Suppose we want to add two numbers: 00011101 + 00101011 How do we do this? 32

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 33

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) 34

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 35

Binary Math : Addition Suppose we want to add two numbers: 00011101 + 00101011 Back to the binary: First add 1 s digit 1+1 =? 36

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) 37

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. 38

Binary Math : Addition Suppose we want to add two numbers: 111111 00011101 = 29 + 00101011 = 43 01001000 = 72 Can check our work in decimal 39

Negative Numbers May want negative numbers too! Many ways to represent negative numbers: Sign/magnitude Biased 1 s complement 2 s complement 40

2 s complement In n-bit universe, for x, subtract x from 2 n Equivalently, flip all the bits and add 1 4 bits: +3: 0011-3: 10000-0011 1101 Or: flip bits 1100, add 1-> 1101 41

2 s Complement Integers Mathematical definition: in n bit universe, to form (-x), subtract x from 2 n 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 0 0001 1 0010 2 0011 3 0100 4 0101 5 0110 6 0111 7 1000-8 1001-7 1010-6 1011-5 1100-4 1101-3 1110-2 1111-1 42

Beauty of 2 s complement All addition and subtraction just needs a regular adder like we designed on Friday! A B is now just A + (-B), where (-B) is 2 s complement of B Call out 8 bit problems on board 43

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 44

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 45

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 46

Binary Math : Addition Revisit binary math for a minute: If 8 bit unsigned: 11011101 221 + 01101011 107 1 11001000 338 47

Binary Math : Addition Revisit binary math for a minute: If 8 bit unsigned: 11011101 221 + 01101011 107 1 11001000 338 UNSIGNED OVERFLOW! 48

Binary Math : Addition Revisit binary math for a minute: If 8 bit 2 s complement: 01011101 + 01101011 49

Binary Math : Addition What about this one: if 2-s complement 1111111 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 50

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 51

One hot representation Binary representation convenient for math Another representation: One hot: one wire per number At any time, one wire = 1, others = 0 0 1 2 3 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) 52

Converting to/from one hot Converting from 2 N bits one hot to N bits binary=encoder E.g., an 8-to-3 encoder Converting from N bits binary to 2 N bits one hot=decoder E.g., a 4-to-16 decoder (which may be quite us0eful on hwk1) 0 0 1 0 2 0 3 1 4 0 5 0 6 0 7 0 0 1 1 0 1 1 1 8:3 encoder 4:16 decoder 53

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 In0 In1 In2 In3 Out1 Out0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 0 0 1 1 1 Simplest formulas: Out0 = In1 or In3 Out1 = In2 or In3 [alternatively: Out0 = In0 nor In2] [alternatively: Out1 = In0 nor In1] 54

4-to-2 encoder Our 4-to-2 encoder Note: the dots here show connections In3 Don t confuse with open circles which mean NOT Out1 In2 In1 Out0 In0 55

4-to-2 encoder Our 4-to-2 encoder Note: the dots here show connections In3 Don t confuse with open circles which mean NOT Out1 In2 In1 Out0 In0 In0 didn t actually figure into the logic. That s ok Synthesis will eliminate it if its not used elsewhere And whatever logic creates it, etc.. 56

Lets build a 2-to-4 decoder Start with a truth table Now input unconstrained In1 In0 Out0 Out1 Out2 Out3 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 1 0 1 1 0 0 0 1 For each of the 4 outputs: Out0 = (Not In1) and (Not In0) Out1 = (Not In1) and In0 Out2 = In1 and (Not In0) Out3 = In1 and In0 57

2-to-4 decoder 2-to-4 decoder Out3 In1 Out2 In0 Out1 Out0 58

2-to-4 decoder 2-to-4 decoder Out3 In1 Out2 In0 Out1 Out0 59

2-to-4 decoder 2-to-4 decoder Out3 In1 Out2 In0 Out1 Out0 60

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 61

Wrap Up Combinatorial Logic Putting gates together Sum-of-products Simplification Muxes, Encoders, Decoders Number Representations One Hot 2 s complement 62