Review for Exam 2 Using MUXs to implement logic Using ROMs to implement logic Timing Analysis The...

40
Review for Exam 2 Using MUXs to implement logic Using ROMs to implement logic Timing Analysis The internal structure of flip-flops Flip-flop timings Rising and falling edge triggered flip- flops Counters and state machines Generating next state equations from counter sequences. Implementation using RS, D, T and JK flip- flops Reading state sequence from timing diagrams Determining next states from schematics

Transcript of Review for Exam 2 Using MUXs to implement logic Using ROMs to implement logic Timing Analysis The...

Page 1: Review for Exam 2 Using MUXs to implement logic Using ROMs to implement logic Timing Analysis The internal structure of flip-flops Flip-flop timings Rising.

Review for Exam 2Using MUXs to implement logic

Using ROMs to implement logic

Timing Analysis

The internal structure of flip-flops

Flip-flop timings

Rising and falling edge triggered flip-flops

Counters and state machines

Generating next state equations from counter sequences.

Implementation using RS, D, T and JK flip-flops

Reading state sequence from timing diagrams

Determining next states from schematics

Moore vs. Mealy

Max frequency for a state machine

Verilog code

Page 2: Review for Exam 2 Using MUXs to implement logic Using ROMs to implement logic Timing Analysis The internal structure of flip-flops Flip-flop timings Rising.

Implementing Logic Functions With Muxes

Implement:

Z = A’B + BC’

4-to-1MUX Z

A B

I0

I1

I2

I3

for AB=00, Z=0

0A B

C 00 01 11 10

0 0 1 1 0

1 0 1 0 0

Page 3: Review for Exam 2 Using MUXs to implement logic Using ROMs to implement logic Timing Analysis The internal structure of flip-flops Flip-flop timings Rising.

Implementing Logic Functions With Muxes

Implement:

Z = A’B + BC’

4-to-1MUX Z

A B

I0

I1

I2

I3

0

for AB=01, Z=1

1

A B

C 00 01 11 10

0 0 1 1 0

1 0 1 0 0

Page 4: Review for Exam 2 Using MUXs to implement logic Using ROMs to implement logic Timing Analysis The internal structure of flip-flops Flip-flop timings Rising.

Implementing Logic Functions With Muxes

Implement:

Z = A’B + BC’

4-to-1MUX Z

A B

I0

I1

I2

I3

0

1

for AB=11, Z=C’

C’

A B

C 00 01 11 10

0 0 1 1 0

1 0 1 0 0

Page 5: Review for Exam 2 Using MUXs to implement logic Using ROMs to implement logic Timing Analysis The internal structure of flip-flops Flip-flop timings Rising.

Implementing Logic Functions With Muxes

Implement:

Z = A’B + BC’

4-to-1MUX Z

A B

I0

I1

I2

I3

0

1

C’

A B

C 00 01 11 10

0 0 1 1 0

1 0 1 0 0

0

Page 6: Review for Exam 2 Using MUXs to implement logic Using ROMs to implement logic Timing Analysis The internal structure of flip-flops Flip-flop timings Rising.

Implementing Logic Functions With Muxes

An alternate method

4-to-1MUX Z

A B

I0

I1

I2

I3

0

1

C’

0

Z = A’B + BC’

A=0 B=0

A=0 B=1

A=1 B=0

A=1 B=1

Z = 1 0 + 0 C’ = 0

Z = 1 1 + 1 C’ = 1

Z = 0 0 + 0 C’ = 0

Z = 0 1 + 1 C’ = C’

Page 7: Review for Exam 2 Using MUXs to implement logic Using ROMs to implement logic Timing Analysis The internal structure of flip-flops Flip-flop timings Rising.

Using a ROM For Logic

A B C F G H

0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 1

Specify a truth table for a ROM which implements: F = AB + A’BC’

G = A’B’C + C’

H = AB’C’ + ABC’ + A’B’C

Page 8: Review for Exam 2 Using MUXs to implement logic Using ROMs to implement logic Timing Analysis The internal structure of flip-flops Flip-flop timings Rising.

Using a ROM For Logic

A B C F G H

0 0 0 00 0 1 00 1 0 10 1 1 01 0 0 01 0 1 01 1 0 11 1 1 1

Specify a truth table for a ROM which implements: F = AB + A’BC’

G = A’B’C + C’

H = AB’C’ + ABC’ + A’B’C

