lecture 3. error detection and correction, logic gates prof. sin-min lee department of computer...

59
Lecture 3. Error Detection and Correction, Logic Gates Prof. Sin-Min Lee Department of Computer Science 2x

Upload: barbara-berry

Post on 11-Jan-2016

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Lecture 3. Error Detection and Correction, Logic Gates Prof. Sin-Min Lee Department of Computer Science 2x

Lecture 3. Error Detection and Correction, Logic

Gates

Prof. Sin-Min Lee

Department of Computer Science

2x

Page 2: Lecture 3. Error Detection and Correction, Logic Gates Prof. Sin-Min Lee Department of Computer Science 2x

4–2

Chapter Goals

• Error Detection and Correction

• Identify the basic gates and describe the behavior of each

• Combine basic gates into circuits

• Describe the behavior of a gate or circuit using Boolean expressions, truth tables, and logic diagrams

Page 3: Lecture 3. Error Detection and Correction, Logic Gates Prof. Sin-Min Lee Department of Computer Science 2x

4–3

Error DetectionEDC= Error Detection and Correction bits (redundancy)D = Data protected by error checking, may include header fields

• Error detection not 100% reliable!• protocol may miss some errors, but rarely• larger EDC field yields better detection and correction

Page 4: Lecture 3. Error Detection and Correction, Logic Gates Prof. Sin-Min Lee Department of Computer Science 2x

4–4

Parity Checking

Single Bit Parity:Detect single bit errors

Two Dimensional Bit Parity:Detect and correct single bit errors

0 0

Page 5: Lecture 3. Error Detection and Correction, Logic Gates Prof. Sin-Min Lee Department of Computer Science 2x

4–5

Internet checksum

Sender:

• treat segment contents as sequence of 16-bit integers

• checksum: addition (1’s complement sum) of segment contents

• sender puts checksum value into UDP checksum field

Receiver:

• compute checksum of received segment

• check if computed checksum equals checksum field value:– NO - error detected– YES - no error detected.

But maybe errors nonetheless? More later ….

Goal: detect “errors” (e.g., flipped bits) in transmitted segment (note: used at transport layer only)

Page 6: Lecture 3. Error Detection and Correction, Logic Gates Prof. Sin-Min Lee Department of Computer Science 2x

4–6

Checksumming: Cyclic Redundancy Check

• view data bits, D, as a binary number

• choose r+1 bit pattern (generator), G

• goal: choose r CRC bits, R, such that– <D,R> exactly divisible by G (modulo 2) – receiver knows G, divides <D,R> by G. If non-zero remainder:

error detected!– can detect all burst errors less than r+1 bits

• widely used in practice (ATM, HDCL)

Page 7: Lecture 3. Error Detection and Correction, Logic Gates Prof. Sin-Min Lee Department of Computer Science 2x

4–7

CRC Example

Want:

D.2r XOR R = nG

equivalently:

D.2r = nG XOR R

equivalently:

if we divide D.2r by G, want remainder R

R = remainder[ ]D.2r

G

Page 8: Lecture 3. Error Detection and Correction, Logic Gates Prof. Sin-Min Lee Department of Computer Science 2x

4–8

What is a gate?

• Combination of transistors that perform

• binary logic

• So called because one logic state enables

• or “gates” another logic state

• For each gate, the symbol, the truth table,

• and the formula are shown

Page 9: Lecture 3. Error Detection and Correction, Logic Gates Prof. Sin-Min Lee Department of Computer Science 2x

4–9

Page 10: Lecture 3. Error Detection and Correction, Logic Gates Prof. Sin-Min Lee Department of Computer Science 2x

4–10

Page 11: Lecture 3. Error Detection and Correction, Logic Gates Prof. Sin-Min Lee Department of Computer Science 2x

4–11

Page 12: Lecture 3. Error Detection and Correction, Logic Gates Prof. Sin-Min Lee Department of Computer Science 2x

4–12

