hamming code,decoders and d,t-flip flops prof. sin-min lee department of computer science

66
Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science

Upload: sarah-fowler

Post on 20-Jan-2016

216 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science

Hamming Code,Decoders andD,T-flip flops

Prof. Sin-Min LeeDepartment of Computer Science

Page 2: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science

Let us play a game !

A volunteer from the audience?

Pick a number, any number, between 1 and 50

Page 3: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science

Is the Number in Here?

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35

37 39 41 43 45 47 49

Page 4: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science

Is the Number in Here?

2 3 6 7 10 11 14 15 18 19 22 23 26 27 30 31 34 35

38 39 42 43 46 47 50

Page 5: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science

Is the Number in Here?

4 5 6 7 12 13 14 15 20 21 22 23 28 29 30 31 36 37

38 39 44 45 46 47

Page 6: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science

Is the Number in Here?

8 9 10 11 12 13 14 15 24 25 26 27 28 29 30 31 40

41 42 43 44 45 46 47

Page 7: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science

Is the Number in Here?

16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

49 50

Page 8: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science

Is the Number in Here?

32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47

48 49 50

Page 9: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science

And the Number is ….

Page 10: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science
Page 11: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science
Page 12: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science
Page 13: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science
Page 14: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science
Page 15: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science
Page 16: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science
Page 17: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science
Page 18: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science
Page 19: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science
Page 20: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science
Page 21: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science
Page 22: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science
Page 23: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science
Page 24: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science
Page 25: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science
Page 26: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science

Decoders

• Next, we’ll look at some commonly used circuits: decoders and multiplexers.– These serve as examples of the circuit analysis and

design techniques from last lecture.– They can be used to implement arbitrary functions.– We are introduced to abstraction and modularity as

hardware design principles.

• We often use decoders and multiplexers as building blocks in designing more complex hardware.

Page 27: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science

What a decoder does

• A n-to-2n decoder takes an n-bit input and produces 2n outputs. The n inputs represent a binary number that determines which of the 2n outputs is uniquely true.

• A 2-to-4 decoder operates according to the following truth table.– The 2-bit input is called S1S0, and the four outputs are Q0-Q3.– If the input is the binary number i, then output Qi is uniquely true.

• For instance, if the input S1 S0 = 10 (decimal 2), then output Q2 is true, and Q0, Q1, Q3 are all false.

• This circuit “decodes” a binary number into a “one-of-four” code.

S1 S0 Q0 Q1 Q2 Q3

0 0 1 0 0 00 1 0 1 0 01 0 0 0 1 01 1 0 0 0 1

Page 28: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science

How can you build a 2-to-4 decoder?• Follow the design procedures from last time! We

have a truth table, so we can write equations for each of the four outputs (Q0-Q3), based on the two inputs (S0-S1).

• In this case there’s not much to be simplified. Here are the equations:

S1 S0 Q0 Q1 Q2 Q3

0 0 1 0 0 00 1 0 1 0 01 0 0 0 1 01 1 0 0 0 1

Q0 = S1’ S0’Q1 = S1’ S0Q2 = S1 S0’Q3 = S1 S0

Page 29: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science

A picture of a 2-to-4 decoder

S1 S0 Q0 Q1 Q2 Q3

0 0 1 0 0 00 1 0 1 0 01 0 0 0 1 01 1 0 0 0 1

Page 30: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science

Enable inputs

• Many devices have an additional enable input, which is used to “activate” or “deactivate” the device.

• For a decoder,

– EN=1 activates the decoder, so it behaves as specified earlier. Exactly one of the outputs will be 1.

– EN=0 “deactivates” the decoder. By convention, that means all of the decoder’s outputs are 0.

• We can include this additional input in the decoder’s truth table:

EN S1 S0 Q0 Q1 Q2 Q3

0 0 0 0 0 0 00 0 1 0 0 0 00 1 0 0 0 0 00 1 1 0 0 0 0

1 0 0 1 0 0 01 0 1 0 1 0 01 1 0 0 0 1 01 1 1 0 0 0 1