Page 9: Review for Exam 2 Using MUXs to implement logic Using ROMs to implement logic Timing Analysis The internal structure of flip-flops Flip-flop timings Rising.

Using a ROM For Logic

A B C F G H

0 0 0 0 10 0 1 0 10 1 0 1 10 1 1 0 01 0 0 0 11 0 1 0 01 1 0 1 11 1 1 1 0

Specify a truth table for a ROM which implements: F = AB + A’BC’

G = A’B’C + C’

H = AB’C’ + ABC’ + A’B’C

Page 10: Review for Exam 2 Using MUXs to implement logic Using ROMs to implement logic Timing Analysis The internal structure of flip-flops Flip-flop timings Rising.

Using a ROM For Logic

Specify a truth table for a ROM which implements: F = AB + A’BC’

G = A’B’C + C’

H = AB’C’ + ABC’ + A’B’C

A B C F G H

0 0 0 0 1 00 0 1 0 1 10 1 0 1 1 00 1 1 0 0 01 0 0 0 1 11 0 1 0 0 01 1 0 1 1 11 1 1 1 0 0

Page 11: Review for Exam 2 Using MUXs to implement logic Using ROMs to implement logic Timing Analysis The internal structure of flip-flops Flip-flop timings Rising.

Timing Analysis

X

A

B = 1

C = 1

D

E

F A

B

AB

E

C

D

CD

F

E+F

X

Page 12: Review for Exam 2 Using MUXs to implement logic Using ROMs to implement logic Timing Analysis The internal structure of flip-flops Flip-flop timings Rising.

Timing Analysis

X

A

B = 1

C = 1

D

E

F A

B

AB

E

C

D

CD

F

E+F

X

Page 13: Review for Exam 2 Using MUXs to implement logic Using ROMs to implement logic Timing Analysis The internal structure of flip-flops Flip-flop timings Rising.

Timing Analysis

X

A

B = 1

C = 1

D

E

F A

B

AB

E

C

D

CD

F

E+F

X

Page 14: Review for Exam 2 Using MUXs to implement logic Using ROMs to implement logic Timing Analysis The internal structure of flip-flops Flip-flop timings Rising.

Timing Analysis

X

A

B = 1

C = 1

D

E

F A

B

AB

E

C

D

CD

F

E+F

X

Page 15: Review for Exam 2 Using MUXs to implement logic Using ROMs to implement logic Timing Analysis The internal structure of flip-flops Flip-flop timings Rising.

Timing Analysis

X

A

B = 1

C = 1

D

E

F A

B

AB

E

C

D

CD

F

E+F

X

Page 16: Review for Exam 2 Using MUXs to implement logic Using ROMs to implement logic Timing Analysis The internal structure of flip-flops Flip-flop timings Rising.

Timing Analysis

X

A

B = 1

C = 1

D

E

F A

B

AB

E

C

D

CD

F

E+F

X

Page 17: Review for Exam 2 Using MUXs to implement logic Using ROMs to implement logic Timing Analysis The internal structure of flip-flops Flip-flop timings Rising.

Timing Analysis

X

A

B = 1

C = 1

D

E

F A

B

AB

E

C

D

CD

F

E+F

X

Page 18: Review for Exam 2 Using MUXs to implement logic Using ROMs to implement logic Timing Analysis The internal structure of flip-flops Flip-flop timings Rising.

The internal structure of flip-flops

R

S

Q

Q’

GATE

GS

GRD

Q’

Q

GATE

D

CLK

Q

Q’

D-type Flip-Flop

Page 19: Review for Exam 2 Using MUXs to implement logic Using ROMs to implement logic Timing Analysis The internal structure of flip-flops Flip-flop timings Rising.

The internal structure of flip-flops

T-type Flip-Flop

CLK

Q

Q’

T

Page 20: Review for Exam 2 Using MUXs to implement logic Using ROMs to implement logic Timing Analysis The internal structure of flip-flops Flip-flop timings Rising.

The internal structure of flip-flops

JK-type Flip-Flop

CLK

Q

Q’

J

K

Page 21: Review for Exam 2 Using MUXs to implement logic Using ROMs to implement logic Timing Analysis The internal structure of flip-flops Flip-flop timings Rising.

Flip-flop timingsClock-to-Q

D

CLK

Q

Q’

tCLK Q = tNOT + tAND + 2 x tNOR

Page 22: Review for Exam 2 Using MUXs to implement logic Using ROMs to implement logic Timing Analysis The internal structure of flip-flops Flip-flop timings Rising.