Page 13: Lecture 3. Error Detection and Correction, Logic Gates Prof. Sin-Min Lee Department of Computer Science 2x

4–13

Page 14: Lecture 3. Error Detection and Correction, Logic Gates Prof. Sin-Min Lee Department of Computer Science 2x

4–14

Computers

• There are three different, but equally powerful, notational methods for describing the behavior of gates and circuits– Boolean expressions– logic diagrams– truth tables

Page 15: Lecture 3. Error Detection and Correction, Logic Gates Prof. Sin-Min Lee Department of Computer Science 2x

4–15

Boolean algebra

• Boolean algebra: expressions in this algebraic notation are an elegant and powerful way to demonstrate the activity of electrical circuits

Page 16: Lecture 3. Error Detection and Correction, Logic Gates Prof. Sin-Min Lee Department of Computer Science 2x

4–16

• Logic diagram: a graphical representation of a circuit– Each type of gate is represented by a specific

graphical symbol

• Truth table: defines the function of a gate by listing all possible input combinations that the gate could encounter, and the corresponding output

Truth Table

Page 17: Lecture 3. Error Detection and Correction, Logic Gates Prof. Sin-Min Lee Department of Computer Science 2x

4–17

Gates

• Let’s examine the processing of the following six types of gates– NOT– AND– OR– XOR– NAND– NOR

Page 18: Lecture 3. Error Detection and Correction, Logic Gates Prof. Sin-Min Lee Department of Computer Science 2x

4–18

NOT Gate

• A NOT gate accepts one input value and produces one output value

Figure 4.1 Various representations of a NOT gate

Page 19: Lecture 3. Error Detection and Correction, Logic Gates Prof. Sin-Min Lee Department of Computer Science 2x

4–19

NOT Gate

• By definition, if the input value for a NOT gate is 0, the output value is 1, and if the input value is 1, the output is 0

• A NOT gate is sometimes referred to as an inverter because it inverts the input value

Page 20: Lecture 3. Error Detection and Correction, Logic Gates Prof. Sin-Min Lee Department of Computer Science 2x

4–20

AND Gate

• An AND gate accepts two input signals

• If the two input values for an AND gate are both 1, the output is 1; otherwise, the output is 0

Figure 4.2 Various representations of an AND gate

Page 21: Lecture 3. Error Detection and Correction, Logic Gates Prof. Sin-Min Lee Department of Computer Science 2x

4–21

OR Gate

• If the two input values are both 0, the output value is 0; otherwise, the output is 1

Figure 4.3 Various representations of a OR gate

Page 22: Lecture 3. Error Detection and Correction, Logic Gates Prof. Sin-Min Lee Department of Computer Science 2x

4–22

XOR Gate

• XOR, or exclusive OR, gate– An XOR gate produces 0 if its two inputs are

the same, and a 1 otherwise

– Note the difference between the XOR gate and the OR gate; they differ only in one input situation

– When both input signals are 1, the OR gate produces a 1 and the XOR produces a 0

Page 23: Lecture 3. Error Detection and Correction, Logic Gates Prof. Sin-Min Lee Department of Computer Science 2x

4–23

XOR Gate

Figure 4.4 Various representations of an XOR gate

Page 24: Lecture 3. Error Detection and Correction, Logic Gates Prof. Sin-Min Lee Department of Computer Science 2x

NAND and NOR Gates

• The NAND and NOR gates are essentially the opposite of the AND and OR gates, respectively

Figure 4.5 Various representations of a NAND gate

Figure 4.6 Various representations of a NOR gate

Page 25: Lecture 3. Error Detection and Correction, Logic Gates Prof. Sin-Min Lee Department of Computer Science 2x

4–25

Page 26: Lecture 3. Error Detection and Correction, Logic Gates Prof. Sin-Min Lee Department of Computer Science 2x

4–26

Page 27: Lecture 3. Error Detection and Correction, Logic Gates Prof. Sin-Min Lee Department of Computer Science 2x

4–27