Page 31: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science

An aside: abbreviated truth tables

• In this table, note that whenever EN=0, the outputs are always 0, regardless of inputs S1 and S0.

• We can abbreviate the table by writing x’s in the input columns for S1 and S0.

EN S1 S0 Q0 Q1 Q2 Q3

0 0 0 0 0 0 00 0 1 0 0 0 00 1 0 0 0 0 00 1 1 0 0 0 0

1 0 0 1 0 0 01 0 1 0 1 0 01 1 0 0 0 1 01 1 1 0 0 0 1

EN S1 S0 Q0 Q1 Q2 Q3

0 x x 0 0 0 0

1 0 0 1 0 0 01 0 1 0 1 0 01 1 0 0 0 1 01 1 1 0 0 0 1

Page 32: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science

• Decoders are common enough that we want to encapsulate them and treat them as an individual entity.

• Block diagrams for 2-to-4 decoders are shown here. The names of the inputs and outputs, not their order, is what matters

• A decoder block provides abstraction:– You can use the decoder as long as you know its truth table or

equations, without knowing exactly what’s inside.– It makes diagrams simpler by hiding the internal circuitry.– It simplifies hardware reuse. You don’t have to keep rebuilding

the decoder from scratch every time you need it.• These blocks are like functions in programming!

Blocks and abstraction

Q0 = S1’ S0’Q1 = S1’ S0Q2 = S1 S0’Q3 = S1 S0

Page 33: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science

A 3-to-8 decoder

• Larger decoders are similar. Here is a 3-to-8 decoder.– The block symbol is on the right.– A truth table (without EN) is below.– Output equations are at the bottom right.

• Again, only one output is true for any input combination.

S2 S1 S0 Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7

0 0 0 1 0 0 0 0 0 0 00 0 1 0 1 0 0 0 0 0 00 1 0 0 0 1 0 0 0 0 00 1 1 0 0 0 1 0 0 0 01 0 0 0 0 0 0 1 0 0 01 0 1 0 0 0 0 0 1 0 01 1 0 0 0 0 0 0 0 1 01 1 1 0 0 0 0 0 0 0 1

Q0 = S2’ S1’ S0’Q1 = S2’ S1’ S0Q2 = S2’ S1 S0’Q3 = S2’ S1 S0Q4 = S2 S1’ S0’Q5 = S2 S1’ S0Q6 = S2 S1 S0’Q7 = S2 S1 S0

Page 34: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science

So what good is a decoder?• Do the truth table and equations look familiar?

Decoders are sometimes called minterm generators.– For each of the input combinations, exactly one output is true.– Each output equation contains all of the input variables.– These properties hold for all sizes of decoders.

• This means that you can implement arbitrary functions with decoders. If you have a sum of minterms equation for a function, you can easily use a decoder (a minterm generator) to implement that function.

S1 S0 Q0 Q1 Q2 Q3

0 0 1 0 0 00 1 0 1 0 01 0 0 0 1 01 1 0 0 0 1

Q0 = S1’ S0’Q1 = S1’ S0Q2 = S1 S0’Q3 = S1 S0

Page 35: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science

Design example: addition

• Let’s make a circuit that adds three 1-bit inputs X, Y and Z.

• We will need two bits to represent the total; let’s call them C and S, for “carry” and “sum.” Note that C and S are two separate functions of the same inputs X, Y and Z.

• Here are a truth table and sum-of-minterms equations for C and S.

X Y Z C S

0 0 0 0 00 0 1 0 10 1 0 0 10 1 1 1 01 0 0 0 11 0 1 1 01 1 0 1 01 1 1 1 1 1 + 1 + 1 = 11

0 + 1 + 1 = 10

C(X,Y,Z) = m(3,5,6,7)S(X,Y,Z) = m(1,2,4,7)

Page 36: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science

• Here, two 3-to-8 decoders implement C and S as sums of minterms.

• The “+5V” symbol (“5 volts”) is how you represent a constant 1 or true in LogicWorks. We use it here so the decoders are always active.

