ECE/CS 250: Computer Architecture. Basics of Logic Design: Boolean Algebra, Logic Gates. Benjamin Lee

Similar documents
ECE 250 / CPS 250 Computer Architecture. Basics of Logic Design Boolean Algebra, Logic Gates

ECE/CS 250 Computer Architecture

Floating Point Representation and Digital Logic. Lecture 11 CS301

Digital Logic. CS211 Computer Architecture. l Topics. l Transistors (Design & Types) l Logic Gates. l Combinational Circuits.

Computer organization

CS/COE0447: Computer Organization and Assembly Language

University of Technology

CHAPTER1: Digital Logic Circuits Combination Circuits

Boolean Algebra and Digital Logic 2009, University of Colombo School of Computing

XI STANDARD [ COMPUTER SCIENCE ] 5 MARKS STUDY MATERIAL.

Boolean Algebra & Logic Gates. By : Ali Mustafa

Digital Logic: Boolean Algebra and Gates. Textbook Chapter 3

CMPE12 - Notes chapter 2. Digital Logic. (Textbook Chapters and 2.1)"

Number System. Decimal to binary Binary to Decimal Binary to octal Binary to hexadecimal Hexadecimal to binary Octal to binary

Unit 8A Computer Organization. Boolean Logic and Gates

Lecture 22 Chapters 3 Logic Circuits Part 1

Boolean algebra. Examples of these individual laws of Boolean, rules and theorems for Boolean algebra are given in the following table.

CS/COE0447: Computer Organization

CS61C : Machine Structures

EEE130 Digital Electronics I Lecture #4

CS/COE1541: Introduction to Computer Architecture. Logic Design Review. Sangyeun Cho. Computer Science Department University of Pittsburgh

CSC9R6 Computer Design. Practical Digital Logic

Intro To Digital Logic

CS61C : Machine Structures

EE40 Lec 15. Logic Synthesis and Sequential Logic Circuits

211: Computer Architecture Summer 2016

1.10 (a) Function of AND, OR, NOT, NAND & NOR Logic gates and their input/output.

Logic Design. Chapter 2: Introduction to Logic Circuits

CMPE12 - Notes chapter 1. Digital Logic. (Textbook Chapter 3)

CS/COE0447: Computer Organization

Computer Organization: Boolean Logic

Computer Science 324 Computer Architecture Mount Holyoke College Fall Topic Notes: Digital Logic

Combinational Logic Trainer Lab Manual

We are here. Assembly Language. Processors Arithmetic Logic Units. Finite State Machines. Circuits Gates. Transistors

CS1800: Hex & Logic. Professor Kevin Gold

Fundamentals of Digital Design

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

Logic design? Transistor as a switch. Layered design approach. CS/COE1541: Introduction to Computer Architecture. Logic Design Review.

Logic Gates and Boolean Algebra

BOOLEAN ALGEBRA. Introduction. 1854: Logical algebra was published by George Boole known today as Boolean Algebra

S C F F F T T F T T S C B F F F F F T F T F F T T T F F T F T T T F T T T

Computer Science. 19. Combinational Circuits. Computer Science COMPUTER SCIENCE. Section 6.1.

Building a Computer Adder

Binary addition example worked out

COSC 243. Introduction to Logic And Combinatorial Logic. Lecture 4 - Introduction to Logic and Combinatorial Logic. COSC 243 (Computer Architecture)

Every time has a value associated with it, not just some times. A variable can take on any value within a range

COS 140: Foundations of Computer Science

1 Boolean Algebra Simplification

Latches. October 13, 2003 Latches 1

Combinational Logic. By : Ali Mustafa

Hakim Weatherspoon CS 3410 Computer Science Cornell University

XOR - XNOR Gates. The graphic symbol and truth table of XOR gate is shown in the figure.

CSE370 HW3 Solutions (Winter 2010)

Chapter 1: Logic systems

UNIT 8A Computer Circuitry: Layers of Abstraction. Boolean Logic & Truth Tables

Design of Sequential Circuits

UNIVERSITY OF WISCONSIN MADISON

Appendix B. Review of Digital Logic. Baback Izadi Division of Engineering Programs

EGC221: Digital Logic Lab

20. Combinational Circuits

Overview. Multiplexor. cs281: Introduction to Computer Systems Lab02 Basic Combinational Circuits: The Mux and the Adder

Review: Additional Boolean operations

Implementation of Boolean Logic by Digital Circuits