Page 28: Lecture 3. Error Detection and Correction, Logic Gates Prof. Sin-Min Lee Department of Computer Science 2x

4–28

Gates with More Inputs

• Gates can be designed to accept three or more input values

• A three-input AND gate, for example, produces an output of 1 only if all input values are 1

Figure 4.7 Various representations of a three-input AND gate

Page 29: Lecture 3. Error Detection and Correction, Logic Gates Prof. Sin-Min Lee Department of Computer Science 2x

4–29

3-Input And gate

A B C Y0 0 0 00 0 1 00 1 0 00 1 1 01 0 0 01 0 1 01 1 0 01 1 1 1

Y = A . B . C

Page 30: Lecture 3. Error Detection and Correction, Logic Gates Prof. Sin-Min Lee Department of Computer Science 2x

4–30

Constructing Gates

• A transistor is a device that acts, depending on the voltage level of an input signal, either as a wire that conducts electricity or as a resistor that blocks the flow of electricity

– A transistor has no moving parts, yet acts like a switch

– It is made of a semiconductor material, which is neither a particularly good conductor of electricity, such as copper, nor a particularly good insulator, such as rubber

Page 31: Lecture 3. Error Detection and Correction, Logic Gates Prof. Sin-Min Lee Department of Computer Science 2x

4–31

Circuits

• Two general categories

– In a combinational circuit, the input values explicitly determine the output

– In a sequential circuit, the output is a function of the input values as well as the existing state of the circuit

• As with gates, we can describe the operations of entire circuits using three notations– Boolean expressions– logic diagrams– truth tables

Page 32: Lecture 3. Error Detection and Correction, Logic Gates Prof. Sin-Min Lee Department of Computer Science 2x

4–32

Combinational Circuits

• Gates are combined into circuits by using the output of one gate as the input for another

Page 99

AND

AND

OR

Page 33: Lecture 3. Error Detection and Correction, Logic Gates Prof. Sin-Min Lee Department of Computer Science 2x

4–33

Combinational Circuits

• Because there are three inputs to this circuit, eight rows are required to describe all possible input combinations

• This same circuit using Boolean algebra:

(AB + AC)

jasonm:

Redo to get white space around table (p100)

jasonm:

Redo to get white space around table (p100)

Page 100

Page 34: Lecture 3. Error Detection and Correction, Logic Gates Prof. Sin-Min Lee Department of Computer Science 2x

4–34

Now let’s go the other way; let’s take a Boolean expression and draw

• Consider the following Boolean expression: A(B + C)

jasonm:

Redo table to get white space (p101)

jasonm:

Redo table to get white space (p101)

Page 100

Page 101

• Now compare the final result column in this truth table to the truth table for the previous example• They are identical

Page 35: Lecture 3. Error Detection and Correction, Logic Gates Prof. Sin-Min Lee Department of Computer Science 2x

4–35

Simple design problem

• A calculation has been done and its results

• are stored in a 3-bit number

• Check that the result is negative by anding

• the result with the binary mask 100

• Hint: a “mask” is a value that is anded with

• a value and leaves only the important bit

Page 36: Lecture 3. Error Detection and Correction, Logic Gates Prof. Sin-Min Lee Department of Computer Science 2x

4–36

Using And gates to mask

Page 37: Lecture 3. Error Detection and Correction, Logic Gates Prof. Sin-Min Lee Department of Computer Science 2x

4–37

Shorthand way to draw this

• If the values shown had 32 bits, you would

• have a lot of wires and and gates on the

• drawing.

• Here is a shorthand way to draw this:

Page 38: Lecture 3. Error Detection and Correction, Logic Gates Prof. Sin-Min Lee Department of Computer Science 2x

4–38

Masked valueUsing And gates to mask

Page 39: Lecture 3. Error Detection and Correction, Logic Gates Prof. Sin-Min Lee Department of Computer Science 2x

4–39

& and && in Java, C, C++

• & means AND, bit-by-bit

• What we just did was the equivalent of

• Y = A & B

