Fundamentals of Logic Design 6th Edition Chapter 13

May 3, 2017 | Author: Huy Hoang | Category: N/A
Share Embed Donate


Short Description

Textbook chapter 13...

Description

Unit 13 Problem Solutions 13.2

Notice that this is a shift register. At each falling clock edge, Q3 takes on the value Q2 had right before the clock edge, Q2 takes on the value Q1 had right before the clock edge, and Q1 takes on the value X had right before the clock edge. For example, if the initial state is 000 and the input sequence is X = 1100, the state sequence is = 100, 110, 011, 001, and the output sequence is Z = (0)0011. Z is always Q3, which does not depend on the present value of X. So it’s a Moore machine. See FLD p. 653 for the state graph.

13.3 (a) A+ = AKA' + A'JA= A (B' + X) + A'(BX' + B'X) B + = B'JB + BKB' = AB'X + B (A' + X') Z = AB A+ A B

X

B+ 0

1

00

0

1

01

1

11 10

X

A B

0

1

00

0

0

0

01

1

1

0

1

11

1

0

1

1

10

0

1

Present State

Next State (A+B +)

AB

X=0 X=1 00 10 11 01 01 10 10 11

00 01 11 10 0 0

13.3 (b) X = 0 1 1 0 0 AB = 00 00 10 11 01 11 Z = (0) 0 0 1 0 1

1

1

00 0

10 0

Z 0 0 1 0

0 11 1

1

0

01 0

1

13.3 (c) See FLD p. 653 for solution.

13.4 (a) Q2 Q3

X Q1 00

01

11

10

Q2 Q3

X Q1 00

01

11

10

X Q1 00

01

11

10

Q2 Q3

X Q1 00

01

11

10

0

0

1

1

00

1

1

1

1

00

1

01

1

1

1

1

01

0

0

1

1

1

1

11

0

0

1

1

11

1

1

0

0

0

0

10

0

0

1

1

10

1

1

0

0

00

0

0

0

0

00

0

0

0

0

01

0

0

0

0

01

1

1

1

11

0

0

0

0

11

1

1

10

1

1

1

1

10

0

0

Q1+ = D1

Q2 Q3

Q 3+ = D 3

Q2+ = D2

Z

Z depends on the input X, so this is a Mealy machine. Because there are more than 2 state variables, we cannot put the state table in Karnaugh Map order (i.e. 00, 01, 11, 10), but we can still read the next state and output from the Karnaugh map. For example, when the input is X = 1 and the state is Q1Q2Q3 = 110, we can read the next state and output from the XQ1Q2Q3 = 1110 position in the Karnaugh maps for Q1+, Q2+, Q2+, and Z. So in this case, the next state is Q1+Q2+Q3+ = 101 and the output is Z = 0. The entire table can be derived from the Karnaugh maps in this manner. Note: We can also fill in the state table directly from the equations, without using Karnaugh maps. See FLD p. 653 for the state table and state graph.

13.4 (b - d) See FLD p. 654 for solutions.

91

13.5 (b)

13.5 (a) Mealy machine, because the output, Z, depends on the input X as well as the present state.

Z B C

13.5 (c - d) See FLD p. 654 for solutions.

X A 00

01

11

10

00

0

0

1

1

01

0

0

1

1

11

1

1

0

0

10

1

1

0

0

Note: Not all Karnaugh map entries are needed. See FLD p. 654 for the state table. 13.6 (a) After a rising clock edge, it takes 4 ns for the flip-flop outputs to change. Then the ROM will take 8 ns to respond to the new flip-flop outputs. The ROM outputs must be correct at the flip-flop inputs for at least the setup time of 2 ns before the next rising clock edge. So the minimum clock period is (4 + 8 + 2) ns = 14 ns. 13.6 (b) The correct output sequence is 0101. See FLD p. 655 for the timing diagram. 13.6 (c) Read the state transition table from ROM truth table. See FLD p. 655 for the state graph and table. Present State

Q1Q2 00 01 10 11

Next State (Q1+Q2 +)

Z X=0 X=1 X=0 X=1 10 10 0 0 00 11 0 0 11 01 0 1 01 11 1 1

Alternate solution: Using Karnaugh map order, swap states S2 and S3 in the graph and table. 13.7 (a) Notice that Z depends on the input X, so this is a Mealy machine. Q1+ = J1Q1' + K1'Q1 = XQ1'Q2 + X'Q1 Q2+ = J2Q2' + K2'Q2 = XQ1'Q2' + X'Q2 Z = Q2 ⊕ X = XQ2' + X'Q2

State

Present State

S0 S1 S2 S3

Q1Q2 00 01 11 10

Next State (Q1+Q2+)

Q1 Q2

Z

X

0

1

00

0

0

01

0

11 10

Alternate solution: Swap states S2 and S3.

92

X

0

1

00

0

1

1

01

1

1

0

11

1

0

10

Q1+

X=0 X=1 X=0 X=1 00 01 0 1 01 10 1 0 11 00 1 0 10 00 0 1

Q1 Q2

X

0

1

00

0

1

0

01

1

0

1

0

11

1

0

0

0

10

0

1

Q2+

Q1 Q2

Z

0

1

S2

0 1

0

1

1

S3

0

1

1 0

S1

0

Clock X Q1

S0

1 0

13.7 (b)

0

Q2 Z

1

{

13.7 (a) (contd)

false

13.8 (a) Notice that Z does not depend on this input X, so this is a Moore machine. Q1+ = X1X2Q1 + Q1Q2 + X1Q2 Q2+ = Q1' (X1 + X2) + Q2 (X1' + X2') = X1Q1' + X2Q1' + X1'Q2 + X2'Q2 Z = Q1Q2' Q1 Q2

X1 X2 00 01

11

10

Q1 Q2

X1 X2 00 01

1

1

1

0

0

1

1

01

1

1

1

1

1

0

0

1

1

11

1

1

0

1

1

0

10

0

0

0

0

0

0

01

0

0

1

11

1

1

10

0

0

Q1+

S0 S1 S2 S3

0

1

0

Q1Q2 00 01 11 10

Q1

Q2

0

0

Present State

10

00

00

State

11

Z

Q2+ Next State X1X2

00 00 01 11 00

01 01 01 11 00

11 01 11 10 10

Z 10 01 11 11 00

00

00, 01 S0

01, 10, 11

0

0 0 0 1

0

00, 01, 10 S3 1

11

S1

11

10, 11 S2 0

00, 01, 10

13.9

13.8 (b)

Clock

Clock

X1

X Q1

X2

Q2 Q3

Q1

Z {

Q2

false

Correct output: Z = 1, 0, 1, 1

Z Correct output: Z = 0, 0, 0, 1, 1, 0

93

13.10

Clock X Q1 Q2 Q3 {

{

Z false

false

Correct output: Z = 0, 0, 1, 1

13.11 (a) Q2 Q3

X Q1 00

01

11

10

Q2 Q3

X Q1 00

01

11

10

Q2 Q3

X Q1 00

01

11

10

01

11

10

0

0

1

1

1

01

0

0

1

1

1

1

11

1

1

0

0

0

1

1

10

1

1

0

0

D3 =

Q 3+

0

0

0

1

00

0

0

0

0

00

1

1

1

1

01

0

0

0

1

01

1

1

1

1

01

1

1

1

11

0

0

0

1

11

1

1

1

1

11

0

0

10

1

1

1

1

10

1

1

0

0

10

0

D2 =

Q 2+

D 1 = Q 1+ Present State

S0 S1 S2 S3 S4 S5 S6 S7

Q1Q2Q3 000 001 010 011 100 101 110 111

Next State (Q1+Q2+Q3+)

Z

0

X=0 X=1 X=0 X=1 001 101 0 1 011 111 0 1 110 101 1 0 010 111 1 0 001 001 0 1 011 011 0 1 110 101 1 0 010 011 1 0

S0 0

0 1

0, 1

S4

0

1

0

S3 1

1

S7

0

1

1

0, 1 0

0

1

Z

1

0

S1

1

S5 1

0 0

1

1

0

0

0

1

S6

1

S2

13.11 (c) From diagram: 0, 1, (0), 1, 0, 1 From graph: 0, 1, 1, 0, 1 (they are the same, except for the false output)

Clock X Q1

13.11 (d) Change the input on the falling edge of the clock (assuming negligible circuit delays).

Q2 Q3 Z {

13.11 (b)

State

X Q1 00

00

00

Q2 Q3

false

94

13.12 (a) Q2 Q3

X Q1 00

01

11

10

Q2 Q3

X Q1 00

01

11

10

Q2 Q3

X Q1 00

01

11

10

00

1

1

0

0

00

0

1

1

1

00

0

0

1

1

01

0

0

0

0

01

0

0

1

1

01

0

0

1

11

0

0

0

0

11

0

0

0

0

11

0

1

10

1

1

0

0

10

0

1

1

0

10

0

1

13.12 (b)

State

Present State

S0 S1 S2 S3 S4 S5 S6 S7

Q1Q2Q3 000 001 010 011 100 101 110 111

Next State (Q1+Q2+Q3+)

1

Z

X=0 X=1 X=0 X=1 100 011 1 0 000 011 0 1 100 000 1 0 000 000 0 1 110 011 1 0 000 011 0 1 111 011 1 0 001 001 0 1

0

01

11

10

00

1

1

0

0

1

01

0

0

1

1

1

0

11

0

0

1

1

1

0

10

1

1

0

0

1

S0 0

0

0

1 0, 1

0

1

S5 0

0

1

1

1

S3 1

S1

Z

0

S2 0

1

S4

0

0

1

0

S6 0

1 0

1

1

0, 1

1

S7

13.12 (c) From diagram: 1 0 1 (0) 1 1 From graph: 1 0 1 1 1 (they are the same, except for the false output)

X Clock

Q1

13.12 (d) Change the input on the falling edge of the clock (assuming negligible circuit delays).

Q2

{

Q3 Z

X Q1 00

D3 = Q 3+

D 2 = Q 2+

D 1 = Q 1+

Q2 Q3

false

13.13

Clock Cycle Information Gathered 1 Q1Q2 = 00, X = 0 ⇒ Z = 1, Q1+Q2+ = 01 2 Q1Q2 = 01, X = 0 ⇒ Z = 0; X = 1 ⇒ Z = 1, Q1+Q2+ = 11 3 Q1Q2 = 11, X = 1 ⇒ Z = 1; X = 0 ⇒ Z = 0, Q1+Q2+ = 10 4 Q1Q2 = 10, X = 0 ⇒ Z = 1; X = 1 ⇒ Z = 0, Q1+Q2+ = 00 5 Q1Q2 = 00, X = 1 ⇒ Z = 0, Q1+Q2+ = 10 6 Q1Q2 = 10, X = 1 ⇒ (Z = 0); X = 0 ⇒ (Z = 1), Q1+Q2+ = 11 7 Q1Q2 = 11, X = 0 ⇒ (Z = 0); X = 1 ⇒ (Z = 1), Q1+Q2+ = 01 8 Q1Q2 = 01, X = 1 ⇒ (Z = 1); X = 0 ⇒ (Z = 0), Q1+Q2+ = 00 9 Q1Q2 = 00, X = 0 ⇒ (Z = 1) Note: Information inside parentheses was already obtained in a previous clock cycle.

Present State

Next State (Q1+Q2+)

Q1Q2

X=0 X=1 01 10 00 11 11 00 10 01

00 01 10 11

0

00 1

1

0

01 1

0

0 1 0 1 0

0

0

0

10

95

0

1

Z

1 0

1

11

1

1

1 0 1 0 1

13.14

13.15

Clock Cycle Information Gathered 1 Q1Q2 = 00, X = 0 ⇒ Z = 0, Q1+Q2+ = 10 2 Q1Q2 = 10, X = 0 ⇒ Z = 1; X = 1 ⇒ Z = 0, Q1+Q2+ = 01 3 Q1Q2 = 01, X = 1 ⇒ Z = 0; X = 0 ⇒ Z = 1, Q1+Q2+ = 10 4 Q1Q2 = 10, X = 0 ⇒ (Z = 1), Q1+Q2+ = 11 5 Q1Q2 = 11, X = 0 ⇒ Z = 0, Q1+Q2+ = 11 6 Q1Q2 = 11, X = 0 ⇒ (Z = 0); X = 1 ⇒ Z = 1, Q1+Q2+ = 01 7 Q1Q2 = 01, X = 1 ⇒ (Z = 0), Q1+Q2+ = 00 8 Q1Q2 = 00, X = 1 ⇒ Z = 1, Q1+Q2+ = 11 9 Q1Q2 = 11, X = 1 ⇒ (Z = 1) Note: Information inside parentheses was already obtained in a previous clock cycle.

Clock Cycle 1 2 3 4 5

Present State

Next State (Q1+Q2+)

Q1Q2

X=0 X=1 10 11 10 00 11 01 11 01

00 01 10 11 00 1

0

11

Note: When Q1Q2 = 01, the outputs Z1Z2 vary depending on the inputs X1X2, so this is a Mealy machine.

13.16 (a)

Q1+Q2+

Z1Z2

X1X2=

Q1Q2 00 01 11 10

00 01 11 10 00 01 11 10 ? 01 ? ? ? 10 ? ? ? 11 ? 10 ? 01 11 10 ? ? ? ? ? 01 ? ? ? ? 01 ? ? ? 00 00

X1X2=

X1 X2 Clock Q1 Q2 Z1 Z2 false

Correct output: Z1Z2 = 10, 10, 00, 01

96

1

0

0

0

0 0 1 1 0

1 1 0 0 1

0

01 1

1

Information Gathered Q1Q2 = 00, X1X2 = 01 ⇒ Z1Z2 = 10, Q1+Q2+ = 01 Q1Q2 = 01, X1X2 = 01 ⇒ Z1Z2 = 01; X1X2 = 10 ⇒ Z1Z2 = 10, Q1+Q2+ = 10 Q1Q2 = 10, X1X2 = 10 ⇒ Z1Z2 = 00; X1X2 = 11 ⇒ Z1Z2 = 00, Q1+Q2+ = 01 Q1Q2 = 01, X1X2 = 11 ⇒ Z1Z2 = 11; X1X2 = 01 ⇒ (Z1Z2 = 01), Q1+Q2+ = 11 Q1Q2 = 11, X1X2 = 01 ⇒ Z1Z2 = 01

Present State

1

Z

1

0

0

0

10 1

1

13.16 (b)

Present State

X1X2=

Q1Q2 00 01 10 11

00 00 11 11 10

Q1+Q2+

01 00 11 00 01

10 01 10 11 10

11 01 10 00 01

00 10 00 00 00

01 10 10 00 00

10 11 10 10 01 11 01 01 00 00

13.17 Transition table using a straight binary state assignment: State

Present State

S0 S1 S2 S3 S4

Q1Q2Q3 000 001 010 011 100

00 10 01 10

Z1Z2

X1X2=

00 01 00 11 01

10

10 11 10 , 10 10 11 01, 11 00 10 00 , 01 00 10 00, 00

01 01 00 11 00

00 00 01 10

11

Clock

X

Next State (Q1+Q2+Q3+)

Z

Q1

X=0 X=1 X=0 X=1 001 011 0 0 010 011 0 0 001 011 0 1 100 000 0 0 011 000 0 1

Q2 Q3 Z Correct output: Z = 0, 0, 1, 0, 0, 1

13.18 (a)

5ns

10ns

15ns

20ns

25ns

30ns

35ns

Clock

X A

B JA

KA

JB = KB Z All flip-flop inputs are stable for more than the setup time before each falling clock edge. So the circuit is operating properly. 13.18 (b) If X is changed early enough: Minimum clock period = Flip-flop propagation delay + Two NAND-gate delays + Setup time = 4 + (3 + 3) + 2 = 12 ns X can change as late as 8 ns (two NAND-gate delays plus the setup time) before the next falling edge without causing improper operation.

97

13.19

Correct output: Z = 1 0 1 0 1

Clock

Deriving the State Table: JK flip-flop equation: Q+ = JQ' + K'Q ∴ A+ = (X'C + XC') A' + X'A [As, JA = X'C + XC', KA = X, Q = A] = A'X'C + A'XC' + X'A Similarly, B+ = XC' + XA + X'A'C C+ = 0' · C + (XB'A) · C' = C + XB'A Z = XB + X'C' + X'B'A

A B C X

{

Z

false

A+ B C

B+

X A 00

01

11

10

00

0

1

0

1

01

1

1

0

11

1

1

10

0

1

B C

X A 00

C+ 01

11

10

00

0

0

1

1

0

01

1

0

1

0

0

11

1

0

0

1

10

0

0

B C

Z

X A 00

01

11

10

00

0

0

1

0

0

01

1

1

1

1

0

11

1

1

1

1

10

0

0

X A 00

B C

01

11

10

00

1

1

0

0

1

01

0

1

0

0

1

1

11

0

0

1

1

0

0

10

1

1

1

1

From the Karnaugh maps, we can get the state table that follows:

13.20 (contd)

State

Present State

S0 S1 S2 S3 S4 S5 S6 S7

ABC 000 001 010 011 100 101 110 111

State

Present State

S0 S1 S2 S3

AB 00 01 10 11

X1X2=

00 11 11 10 10

13.20

Next State (A+B+C+)

Z

X=0 X=1 X=0 X=1 000 110 1 0 111 001 0 0 000 110 1 1 111 001 0 1 100 011 1 0 101 011 1 0 100 010 1 1 101 011 0 1

A+B+

01 01 01 00 00

10 10 01 10 11

X1X2=

11 00 01 10 01

00 10 11 01 00

T = X1'BA + X1'B'A' B+ = BT' + B'T = B(X1'BA + X1'B'A')' B' (X1'BA + X1'B'A')' = B [(X1'BA)' (X1'B'A')'] + X1'B'A' = B [(X1 + B' + A') (X1 + B + A)] + X1'B'A' = (BX1 + BA') (X1 + B + A) + X1'B'A' = BX1 + BX1 + BX1A + BA'X1 + BA' + X1'B'A' = X1B(1 + 1 + A + A') + A' (B + X1'B) = X1B + A'B + X1'A'

Z1Z2

01 10 00 00 00

10 00 11 01 00

R = X2 (X1' + B) S = X2' (X1' + B') A+ = A[(X2 ) (X1' + B)]' + X2' (X1' + B') = A (X2' + X1B') + X2'X1' + X2'B' A+ = AX2' + AX1B' + X2'X1' + X2'B'

01 10 11 00 11 00

11 00 00 00 00

01 10

S1 00 11

11

11

00

S0

00 00 10 10 00

S3

98

10 00

00 00

10 00

01 00

S2 00 10 11 01 01 00

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF