Logic Gates Informatics INFO I101 February 3, 2003 John C. Paolillo, Instructor.

Post on 17-Jan-2016

216 views 0 download

Transcript of Logic Gates Informatics INFO I101 February 3, 2003 John C. Paolillo, Instructor.

Logic Gates

Informatics INFO I101

February 3, 2003

John C. Paolillo, Instructor

Items for Today

• Last week– Digitization– Graphic, audio and video data sizes

• This time– Digital logic, Boolean algebra, and circuits– Logic gates and truth tables

A Fundamental UnitySet Theory

&Logic

UnionIntersectionComplement

BooleanAlgebra

ORANDNOT

ElectricCircuits

ParallelSeries

Inversion

Binary Arithmetic

AdditionMultiplication

Twos Complement

Electric Circuits

+ off on

off off on

on on on

off on

off off off

on off on

Parallel Series

Binary Arithmetic

+ 0 1

0 00 01

1 01 10

0 1

0 0 0

1 0 1

Means zero, carry 1(two distinct outputs)

Boolean Algebra

+ 0 1

0 0 1

1 1 1

0 1

0 0 0

1 0 1

OR AND

0 1

0 0 1

1 1 0

Exclusive ORBinary addition:ExOR (for one’s place)plus AND (for carry)

A Fundamental Unity

• Any logical or mathematical problem may be formulated in set theoretic terms

• Boolean logic may be used to represent any set-theoretic operation

• The fundamental elements of Boolean logic may be implemented in electric circuits

• Therefore, any logical or mathematical problem may be implemented in electrical circuits!

Logic Gates

What are Logic Gates?

• Logic gates are conventional arrangements of switches that are treated as units

• They abstract away from the details of individual switches– They may be implemented in any number of

ways– Only their function is important

Symbols for Logic Gates

AND OR

XOR Not

Buff

Functions of Logic Gates

and 0 1

0 0 0

1 0 1

or 0 1

0 0 1

1 1 1

xor 0 1

0 0 1

1 1 0

nand 0 1

0 1 1

1 1 0

nor 0 1

0 1 0

1 0 0

xnor 0 1

0 1 0

1 0 1

A ¬A

0 1

1 0

A Buff

1 1

0 0

Boolean Logic Hints

AND: if you know that one input is 0, it doesn’t matter what the other input is, the output will be 0

OR: if you know that one input is 1, it doesn’t matter what the other input is, the output will always be 1

XOR: if you know that the inputs are the same, then the output will always be 0

Some Example Circuits

XOR

E

A0101

B0011

C0111

D1110

E0110

D

A C

B

De Morgan’s Law (1)

E

A0101

B0011

C1010

D1100

E0111

A C

BD

De Morgan’s Law (2)

A0101

B0011

C1010

D1100

E0001

E

BD

A C

Encoding Position in a 2-by-2 Board

01 11

00 10

r1

r2

c1 c2

row

col

black

red

01 11

00 10

r1

r2

c1 c2

col

row

Decoding Position to a 2-by-2 Board

4-line multiplexer

d

c

b

a

C

A0101

B0011

CabcdA B

4-line demultiplexer

A B

A0101

B0011

aIN000

b0

IN00

c00

IN0

d000

IN

IN

d

c

b

a

Other Applications of Boolean Logic

Graphic Paint/Copy Modes

COPY OR XOR

Database Search Queries

• A keyword represents the set of documents containing it

• Boolean AND represents the intersection of the sets corresponding to two (or more) search terms

• Boolean OR represents the union of the sets corresponding to two (or more) search terms

Addition: Half Adder

+ 00 01

00 00 01

01 01 10

S

A B

xor 0 1

0 0 1

1 1 0

and 0 1

0 0 0

1 0 1

C

The half adder sends a carry, but can’t accept one

+

Addition: Truth Tables

CI00001111

A01010101

B00110011

S COS01101001

CO00010111

Addition: Full Adder

A

B S

CO

CI

More Digits

FullAdder

ci

co

s

ab

a0

s0

b0

FullAdder

ci

co

s

ab

a1

s1

b1

FullAdder

ci

co

s

ab

a2

s2

b2

FullAdder

ci

co

s

ab

a3

s3

b3

Full adders can be cascaded

Subtraction

Complement Representations

Subtraction

– 00 01

00 00 01

01 –01 00

• Subtraction is asymmetrical

• That makes it harder• We have to borrow

sometimes

Solution: “Easy Subtraction”

456–123333

999–123876

• Subtraction is easy if you don’t have to borrow

• i.e. if all the digits of the minuend are greater than (or equal to) all those of the subtrahend

• This will always be true if the minuend is all 9’s: 999, or 999999, or 9999999999 etc.

How can we use easy subtraction?

• Subtract the subtrahend from 999 (or whatever we need) (easy)

• Add the result to the minuend (easy enough)• Add 1 (easy)• Subtract 1000 (not too hard)

Difference = Minuend + 999 – Subtrahend + 1 – 1000

This works for binary as well as decimal

Subtraction Example

10010101–01101110?????????

11111111–0110111010010001

This is the same as inverting each bit

+ 10010101100100110

+1100100111

–10000000000100111

Regular addition

Add one

Now drop the highest bit (easy: it’s out of range)

00100111

Subtraction Procedure

Invert each bit

Regular addition

Add one

Now drop the highest bit (easy: it’s out of range)

Each of these steps is a simple operation we can perform using our logic circuits

Bitwise XOR

Cascaded Adders

Add carry bit

Drop the highest bit (overflows)

Negative Numbers

Invert each bit

Add one

These steps make the negative of a number in twos-complement notation

• Twos complements can be added to other numbers normally• Positive numbers cannot use the highest bit (the sign bit)• This is the normal representation of negative numbers in binary

Counting

00000000 000000001 100000010 200000011 300000100 400000101 500000110 600000111 700001000 800001001 9

etc.

11111111 –111111110 –211111101 –311111100 –411111011 –511111010 –611111001 –711111000 –811110111 –911110110 –10etc.

Representations

• The number representation you use (encoding) affects the way you need to do arithmetic (procedure)

• This is true of all codes: encoding (representation) affects procedure (algorithm)

• Good binary codes make use of properties of binary numbers and digital logic