04 logic gates

29
1 Logic Gates CS 202, Spring 2007 Epp, setions 1.4 and 1.5  Aaron Bloomfield

Upload: naagaraaju-aaraadhyula

Post on 03-Apr-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 04 Logic Gates

7/28/2019 04 Logic Gates

http://slidepdf.com/reader/full/04-logic-gates 1/29

1

Logic Gates

CS 202, Spring 2007

Epp, setions 1.4 and 1.5 Aaron Bloomfield

Page 2: 04 Logic Gates

7/28/2019 04 Logic Gates

http://slidepdf.com/reader/full/04-logic-gates 2/29

2

Review of Boolean algebra

• Just like Boolean logic

• Variables can only be 1 or 0

 – Instead of true / false

Page 3: 04 Logic Gates

7/28/2019 04 Logic Gates

http://slidepdf.com/reader/full/04-logic-gates 3/29

3

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

•  And is multiplication – 0*0 = 0

 – 0*1 = 0

 – 1*0 = 0

 – 1*1 = 1

 _ 

 _ 

Page 4: 04 Logic Gates

7/28/2019 04 Logic Gates

http://slidepdf.com/reader/full/04-logic-gates 4/29

4

Review of Boolean algebra

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

logic expression

 – ( x y z )( x y z )

• We can define a Boolean function: – F(x,y) = ( x y )( x y )

•  And then write a “truth table” for it:

 _   _   _ 

 x y F(x,y)1 1 0

1 0 0

0 1 0

0 0 0

Page 5: 04 Logic Gates

7/28/2019 04 Logic Gates

http://slidepdf.com/reader/full/04-logic-gates 5/29

5

Basic logic gates

• Not

•  And

• Or 

• Nand

• Nor 

• Xor 

 x x 

 x y 

 xy  x y 

xyz 

z  x +y  x y 

 x y 

x +y +z 

 x y 

 xy 

 x +y  x y 

 x Åy  x y 

Page 6: 04 Logic Gates

7/28/2019 04 Logic Gates

http://slidepdf.com/reader/full/04-logic-gates 6/29

6

Converting between circuits and

equations

• Find the output of the following circuit

•  Answer: ( x+y )y 

 – Or ( x y )y 

 x y x +y 

(x +y )y 

 __ 

 x y 

Page 7: 04 Logic Gates

7/28/2019 04 Logic Gates

http://slidepdf.com/reader/full/04-logic-gates 7/29

7

 x 

Converting between circuits and

equations

• Find the output of the following circuit

•  Answer: xy

 – Or ( x y ) ≡  x y 

x y x y 

 _ _  ___ 

Page 8: 04 Logic Gates

7/28/2019 04 Logic Gates

http://slidepdf.com/reader/full/04-logic-gates 8/29

8

Converting between circuits and

equations

• Write the circuits for the following

Boolean algebraic expressions

a)  x +y 

 x 

 x 

 x 

   __ 

x  x +y 

Page 9: 04 Logic Gates

7/28/2019 04 Logic Gates

http://slidepdf.com/reader/full/04-logic-gates 9/29

9

 x 

 x 

 x 

Converting between circuits and

equations

• Write the circuits for the following

Boolean algebraic expressions

b) ( x +y ) x  _______ 

 x 

x +y x +y  (x +y )x 

Page 10: 04 Logic Gates

7/28/2019 04 Logic Gates

http://slidepdf.com/reader/full/04-logic-gates 10/29

10

Writing xor using and/or/not

•  p Å q  ( p  q) ¬( p  q)

•  x Å y (x + y)( xy )

 x y x Åy 

1 1 0

1 0 1

0 1 10 0 0

 x 

x +y 

xy xy 

(x +y )(xy)

 ____ 

Page 11: 04 Logic Gates

7/28/2019 04 Logic Gates

http://slidepdf.com/reader/full/04-logic-gates 11/29

11

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

Page 12: 04 Logic Gates

7/28/2019 04 Logic Gates

http://slidepdf.com/reader/full/04-logic-gates 12/29

12

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

Page 13: 04 Logic Gates

7/28/2019 04 Logic Gates

http://slidepdf.com/reader/full/04-logic-gates 13/29

13

 A note on binary numbers

• In this slide set we are only dealing with

non-negative numbers

• The book (section 1.5) talks about two‟s-

complement binary numbers

 – Positive (and zero) two‟s-complement binary

numbers is what was presented here

 – We won‟t be getting into negative two‟s-complmeent numbers

Page 14: 04 Logic Gates

7/28/2019 04 Logic Gates

http://slidepdf.com/reader/full/04-logic-gates 14/29

15

How to add binary numbers

• 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 y  Carry Sum

0 0 0 00 1 0 1

1 0 0 1

1 1 1 0

Page 15: 04 Logic Gates

7/28/2019 04 Logic Gates

http://slidepdf.com/reader/full/04-logic-gates 15/29

16

The half-adder 

• Sum = x XOR y  

• Carry = x AND y  

 x y  Sum

Carry

 x y 

Sum

Carry

 x y  Carry Sum0 0 0 0

0 1 0 1

1 0 0 1

1 1 1 0

Page 16: 04 Logic Gates

7/28/2019 04 Logic Gates

http://slidepdf.com/reader/full/04-logic-gates 16/29