CLK

D

Q

tCLK Q

time

Flip-flop timingsClock-to-Q

Page 23: Review for Exam 2 Using MUXs to implement logic Using ROMs to implement logic Timing Analysis The internal structure of flip-flops Flip-flop timings Rising.

D

CLK

Q

Q’

tsetup = tNOT + tAND + 2 x tNOR

Flip-flop timingsSetup time

Page 24: Review for Exam 2 Using MUXs to implement logic Using ROMs to implement logic Timing Analysis The internal structure of flip-flops Flip-flop timings Rising.

CLK

D

Q

tsetup

time

Flip-flop timingsSetup time

Page 25: Review for Exam 2 Using MUXs to implement logic Using ROMs to implement logic Timing Analysis The internal structure of flip-flops Flip-flop timings Rising.

D

CLK

Q

Q’

thold = tNOT

Flip-flop timingsHold time

Page 26: Review for Exam 2 Using MUXs to implement logic Using ROMs to implement logic Timing Analysis The internal structure of flip-flops Flip-flop timings Rising.

CLK

D

Q

thold = tNOT

time

Clock edge AND gate turns off, D can change

Flip-flop timingsHold time

Page 27: Review for Exam 2 Using MUXs to implement logic Using ROMs to implement logic Timing Analysis The internal structure of flip-flops Flip-flop timings Rising.

Flip Flop Timing

CLK

D

Q

tsetup

thold

tCLK Q

time

Page 28: Review for Exam 2 Using MUXs to implement logic Using ROMs to implement logic Timing Analysis The internal structure of flip-flops Flip-flop timings Rising.

D

CLK

Q

Q’

Falling Edge Triggered DFF

Rising and falling edge triggered flip-flops

Page 29: Review for Exam 2 Using MUXs to implement logic Using ROMs to implement logic Timing Analysis The internal structure of flip-flops Flip-flop timings Rising.

Rising Edge Triggered DFF

D

CLK

Q

Q’

Rising and falling edge triggered flip-flops

Page 30: Review for Exam 2 Using MUXs to implement logic Using ROMs to implement logic Timing Analysis The internal structure of flip-flops Flip-flop timings Rising.

Generating next state equations from counter sequences.

Desired count sequence = 00 01 00 10 11 00 …

If current state = 00, next state = ?????

Implemented count sequence = 000 001 100 110 011 000 …

Q2 Q1 Q0 N2 N1 N0

0 0 0 0 0 10 0 1 1 0 01 0 0 1 1 01 1 0 0 1 10 1 1 0 0 00 1 0 X X X1 0 1 X X X1 1 1 X X X

N2 = Q2 Q1’ + Q1’ Q0N1 = Q2N0 = Q2’ Q0’ + Q1 Q0’

Page 31: Review for Exam 2 Using MUXs to implement logic Using ROMs to implement logic Timing Analysis The internal structure of flip-flops Flip-flop timings Rising.

Implementation using RS, D, T and JK flip-flops

N/A111

N/A011

1101

Set1001

0110

Reset0010

1100

No change000 0

CommentQ+QRS

N/A111

N/A011

1101

Set1001

0110

Reset0010

1100

No change000 0

CommentQ+QRS

0111

Toggle1011

1101

Set1001

0110

Reset0010

1100

No change000 0

CommentQ+QKJ

0111

Toggle1011

1101

Set1001

0110

Reset0010

1100

No change000 0

CommentQ+QKJ

0x11

1x01

x110

x00 0

KJQ+Q

0x11

1x01

x110

x00 0

KJQ+Q

011

101

110

00 0

TQ+Q

011

101

110

00 0

TQ+Q

011

101

110

00 0

Q+QT

011

101

110

00 0

Q+QT

Page 32: Review for Exam 2 Using MUXs to implement logic Using ROMs to implement logic Timing Analysis The internal structure of flip-flops Flip-flop timings Rising.

Reading state sequence from timing diagrams

W

X

Y

Z

WXYZ = 0010, 0110, 0011, 0101, 1100, 1000, 1001, 1101, 1110, 0010

Page 33: Review for Exam 2 Using MUXs to implement logic Using ROMs to implement logic Timing Analysis The internal structure of flip-flops Flip-flop timings Rising.

Determining next states from schematics

Q0

Q2

CLK

Q1

CLK

CLK

Q2

D Q

D Q