• && means AND, on a word, boolean basis

• 101 && 010 is true

• 101 & 010 is zero

Page 40: Lecture 3. Error Detection and Correction, Logic Gates Prof. Sin-Min Lee Department of Computer Science 2x

4–40

Now let’s go the other way; let’s take a Boolean expression and draw

• We have therefore just demonstrated circuit equivalence

– That is, both circuits produce the exact same output for each input value combination

• Boolean algebra allows us to apply provable mathematical principles to help us design logical circuits

Page 41: Lecture 3. Error Detection and Correction, Logic Gates Prof. Sin-Min Lee Department of Computer Science 2x

4–41

Properties of Boolean Algebrajasonm:

Redo table (p101)

jasonm:

Redo table (p101)

Page 101

Page 42: Lecture 3. Error Detection and Correction, Logic Gates Prof. Sin-Min Lee Department of Computer Science 2x

4–42

Adders

• At the digital logic level, addition is performed in binary

• Addition operations are carried out by special circuits called, appropriately, adders

Page 43: Lecture 3. Error Detection and Correction, Logic Gates Prof. Sin-Min Lee Department of Computer Science 2x

4–43

Adders

• The result of adding two binary digits could produce a carry value

• Recall that 1 + 1 = 10 in base two

• A circuit that computes the sum of two bits and produces the correct carry bit is called a half adder

• Notice the Sum & Carry are NEVER both 1.

jasonm:

Redo table (p103)

jasonm:

Redo table (p103)

Page 103

(XOR) (AND)

Page 44: Lecture 3. Error Detection and Correction, Logic Gates Prof. Sin-Min Lee Department of Computer Science 2x

4–44

Adders

• Circuit diagram representing a half adder

• Two Boolean expressions:

sum = A Bcarry = AB

Page 103

Page 45: Lecture 3. Error Detection and Correction, Logic Gates Prof. Sin-Min Lee Department of Computer Science 2x

4–45

Adders

• A circuit called a full adder takes the carry-in value into account

Figure 4.10 A full adder

Page 46: Lecture 3. Error Detection and Correction, Logic Gates Prof. Sin-Min Lee Department of Computer Science 2x

4–46

Adding Many Bits

• To add 2 8-bit values, we can duplicate a full-adder circuit 8 times. The carry-out from one place value is used as the carry in for the next place value. The value of the carry-in for the rightmost position is assumed to be zero, and the carry-out of the leftmost bit position is discarded (potentially creating an overflow error).

Page 47: Lecture 3. Error Detection and Correction, Logic Gates Prof. Sin-Min Lee Department of Computer Science 2x

4–47

How to use NOR gate to build a NOT gate?Truth Table

A B C Q

0 0 0 1

1 1 1 0Hint!

Link inputs B & C together (to a same source).

A Q

B

C

When A = 0, B = C = A = 0When A = 1, B = C = A = 1

Page 48: Lecture 3. Error Detection and Correction, Logic Gates Prof. Sin-Min Lee Department of Computer Science 2x

4–48

How to use NOR gates to build an OR gate?Truth Table

Hint 1 : Use 2 NOR gates

AQ

B

C

Hint 2 : From a NOR gate, build a NOT gate Hint 3 : Put this “NOT” gate after a NOR gate

D

E

A B C D E Q

0 0 1 1 1 0

0 1 0 0 0 1

1 0 0 0 0 1

1 1 0 0 0 1

NOR NOT

Page 49: Lecture 3. Error Detection and Correction, Logic Gates Prof. Sin-Min Lee Department of Computer Science 2x

4–49

How to use NOR gates to build an AND gate?Truth Table

Hint 1 : Use 3 NOR gatesHint 2 : From 2 NOR gates, build 2 NOT gates Hint 3 : Each “NOT” gate is an input to the 3rd NOR gate

A B C D Q

0 0 1 1 0

0 1 1 0 0

1 0 0 1 0

1 1 0 0 1

A

B

C

D

Q