17

Using half adders

• We can then use a half-adder to compute

the sum of two Boolean numbers

1 1 0 0

+ 1 1 1 0

010?

001

Page 17: 04 Logic Gates

7/28/2019 04 Logic Gates

http://slidepdf.com/reader/full/04-logic-gates 17/29

18

How to fix this

• We need to create an adder that can take acarry bit as an additional input – Inputs: x , y , carry in

 – Outputs: sum, carry out

• This is called a full adder  – Will add x and y with a half-adder 

 – Will add the sum of that to thecarry in

• What about the carry out? – It‟s 1 if either (or both): 

 –  x +y = 10

 –  x +y = 01 and carry in = 1

 x y c  carry sum

1 1 1 1 1

1 1 0 1 0

1 0 1 1 0

1 0 0 0 1

0 1 1 1 00 1 0 0 1

0 0 1 0 1

0 0 0 0 0

Page 18: 04 Logic Gates

7/28/2019 04 Logic Gates

http://slidepdf.com/reader/full/04-logic-gates 18/29

19

HAX

Y

S

C

HAX

Y

S

C

 x 

sHAX

Y

S

C

HAX

Y

S

C

 x 

The full adder 

• The “HA” boxes are

half-adders

 x y c s1 c 1 carry sum

1 1 1 0 1 1 1

1 1 0 0 1 1 0

1 0 1 1 0 1 0

1 0 0 1 0 0 1

0 1 1 1 0 1 0

0 1 0 1 0 0 10 0 1 0 0 0 1

0 0 0 0 0 0 0

s1

c1

Page 19: 04 Logic Gates

7/28/2019 04 Logic Gates

http://slidepdf.com/reader/full/04-logic-gates 19/29

20

The full adder 

• The full circuitry of the full adder 

 x 

s

Page 20: 04 Logic Gates

7/28/2019 04 Logic Gates

http://slidepdf.com/reader/full/04-logic-gates 20/29

21

 Adding bigger binary numbers

• Just chain full adders together 

HAX

Y

S

C

FAC

Y

X

S

C

FAC

Y

X

S

C

FAC

Y

X

S

C

 x 1y 1

 x 2 y 2  x 3y 3

 x 0 

y 0 

s0 

s1

s2 

s3c 

.

 

.

 

Page 21: 04 Logic Gates

7/28/2019 04 Logic Gates

http://slidepdf.com/reader/full/04-logic-gates 21/29

22

 Adding bigger binary numbers

•  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 andn-1 FAs

• To add 32 bit binary numbers, you need 1 HAand 31 FAs

 – Total of 4+9*31 = 283 logic gates• To add 64 bit binary numbers, you need 1 HA

and 63 FAs – Total of 4+9*63 = 571 logic gates

Page 22: 04 Logic Gates

7/28/2019 04 Logic Gates

http://slidepdf.com/reader/full/04-logic-gates 22/29

23

More about logic gates

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

Page 23: 04 Logic Gates

7/28/2019 04 Logic Gates

http://slidepdf.com/reader/full/04-logic-gates 23/29

24

Flip-flops

• Consider the following circuit:

• What does it do?

Page 24: 04 Logic Gates

7/28/2019 04 Logic Gates

http://slidepdf.com/reader/full/04-logic-gates 24/29

25

Memory

•  A flip-flop holds a single bit of memory

 – The bit “flip-flops” between the two NAND

gates

• In reality, flip-flops are a bit more

complicated – Have 5 (or so) logic gates (transistors) per flip-

flop

• Consider a 1 Gb memory chip

 – 1 Gb = 8,589,934,592 bits of memory – That‟s about 43 million transistors!

• In reality, those transistors are split into 9

ICs of about 5 million transistors each

Page 25: 04 Logic Gates

7/28/2019 04 Logic Gates

http://slidepdf.com/reader/full/04-logic-gates 25/29

26

Hexadecimal

•  A numerical rangefrom 0-15 – Where A is 10, B is 11,

… and F is 15

• Often written with a„0x‟ prefix

• So 0x10 is 10 hex, or 16 – 0x100 is 100 hex, or 

256

• Binary numbers easilytranslate:

Page 26: 04 Logic Gates

7/28/2019 04 Logic Gates

http://slidepdf.com/reader/full/04-logic-gates 26/29

27

From

ThinkGeek(http://www.thinkgeek.com)

Page 27: 04 Logic Gates

7/28/2019 04 Logic Gates

http://slidepdf.com/reader/full/04-logic-gates 27/29

28

 Also from

ThinkGeek(http://www.thinkgeek.com)

Page 28: 04 Logic Gates

7/28/2019 04 Logic Gates

http://slidepdf.com/reader/full/04-logic-gates 28/29

29

DEADBEEF

• Many IBM machines would fill allocated

(but uninitialized) memory with the hexa-

decimal pattern 0xDEADBEEF

 – Decimal -21524111

 – See http://www.jargon.net/jargonfile/d/DEADBEEF.html 

• Makes it easier to spot in a debugger 

Page 29: 04 Logic Gates

7/28/2019 04 Logic Gates

http://slidepdf.com/reader/full/04-logic-gates 29/29

30

 Also also from ThinkGeek(http://www.thinkgeek.com)

• 0xDEAD = 57005

• Now add one to that...