D Q

Q2

Q1’

Q1’

Q0

Q2’

Q0’

Q1

Q0’

Q2 Q1 Q0

0 0 0

0 0 1 1 0 0 1 1 0

Initial state

Page 34: Review for Exam 2 Using MUXs to implement logic Using ROMs to implement logic Timing Analysis The internal structure of flip-flops Flip-flop timings Rising.

Moore vs. Mealy

Moore Mealy Outputs Function of Current

State Only Function of Current

State and Current I nputs Output Timing Outputs Available Af ter

Clock Transition (plus Gate Delays)

Outputs Available Anytime

(Af ter I nputs Stabilize) Delay Output Delayed One

Clock Cycle Output Available on Current Clock Cycle

Logic Requires more Requires less

Page 35: Review for Exam 2 Using MUXs to implement logic Using ROMs to implement logic Timing Analysis The internal structure of flip-flops Flip-flop timings Rising.

Max frequency for a state machine

Steps: 1. Determine the delay through the Flip Flops

2. Determine the delay through the IFL (max)

3. Add in setup time

4. Determine the smallest clock period possible

5. Max frequency = 1------------------clock period

Page 36: Review for Exam 2 Using MUXs to implement logic Using ROMs to implement logic Timing Analysis The internal structure of flip-flops Flip-flop timings Rising.

Structural Verilog Code

and (output, input1, input2, ……);

nand (output, input1, input2, ……);

or (output, input1, input2, ……);

nor (output, input1, input2, ……);

not (output, input1);

buf (output, input1);

xor (output, input1, input2, ……);

xnor (output, input1, input2, ……);

Page 37: Review for Exam 2 Using MUXs to implement logic Using ROMs to implement logic Timing Analysis The internal structure of flip-flops Flip-flop timings Rising.

module mux21(q, sel, a, b);input sel, a, b;output q; wire selbar, a1, a2;

not(selbar, sel);and(a1, selbar, a);and(a2, sel, b);or(q, a1, a2);

endmodule

a

sela1

ba2

q

selbar

Structural Verilog Code example

Page 38: Review for Exam 2 Using MUXs to implement logic Using ROMs to implement logic Timing Analysis The internal structure of flip-flops Flip-flop timings Rising.

Dataflow Verilog CodeOperator

TypeOperatorSymbol

OperationPerformed

# ofOperands Comments

Arithmetic *, /, +, - As expected 2

* and / take LOTS of hardware

% Modulo 2Logical ! Logic NOT 1 As in C

&& Logic AND 2 As in C|| Logic OR 2 As in C

Bitwise ~ Bitwise NOT 1 As in C& Bitwise AND 2 As in C| Bitwise OR 2 As in C^ Bitwise XOR 2 As in C~^ Bitwise XNOR 2

Relational <, >, <=, >= As expected 2 As in CEquality ==, != As expected 2 As in CReduction & Red. AND 1 Multi-bit input

~& Red. NAND 1 Multi-bit input| Red. OR 1 Multi-bit input~| Red. NOR 1 Multi-bit input^ Red. XOR 1 Multi-bit input~^ Red. XNOR 1 Multi-bit input

Shift << Left shift 2 Fill with 0's>> Right shift 2 Fill with 0's

Concat { } Concatenate Any numberReplicate { { } } Replicate Any numberCond ?: As expected 3 As in C

Page 39: Review for Exam 2 Using MUXs to implement logic Using ROMs to implement logic Timing Analysis The internal structure of flip-flops Flip-flop timings Rising.

Dataflow Verilog Code example

module mux21(q, sel, a, b);input sel, a, b;output q;

assign q = (~sel & a) | (sel & b); endmodule

module mux21(q, sel, a, b);input sel, a, b;output q;

assign q = sel?b:a; endmodule

OR

Page 40: Review for Exam 2 Using MUXs to implement logic Using ROMs to implement logic Timing Analysis The internal structure of flip-flops Flip-flop timings Rising.

Verilog Code Heirarchy

module mux41(q, sel, a, b, c, d);input[1:0] sel;input a, b, c, d;output q;wire tmp1, tmp2;

mux21 M0(tmp1, sel[0], a, b);mux21 M1(tmp2, sel[0], c, d);mux21 M2(q, sel[1], tmp1, tmp2);

endmodule

a

mux41

q

b c d

2sel

mux21mux21

mux21

sel[0]

sel[1]

a b c d

q

tmp1 tmp2