10/14/2009. Reading: Hambley Chapters

CSE370: Introduction to Digital Design

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

MA 3260 Lecture 10 - Boolean Algebras (cont.) Friday, October 19, 2018.

DIGITAL CIRCUIT LOGIC BOOLEAN ALGEBRA

CS 226: Digital Logic Design

Introduction to Computer Engineering. CS/ECE 252, Fall 2012 Prof. Guri Sohi Computer Sciences Department University of Wisconsin Madison

Additional Gates COE 202. Digital Logic Design. Dr. Muhamed Mudawar King Fahd University of Petroleum and Minerals

SAU1A FUNDAMENTALS OF DIGITAL COMPUTERS

Introduction to Computer Engineering. CS/ECE 252, Spring 2017 Rahul Nayar Computer Sciences Department University of Wisconsin Madison

Review for Test 1 : Ch1 5

Numbers & Arithmetic. Hakim Weatherspoon CS 3410, Spring 2012 Computer Science Cornell University. See: P&H Chapter , 3.2, C.5 C.

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

4 Switching Algebra 4.1 Axioms; Signals and Switching Algebra

EECS150 - Digital Design Lecture 4 - Boolean Algebra I (Representations of Combinational Logic Circuits)

ECE 545 Digital System Design with VHDL Lecture 1A. Digital Logic Refresher Part A Combinational Logic Building Blocks

CS61c: Representations of Combinational Logic Circuits

ECE 545 Digital System Design with VHDL Lecture 1. Digital Logic Refresher Part A Combinational Logic Building Blocks

Outline. EECS150 - Digital Design Lecture 4 - Boolean Algebra I (Representations of Combinational Logic Circuits) Combinational Logic (CL) Defined

Logic and Boolean algebra

CSE 20 DISCRETE MATH. Fall

CprE 281: Digital Logic

Computer Science. 20. Combinational Circuits. Computer Science COMPUTER SCIENCE. Section

Prove that if not fat and not triangle necessarily means not green then green must be fat or triangle (or both).

Lecture 2 Review on Digital Logic (Part 1)

COMP2611: Computer Organization. Introduction to Digital Logic

University of Florida EEL 3701 Fall 1996 Dr. Eric M. Schwartz

Looking at a two binary digit sum shows what we need to extend addition to multiple binary digits.

CSE 311: Foundations of Computing. Lecture 3: Digital Circuits & Equivalence

WEEK 2.1 BOOLEAN ALGEBRA

Systems I: Computer Organization and Architecture

Digital Logic (2) Boolean Algebra

CMSC 313 Lecture 16 Announcement: no office hours today. Good-bye Assembly Language Programming Overview of second half on Digital Logic DigSim Demo

T02 Tutorial Slides for Week 6

Chapter 2 Combinational Logic Circuits

CMP 334: Seventh Class

ALU A functional unit

Transcription:

ECE/CS 250: Computer Architecture Basics of Logic Design: Boolean Algebra, Logic Gates Benjamin Lee Slides based on those from Alvin Lebeck, Daniel Sorin, Andrew Hilton, Amir Roth, Gershon Kedem

Admin Resource: Pragmatic Logic by William Eccles In Sakai Resources and linked off web page. Skim for what you need, way too much in there This material is covered in MUCH greater depth in ECE/CS 350 please take ECE/CS 350 if you want to learn enough digital design to build your own processor Download Logisim before Friday s recitation http://ozark.hendrix.edu/~burch/logisim/download.html 2

What We ve Done, Where We re Going Top Down Application Operating System Software Compiler Firmware CPU Memory I/O system Digital Design Circuit Design Interface Between HW and SW Instruction Set Architecture, Memory, I/O Hardware (Almost) Bottom UP to CPU 3

Computer = Machine That Manipulates Bits Everything is in binary (bunches of 0s and 1s) Instructions, numbers, memory locations, etc. Computer is a machine that operates on bits Computers physically made of transistors Electrically controlled switches We can use transistors to build logic E.g., if this bit is a 0 and that bit is a 1, then set some other bit to be a 1 E.g., if the first 5 bits of the instruction are 10010 then set this other bit to 1 (to tell the adder to subtract instead of add) 4

How Many Transistors Are We Talking About? Pentium III Processor Core 9.5 Million Transistors Total: 28 Million Transistors Pentium 4 Total: 42 Million Transistors Core2 Duo (two processor cores) Total: 290 Million Transistors Core2 Duo Extreme (4 processor cores, 8MB cache) Total: 590 Million Transistors Core i7 with 6-cores Total: 2.27 Billion Transistors How do they design such a thing? Carefully! 5

