0% found this document useful (0 votes)
61 views

04 Logic Gates

This document provides an overview of logic gates and binary arithmetic. It discusses Boolean algebra, basic logic gates like AND, OR, and NOT. It explains how to convert between Boolean logic expressions and logic circuits. It also covers adding binary numbers using half adders and full adders, and how adding larger binary numbers can be done by chaining full adders together. Finally, it discusses flip-flops, memory, hexadecimal numbering, and some applications of logic gates.

Uploaded by

jfrankjose
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
61 views

04 Logic Gates

This document provides an overview of logic gates and binary arithmetic. It discusses Boolean algebra, basic logic gates like AND, OR, and NOT. It explains how to convert between Boolean logic expressions and logic circuits. It also covers adding binary numbers using half adders and full adders, and how adding larger binary numbers can be done by chaining full adders together. Finally, it discusses flip-flops, memory, hexadecimal numbering, and some applications of logic gates.

Uploaded by

jfrankjose
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 29

Logic Gates

CS 202, Spring 2007


Epp, setions 1.4 and 1.5
Aaron Bloomfield

1
Review of Boolean algebra
• Just like Boolean logic
• Variables can only be 1 or 0
– Instead of true / false

2
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
3
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 4
Basic logic gates
x
• Not x
x xy x xyz
• And y y
z
x x+y x x+y+z
y
• Or y z
x xy
• Nand y
x x+y
• Nor y
x xÅ y
• Xor y
5
Converting between circuits and
equations
• Find the output of the following circuit

x x+y
y (x+y)y

y y

__
• Answer: (x+y)y
– Or (xy)y 6
Converting between circuits and
equations
• Find the output of the following circuit

x
x xy xy
y
y
___
__
• Answer: xy
– Or (xy) ≡ xy 7
Converting between circuits and
equations
• Write the circuits for the following
Boolean algebraic expressions
__
a) x+y

x
x x+y

8
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
y

9
Writing xor using and/or/not
• p  q  (p  q)  ¬(p  q) x y xy
____
1 1 0
• x  y  (x + y)(xy) 1 0 1
0 1 1
0 0 0

x x+y (x+y)(xy)
y
xy xy
10
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
11
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 + 2 3 + 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 + 2 0
= 32 + 8 + 1
= 41
12
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

13
How to add binary numbers
• Consider adding two 1-bit binary numbers x and y
– 0+0 = 0
– 0+1 = 1
x y Carry Sum
– 1+0 = 1
– 1+1 = 10 0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 0
• Carry is x AND y
• Sum is x XOR y
• The circuit to compute this is called a half-adder
15
The half-adder
x y Carry Sum
• Sum = x XOR y 0 0 0 0
• Carry = x AND y 0 1 0 1
1 0 0 1
1 1 1 0

x x
y y Sum
Sum
Carry
Carry
16
Using half adders
• We can then use a half-adder to compute
the sum of two Boolean numbers

1 0 0
1 1 0 0
+1 1 1 0
? 0 1 0

17
How to fix this
• We need to create an adder that can take a carry
bit as an additional input
– Inputs: x, y, carry in x y c carry sum
– Outputs: sum, carry out 1 1 1 1 1
• This is called a full adder 1 1 0 1 0
– Will add x and y with a half-adder 1 0 1 1 0
– Will add the sum of that to the 1 0 0 0 1
carry in
0 1 1 1 0
• What about the carry out?
– It’s 1 if either (or both):
0 1 0 0 1
– x+y = 10 0 0 1 0 1
– x+y = 01 and carry in = 1 0 0 0 0 0
18
x y c s1 c1 carry sum
The full adder 1 1 1 0 1 1 1
1 1 0 0 1 1 0
• The “HA” boxes are 1 0 1 1 0 1 0
half-adders 1 0 0 1 0 0 1
0 1 1 1 0 1 0
0 1 0 1 0 0 1
0 0 1 0 0 0 1
0 0 0 0 0 0 0
c X HA S
s
s1
Y C

x X HA S

c
y
Y C

c1
19
The full adder
• The full circuitry of the full adder

c
s

x
y
c

20
Adding bigger binary numbers
• Just chain full adders together

x0 X HA S
s0
y0 Y C

x1
C

X
FA S
s1
y1 Y C

x2
C

X
FA S
s2
y2 Y C

x3
C

X
FA S
s3
y3 Y C
c
...

21
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 and
n-1 FAs
• To add 32 bit binary numbers, you need 1 HA
and 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
22
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!

23
Flip-flops
• Consider the following circuit:

• What does it do?


24
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
25
Hexadecimal
• A numerical range
from 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 easily
translate: 26
From
ThinkGeek
(http://www.thinkgeek.com)

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

28
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

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

• 0xDEAD = 57005
• Now add one to that...

30

You might also like