Page 50: Lecture 3. Error Detection and Correction, Logic Gates Prof. Sin-Min Lee Department of Computer Science 2x

4–50

How to use NOR gates to build a NAND gate?Truth Table

Hint 2 : Use 3 NOR gates to build a NAND gate (previous lesson)

Hint 3 : Use the 4th NOR gate to build a NOT gate

Hint 4 : Insert “NOT” gate after “NAND” gate

Hint 5 : NOT-NAND = AND

Hint 1 : Use 4 NOR gates

A

B

C

DQ

E A B C D E Q

0 0 1 1 0 1

0 1 1 0 0 1

1 0 0 1 0 1

1 1 0 0 1 0

Page 51: Lecture 3. Error Detection and Correction, Logic Gates Prof. Sin-Min Lee Department of Computer Science 2x

4–51

How to use NAND gates to build a NOT gate?Truth Table

Hint! Link inputs B & C together (to a same source).

When A = 0, B = C = A = 0When A = 1, B = C = A = 1

A Q

C

B A B C Q

0 0 0 1

1 1 1 0

Page 52: Lecture 3. Error Detection and Correction, Logic Gates Prof. Sin-Min Lee Department of Computer Science 2x

4–52

How to use NAND gates to build an AND gate?Truth Table

AQ

B

A B C Q

0 0 1 0

0 1 1 0

1 0 1 0

1 1 0 1

C

Hint 1 : Use 2 NAND gatesHint 2 : From a NAND gate, build a NOT gate

Hint 3 : Put this “NOT” gate after a NAND gate

NAND NOT

Hint 4 : NOT-NAND = AND

Page 53: Lecture 3. Error Detection and Correction, Logic Gates Prof. Sin-Min Lee Department of Computer Science 2x

4–53

How to use NAND gates to build an OR gate?Truth Table

A B C D Q

0 0 1 1 0

0 1 1 0 1

1 0 0 1 1

1 1 0 0 1Hint 1 : Use 3 NAND gates

Hint 2 : Use 2 NAND gates to build 2 NOT gates

Hint 3 : Put the 3rd NAND gate after the 2 “NOT” gates

A

B

C

DQ

Page 54: Lecture 3. Error Detection and Correction, Logic Gates Prof. Sin-Min Lee Department of Computer Science 2x

4–54

How to use NAND gates to build a NOR gate?Truth Table

A B C D E Q

0 0 1 1 0 1

0 1 1 0 1 0

1 0 0 1 1 0

1 1 0 0 1 0Hint 1 : Use 4 NAND gates

Hint 2 : Use 3 NAND gates to build an OR gate

Hint 3 : Use a NOR gate to build a NOT gate

A

B

C

DQ

E

Hint 4 : Put the “NOT” gate after “OR” gate

Page 55: Lecture 3. Error Detection and Correction, Logic Gates Prof. Sin-Min Lee Department of Computer Science 2x

4–55

Page 56: Lecture 3. Error Detection and Correction, Logic Gates Prof. Sin-Min Lee Department of Computer Science 2x

4–56

Page 57: Lecture 3. Error Detection and Correction, Logic Gates Prof. Sin-Min Lee Department of Computer Science 2x

4–57

as Universal Logic Gates

• Any logic circuit can be built using only NAND gates, or only NOR gates. They are the only logic gate needed.

• Here are the NAND equivalents:

NAND and NOR

Page 58: Lecture 3. Error Detection and Correction, Logic Gates Prof. Sin-Min Lee Department of Computer Science 2x

4–58

NAND and NOR as Universal Logic Gates (cont)

• Here are the NOR equivalents:

• NAND and NOR can be used to reduce the number of required gates in a circuit.

Page 59: Lecture 3. Error Detection and Correction, Logic Gates Prof. Sin-Min Lee Department of Computer Science 2x

4–59

Chapter Two

Appendix A A.2,A.3,A.4, A.5

Practice Assignment

P.498 A.1,A.2,A.3,A.4,A.5,A.6