Abstraction! Use of abstraction (key to design of any large system) Put a few (2-8) transistors into a logic gate (or, and, xor, ) Combine gates into logical functions (add, select,.) Combine adders, shifters, etc., together into modules Units with well-defined interfaces for large tasks: e.g., decode Combine a dozen of those into a core Stick 4 cores on a chip 6

You are here: Use of abstraction (key to design of any large system) Put a few (2-8) transistors into a logic gate Combine gates into logical functions (add, select,.) Combine adders, muxes, etc together into modules Units with well-defined interfaces for large tasks: e.g., decode Combine a dozen of those into a core Stick 4 cores on a chip 7

Boolean Algebra First step to logic: Boolean Algebra Formal apporoach for manipulating of True / False (1/0) After all: everything is just 1s and 0s Boolean Functions: Given inputs (variables): A, B, C, P, Q Compute outputs using logic operators, such as: NOT:!A (= ~A = A = A ) AND: A&B (= A B = A*B = AB = A B) = A&&B in C/Java OR: A B (= A+B = A B) = A B in C/Java XOR: A ^ B (= A B) NAND, NOR, XNOR, Etc. 8

Truth Tables Can represent as Truth Table: shows outputs for all inputs a NOT(a) 0 1 1 0 9

Truth Tables Can represent as truth table: shows outputs for all inputs a NOT(a) 0 1 1 0 a b AND(a,b) 0 0 0 0 1 0 1 0 0 1 1 1 10

Truth Tables Can represent as truth table: shows outputs for all inputs a NOT(a) 0 1 1 0 a b AND(a,b) 0 0 0 0 1 0 1 0 0 1 1 1 a b OR(a,b) 0 0 0 0 1 1 1 0 1 1 1 1 11

Truth Tables Can represent as truth table: shows outputs for all inputs a NOT(a) 0 1 1 0 a b AND(a,b) 0 0 0 0 1 0 1 0 0 1 1 1 a b OR(a,b) 0 0 0 0 1 1 1 0 1 1 1 1 a b XOR(a,b) 0 0 0 0 1 1 1 0 1 1 1 0 a b XNOR(a,b) 0 0 1 0 1 0 1 0 0 1 1 1 a b NOR(a,b) 0 0 1 0 1 0 1 0 0 1 1 0 12

Boolean Gates (More Later) Gates are electronic devices that implement simple Boolean functions (building blocks of hardware) Examples 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) 13

Any Inputs, Any Outputs Can have any # of inputs, any # of outputs Can have arbitrary functions: a b c f 1 f 2 0 0 0 0 1 0 0 1 1 1 0 1 0 1 0 0 1 1 0 0 1 0 0 1 0 1 1 0 0 1 1 1 1 1 1 14

Let s Write a Truth Table for a Function Example: (A & B)!C Start with Empty TT Column Per Input Column Per Output A B C Output 15

Let s write a Truth Table for a function Example: (A & B)!C Start with Empty TT Column Per Input Column Per Output A B C Output 0 0 0 Fill in Inputs Counting in Binary 16

Let s write a Truth Table for a function Example: (A & B)!C Start with Empty TT Column Per Input Column Per Output A B C Output 0 0 0 0 0 1 Fill in Inputs Counting in Binary 17

Let s write a Truth Table for a function Example: (A & B)!C Start with Empty TT Column Per Input Column Per Output Fill in Inputs Row per set of input values Counting in Binary A B C Output 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 18

Let s write a Truth Table for a function Example: (A & B)!C Start with Empty TT Column Per Input Column Per Output Fill in Inputs Row per set of input values Counting in Binary Compute Output for reach row (0 & 0)!0 = 0 1 = 1 A B C Output 0 0 0 1 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 19

Let s write a Truth Table for a function Example: (A & B)!C Start with Empty TT Column Per Input Column Per Output Fill in Inputs Row per set of input values Counting in Binary Compute Output for each row (0 & 0)!1 = 0 0 = 0 A B C Output 0 0 0 1 0 0 1 0 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 20

Let s write a Truth Table for a function Example: (A & B)!C Start with Empty TT Column Per Input Column Per Output Fill in Inputs Row per set of input values Counting in Binary Compute Output for each row (0 & 1)!0 = 0 1 = 1 A B C Output 0 0 0 1 0 0 1 0 0 1 0 1 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 21

