Вы находитесь на странице: 1из 36

Logic Gates

1

Review of Boolean algebra

Just like Boolean logic Variables can only be 1 or 0

Review of Boolean algebra

Not is a horizontal bar above the number _

0=1 _ 1=0

Or is a plus

0+0 = 0 0+1 = 1 1+0 = 1 1+1 = 1 0*0 = 0 0*1 = 0 1*0 = 0 1*1 = 1

And is multiplication

Review of Boolean algebra

Example: translate (x+y+z)(xyz) to a Boolean logic expression

_ __

(x ) x y z) yz ( F(x,y) = (x ) x y) y (
x 1 1 0 0 y 1 0 1 0 F(x,y) 0 0 0 0
4

And then write a truth table for it:

Quick survey

a) b) c) d)

I understand the basics of Boolean algebra Absolutely! More or less Not really Boolean what?

Todays demotivators

Basic logic gates

Not And Or Nand Nor Xor
x x

x y x y x y x y x y

xy x+y xy x+y xy

x y z x y z

xyz x+y+z

Rosen, 10.3 question 1

Find the output of the following circuit

x y

x+y (x+y)y y
__

y

Or (x ) y y

Rosen, 10.3 question 2

Find the output of the following circuit

x y

x xy y
___ __

xy

Or (x y) x y

Quick survey

a) b) c) d)

I understand how to figure out what a logic gate does Absolutely! More or less Not really Not at all

10

Rosen, 10.3 question 6

Write the circuits for the following Boolean algebraic expressions __ a) x+y

x y

x+y

11

Rosen, 10.3 question 6

Write the circuits for the following Boolean algebraic expressions _______ b) (x+y)x

x y

x+y

x+y

(x+y)x

12

Writing xor using and/or/not

p q (p q) (p q) x y (x + y)(xy)
____

x 1 1 0 0

y 1 0 1 0

xy 0 1 1 0

x y

x+y xy xy

(x+y)(xy)

13

Quick survey

a) b) c) d)

I understand how to write a logic circuit for simple Boolean formula Absolutely! More or less Not really Not at all

14

Converting decimal numbers to binary

53 = 32 + 16 + 4 + 1
= 25 + 24 + 22 + 20 = 1*25 + 1*24 + 0*23 + 1*22 + 0*21 + 1*20 = 110101 in binary = 00110101 as a full byte in binary

211= 128 + 64 + 16 + 2 + 1
= 27 + 26 + 24 + 21 + 20 = 1*27 + 1*26 + 0*25 + 1*24 + 0*23 + 0*22 + 1*21 + 1*20 = 11010011 in binary
15

Converting binary numbers to decimal

What is 10011010 in decimal?
10011010 = 1*27 + 0*26 + 0*25 + 1*24 + 1*23 + 0*22 + 1*21 + 0*20 = 27 + 24 + 23 + 21 = 128 + 16 + 8 + 2 = 154

What is 00101001 in decimal?

00101001 = 0*27 + 0*26 + 1*25 + 0*24 + 1*23 + 0*22 + 0*21 + 1*20 = 25 + 23 + 20 = 32 + 8 + 1 = 41

16

Available for \$15 at http://www.thinkgeek.com/ tshirts/frustrations/5aa9/

17

Quick survey

a) b) c) d)

I understand the basics of converting numbers between decimal and binary Absolutely! More or less Not really Not at all
18

Consider adding two 1-bit binary numbers x and y

0+0 = 0 0+1 = 1 1+0 = 1 1+1 = 10

Carry is x AND y Sum is x XOR y The circuit to compute this is called a half-adder

x 0 0 1 1

y 0 1 0 1

Carry Sum 0 0 0 1 0 1 1 0

19

Sum = x XOR y Carry = x AND y

x y

x y

Sum Carry

Sum Carry
20

We can then use a half-adder to compute the sum of two Boolean numbers
1 1 +1 ? 0 1 1 0 0 0 0 1 0 1 0

21

Quick survey
a) b) c) d)

I understand half adders Absolutely! More or less Not really Not at all

22

How to fix this

We need to create an adder that can take a carry bit as an additional input x y c carry sum

Inputs: x, y, carry in Outputs: sum, carry out

1 1 1 1 1 0 1 0 1 1 0 0 0 1 1 0 1 0 0 0 1 0 0 0

1 1 1 0 1 0 0 0

1 0 0 1 0 1 1 0
23

This is called a full adder

Will add x and y with a half-adder Will add the sum of that to the carry in Its 1 if either (or both): x+y = 10 x+y = 01 and carry in = 1

c x y
X

HA

s c

HA

24

The full circuitry of the full adder
c s x y c

25

x0 y0 x1 y1 x2 y2 x3 y3

HA

s0
C X Y C

FA

s1
C X Y C

FA

s2
C X Y C

FA

s3 c
26

A half adder has 4 logic gates A full adder has two half adders plus a OR gate

Total of 9 logic gates

To add n bit binary numbers, you need 1 HA and n-1 FAs To add 32 bit binary numbers, you need 1 HA and 31 FAs

Total of 4+9*63 = 571 logic gates

27

Quick survey

a) b) c) d)

I understand (more or less) about adding binary numbers using logic gates Absolutely! More or less Not really Not at all
28

To implement a logic gate in hardware, you use a transistor Transistors are all enclosed in an IC, or integrated circuit The current Intel Pentium IV processors have 55 million transistors!

29

Pentium math error 1

Intels Pentiums (60Mhz 100 Mhz) had a floating point error Graph of z = y/x Intel reluctantly agreed to replace them in 1994

30

Pentium math error 2

Top 10 reasons to buy a Pentium: Your old PC is too accurate Provides a good alibi when the IRS calls Attracted by Intel's new "You don't need to know what's inside" campaign It redefines computing--and mathematics! You've always wondered what it would be like to be a plaintiff Current paperweight not big enough Takes concept of "floating point" to a new level You always round off to the nearest hundred anyway Got a great deal from the Jet Propulsion Laboratory 31 It'll probably work!!

10 8.9999163362 7.9999414610 6.9999831538 5.9999835137 4.9999999021 3.9998245917 2.9991523619 1.9999103517 0.9999999998

Flip-flops
Consider the following circuit:

What does it do?

32

Memory
A flip-flop holds a single bit of memory

In reality, flip-flops are a bit more complicated

Have 5 (or so) logic gates (transistors) per flipflop 1 Gb = 8,589,934,592 bits of memory Thats about 43 million transistors!

Consider a 1 Gb memory chip

In reality, those transistors are split into 9 ICs of about 5 million transistors each
33

Quick survey

a) b) c) d)

I felt I understood the material in this slide set Very well With some review, Ill be good Not really Not at all

34

Quick survey

a) b) c) d)

The pace of the lecture for this slide set was Fast About right A little slow Too slow

35

36