Decoder-based adder

C(X,Y,Z) = m(3,5,6,7)S(X,Y,Z) = m(1,2,4,7)

Page 37: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science

Using just one decoder

C(X,Y,Z) = m(3,5,6,7)S(X,Y,Z) = m(1,2,4,7)

• Since the two functions C and S both have the same inputs, we could use just one decoder instead of two.

Page 38: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science
Page 39: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science
Page 40: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science
Page 41: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science
Page 42: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science

Multiplexers

• A combinational circuit that selects info from one of many input lines and directs it to the output line.

• The selection of the input line is controlled by input variables called selection inputs.

• They are commonly abbreviated as “MUX”.

Page 43: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science
Page 44: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science
Page 45: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science

Combinational circuit implementation using MUX

• We can use Multiplexers to express Boolean functions also.

• Expressing Boolean functions as MUXs is more efficient than as decoders.

• First n-1 variables of the function used as selection inputs; last variable used as data inputs.

• If last variable is called Z, then each data input has to be Z, Z’, 0, or 1.

Page 46: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science
Page 47: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science
Page 48: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science

Karnaugh Map Method of Multiplexer Implementation

Consider the function:

A is taken to be the data variable and B,C to be the select variables.

Page 49: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science

Example of MUX combo circuit • F(X,Y,Z) = m(1,2,6,7)

Page 50: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science
Page 51: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science

4 Basic types of Flip-Flops• SR, JK, D, and T• JK ff has 2 inputs, J and K need to be

asserted at the same time to change the state

• D ff has 1 input D (DATA), which sets the ff when D = 1 and resets it when D = 0

• T ff has1 input T (Toggle), which forces the ff to change states when T = 1

• SR ff has 2 inputs, S (set) and R (reset) that set or reset the output Q when asserted

Page 52: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science
Page 53: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science
Page 54: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science

Gated D-Latch

• Ensures S and R inputs never equal to 1 at the same time

• Useful in control application where setting or resetting a flag to some condition is needed

• Stores bits of information• Constructed from a gated SR latch and a Data

latch

Page 55: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science
Page 56: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science

Analysis of Sequential Systems

• Goal:– Decide the timing and functional behavior from the implementation

of a sequential system composed of FFs and logic gates

• Types:– Functional analysis– Timing analysis

Page 57: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science

Characteristic Equation of FFs

Page 58: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science

D Flip-Flop

Characteristics :SynchronousAvoids the instability of RS flip-flopRetains its last input value

To set the ff, place 1 on D input and pause the CK inputTo reset, place 1 on D input and pause the CK input

D Q+

0

1

0

1

Q+ = Next State

Page 59: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science

T Flip-Flop

T Q+

0

1

Q

Q’

T = 1 force the state change

T = 0 state remain the same

Q

QSET

CLR

DT

Page 60: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science

T

CLK

Q1

Page 61: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science

T

CLK

Q1

Page 62: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science

How to use D to implement T Flip-Flop

T Q+

0

1

Q

Q’

Q+ 0 1

T 0

1

0 1

1 0

D = TQ’ + T’Q

D Q+

0

1

0

1

Page 63: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science

How to use D to implement T Flip-Flop

Q

QSET

CLR

D

D = TQ’ + T’Q

T

Page 64: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science

How to use T to implement D Flip-Flop

T Q+

0

1

Q

Q’

D Q+

0

1

0

1T = DQ’ + D’Q

Q+ 0 1

D

0

1

0 1

1 0

Page 65: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science

How to use T to implement D Flip-Flop

Q

QSET

CLR

DT

T = DQ’ + D’Q

D

Page 66: Hamming Code,Decoders and D,T-flip flops Prof. Sin-Min Lee Department of Computer Science

Edge and level-triggered Flip Flop

• Digital circuit often form loops, flip-flops oscillations can

• Oscillation will not occur because by the time an output change cause an input change, the activating edge of the CK signal will be gone

• Positive edge triggered – ff responds to a positive going edge of clock

• Negative edge triggered – responds to a negative-going edge