Let s write a Truth Table for a function Example: (A & B)!C Start with Empty TT Column Per Input Column Per Output Fill in Inputs Row per set of input values Counting in Binary Compute Output for each row A B C Output 0 0 0 1 0 0 1 0 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 1 0 1 1 1 1 1 22

You try one Try one yourself: (!A B) &!C 23

You try one Try one yourself: (!A B) &!C Answer: A B C Output 0 0 0 1 0 0 1 0 0 1 0 1 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 1 1 1 1 0 24

Suppose I turn it around Given a Truth Table, find the formula? Hmmm.. A B C Output 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 1 1 1 1 1 25

Suppose I turn it around Given a Truth Table, find the formula? Hmmm Could write down every true case Then OR together: (!A &!B &!C) (!A &!B & C) (!A & B &!C) (A & B &!C) (A & B & C) A B C Output 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 1 1 1 1 1 26

Suppose I turn it around Given a Truth Table, find the formula? Hmmm.. Could write down every true case Then OR together: (!A &!B &!C) (!A &!B & C) (!A & B &!C) (A & B &!C) (A & B &C) A B C Output 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 1 1 1 1 1 27

Suppose I turn it around Given a Truth Table, find the formula? Hmmm.. Could write down every true case Then OR together: (!A &!B &!C) (!A &!B & C) (!A & B &!C) (A & B &!C) (A & B &C) A B C Output 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 1 1 1 1 1 28

Suppose I turn it around This approach: sum of products Works every time Result is right But really ugly (!A &!B &!C) (!A &!B & C) (!A & B &!C) (A & B &!C) (A & B &C) A B C Output 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 1 1 1 1 1 29

Suppose I turn it around This approach: sum of products Works every time Result is right But really ugly (!A &!B &!C) (!A &!B & C) (!A & B &!C) (A & B &!C) (A & B &C) Could just be (A & B) here? A B C Output 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 1 1 1 1 1 30

Suppose I turn it around This approach: sum of products Works every time Result is right But really ugly (!A &!B &!C) (!A &!B & C) (!A & B &!C) (A&B) A B C Output 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 1 1 1 1 1 31

Suppose I turn it around This approach: sum of products Works every time Result is right But really ugly (!A &!B &!C) (!A &!B & C) (!A & B &!C) (A&B) Could just be (!A &!B) here A B C Output 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 1 1 1 1 1 32

Suppose I turn it around This approach: sum of products Works every time Result is right But really ugly (!A &!B) (!A & B &!C) (A&B) A B C Output 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 1 1 1 1 1 33

Suppose I turn it around This approach: sum of products Works every time Result is right But really ugly (!A &!B) (!A & B &!C) (A&B) Looks nicer Can we do better? A B C Output 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 1 1 1 1 1 34

Suppose I turn it around This approach: sum of products Works every time Result is right But really ugly (!A &!B) (!A & B &!C) (A&B) This has a lot in common:!a & (something) A B C Output 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 1 1 1 1 1 35

Suppose I turn it around This approach: sum of products Works every time Result is right But really ugly (!A &!(B & C)) (A & B) A B C Output 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 1 1 1 1 1 36

Just did some of these by intuition.. but Somewhat intuitive approach to simplifying This is math, so there are formal rules Just like regular algebra 37

Boolean Function Simplification Boolean expressions can be simplified by using the following rules (bitwise logical): A & A = A A & 0 = 0 A A = A 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) & and can be subsumed: A (A & B) = A 38

DeMorgan s Laws Two (less obvious) Laws of Boolean Algebra: Let s push negations inside, flipping & and!(a & B) = (!A) (!B)!(A B) = (!A) & (!B) You should try this at home build truth tables for both the left and right sides and see that they re the same 39

Suppose I turn it around One more simplification on early example: (!A &!(B & C)) (A & B) = (!A & (!B!C)) (A & B) A B C Output 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 1 1 1 1 1 40

Another Simplification Example! (!A!(A & (B C))) 41

Simplification Example:! (!A!(A & (B C))) DeMorgan s!!a &!! (A & (B C)) 42

Simplification Example:! (!A!(A & (B C))) DeMorgan s!!a &!! (A & (B C)) Double Negation Elimination A & (A & (B C)) 43

Simplification Example:! (!A!(A & (B C))) DeMorgan s!!a &!! (A & (B C)) Double Negation Elimination A & (A & (B C)) Associativity of & (A & A) & (B C) 44

Simplification Example:! (!A!(A & (B C))) DeMorgan s!!a &!! (A & (B C)) Double Negation Elimination A & (A & (B C)) Associativity of & (A & A) & (B C) A & (B C) A & A = A 45

You try this: Come up with a formula for this Truth Table Simplify as much as possible A B C Output 0 0 0 1 0 0 1 0 0 1 0 1 0 1 1 0 1 0 0 0 1 0 1 1 1 1 0 0 1 1 1 1 46

You try this: Come up with a formula for this Truth Table Simplify as much as possible Sum of Products: (!A &!B &!C) (!A & B &!C) (A &!B & C) (A & B & C) A B C Output 0 0 0 1 0 0 1 0 0 1 0 1 0 1 1 0 1 0 0 0 1 0 1 1 1 1 0 0 1 1 1 1 47

You try this: Simplify first two terms: (!A &!B &!C) (!A & B &!C) 48

You try this: Simplify: (!A &!B &!C) (!A & B &!C) Regroup (associative/commutative): ((!A &!C) &!B) ((!A &!C) & B) 49

You try this: Simplify: (!A &!B &!C) (!A & B &!C) Regroup (associative/commutative): ((!A &!C) &!B) ((!A &!C) & B) Un-distribute (pull out common factor): (!A &!C) & (!B B) 50

You try this: Simplify: (!A &!B &!C) (!A & B &!C) Regroup (associative/commutative): ((!A &!C) &!B) ((!A &!C) & B) Un-distribute: (!A &!C) & (!B B) OR identities: (!A &!C) & true = (!A &!C) 51

You try this: Come up with a formula for this Truth Table Simplify as much as possible Sum of Products: (!A &!C) (A &!B & C) (A & B & C) A B C Output 0 0 0 1 0 0 1 0 0 1 0 1 0 1 1 0 1 0 0 0 1 0 1 1 1 1 0 0 1 1 1 1 52

You try this: Come up with a formula for this Truth Table Simplify as much as possible Sum of Products: (!A &!C) (A & C) A B C Output 0 0 0 1 0 0 1 0 0 1 0 1 0 1 1 0 1 0 0 0 1 0 1 1 1 1 0 0 1 1 1 1 53

Applying the Theory Lots of good theory Can reason about complex Boolean expressions Can design software to minimize But why is this useful? 54

Boolean Gates Gates are electronic devices that implement simple Boolean functions (building blocks of hardware) Examples 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) 55

Guide to Remembering your Gates This one looks like it just points its input where to go It just produces its input as its output Called a buffer a a 56

Guide to Remembering your Gates This one looks like it just points its input where to go It just produces its input as its output Called a buffer a a A circle always means negate a NOT(a) Circle = NOT 57

Brief Interlude: Building An Inverter a NOT(a) Vdd = power = 1 P-type: switch is on if input is 0 a NOT(a) N-type: switch is on if input is 1 ground= 0 58

Guide to Remembering Your Gates AND Gates have a straight edge, like an A (in AND) Straight like an A a b AND(a,b) OR Gates have a curved edge, like an O (in OR) a b OR(a,b) Curved, like an O 59

Guide to Remembering Your Gates If we stick a circle on them a b AND(a,b) a b NAND(a,b) Circle = NOT a b OR(a,b) a b NOR(a,b) We get NAND (NOT-AND) and NOR (NOT-OR) NAND(a,b) = NOT(AND(a,b)) 60

Guide to Remembering Your Gates XOR looks like OR (curved line) But has two lines (like an X does) a b XOR(a,b) Can put a dot for XNOR XNOR is 1-bit equals by the way a b XNOR(a,b) 61

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

A few more words about gates Gates have inputs and outputs If you try to hook up two outputs, bad things happen (your processor catches fire) a b c d BAD! If you don t hook up an input, it behaves kind of randomly (also not good, but not set-your-chip-on-fire bad) 63

Let s Make a Useful Circuit Pick between 2 inputs (called 2-to-1 MUX) Short for multiplexor What might we do first? 64

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 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 65

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: sum-of-products (!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 66

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: sum-of-products Simplify (A &!S) (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 67

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 68

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

Arithmetic and Logical Operations in ISA What operations are there? How do we implement them? Consider a 1-bit Adder 70

Summary Boolean Algebra & functions Logic gates (AND, OR, NOT, etc) Multiplexors Download Logisim for Recitation http://ozark.hendrix.edu/~burch/logisim/download.html 71