Week-5. Sequential Circuit Design. Acknowledgement: Most of the following slides are adapted from Prof. Kale's slides at UIUC, USA.

Similar documents
ELE2120 Digital Circuits and Systems. Tutorial Note 10

Synchronous Sequential Circuit Design

Sequential Circuit Analysis

Different encodings generate different circuits

The Design Procedure. Output Equation Determination - Derive output equations from the state table

ECEN 248: INTRODUCTION TO DIGITAL SYSTEMS DESIGN. Week 7 Dr. Srinivas Shakkottai Dept. of Electrical and Computer Engineering

Latches. October 13, 2003 Latches 1

Synchronous Sequential Logic

Sequential Circuit Design

ELE2120 Digital Circuits and Systems. Tutorial Note 9

ELCT201: DIGITAL LOGIC DESIGN

or 0101 Machine

Lecture 17: Designing Sequential Systems Using Flip Flops

Synchronous Sequential Logic. Chapter 5

14.1. Unit 14. State Machine Design

Sequential Logic Circuits

Sequential Logic. Rab Nawaz Khan Jadoon DCS. Lecturer COMSATS Lahore Pakistan. Department of Computer Science

Chapter 14 Sequential logic, Latches and Flip-Flops

CSE370 HW6 Solutions (Winter 2010)

Chapter 5 Synchronous Sequential Logic

Memory Elements I. CS31 Pascal Van Hentenryck. CS031 Lecture 6 Page 1

ELCT201: DIGITAL LOGIC DESIGN

Chapter 4. Sequential Logic Circuits

3. Complete the following table of equivalent values. Use binary numbers with a sign bit and 7 bits for the value

Boolean Algebra and Digital Logic 2009, University of Colombo School of Computing

11.1 As mentioned in Experiment 10, sequential logic circuits are a type of logic circuit where the output of

CprE 281: Digital Logic

Lecture (08) Synchronous Sequential Logic

Sequential vs. Combinational

Counters. We ll look at different kinds of counters and discuss how to build them

Digital Logic and Design (Course Code: EE222) Lecture 19: Sequential Circuits Contd..

Introduction EE 224: INTRODUCTION TO DIGITAL CIRCUITS & COMPUTER DESIGN. Lecture 6: Sequential Logic 3 Registers & Counters 5/9/2010

10/12/2016. An FSM with No Inputs Moves from State to State. ECE 120: Introduction to Computing. Eventually, the States Form a Loop

Q: Examine the relationship between X and the Next state. How would you describe this circuit? A: An inverter which is synched with a clock signal.

CS221: Digital Design. Indian Institute of Technology Guwahati

EE40 Lec 15. Logic Synthesis and Sequential Logic Circuits

Sequential Circuits Sequential circuits combinational circuits state gate delay

Chapter 7 Sequential Logic

Computers also need devices capable of Storing data and information Performing mathematical operations on such data

EET 310 Flip-Flops 11/17/2011 1

Menu. EEL3701 Classical Design

Ch 7. Finite State Machines. VII - Finite State Machines Contemporary Logic Design 1

King Fahd University of Petroleum and Minerals College of Computer Science and Engineering Computer Engineering Department

15.1 Elimination of Redundant States

Problem Set 9 Solutions

ENGG 1203 Tutorial _03 Laboratory 3 Build a ball counter. Lab 3. Lab 3 Gate Timing. Lab 3 Steps in designing a State Machine. Timing diagram of a DFF

Chapter 4 Part 2 Sequential Circuits

Digital Circuit Engineering

Analysis of Clocked Sequential Circuits

Introduction to Digital Logic

Sequential Logic (3.1 and is a long difficult section you really should read!)

FSM model for sequential circuits

Module - 19 Gated Latches

ELEC Digital Logic Circuits Fall 2014 Sequential Circuits (Chapter 6) Finite State Machines (Ch. 7-10)

Topic 8: Sequential Circuits

Lecture 14: State Tables, Diagrams, Latches, and Flip Flop

Let s now begin to formalize our analysis of sequential machines Powerful methods for designing machines for System control Pattern recognition Etc.

Synchronous Sequential Logic Part I. BME208 Logic Circuits Yalçın İŞLER

CS221: Digital Design. Dr. A. Sahu. Indian Institute of Technology Guwahati

EE 209 Logic Cumulative Exam Name:

COE 202: Digital Logic Design Sequential Circuits Part 3. Dr. Ahmad Almulhem ahmadsm AT kfupm Phone: Office:

I. Motivation & Examples

Digital Circuit Engineering

CPE100: Digital Logic Design I

Digital Circuits and Systems

UNIVERSITY OF BOLTON SCHOOL OF ENGINEERING BENG (HONS) ELECTRICAL & ELECTRONICS ENGINEERING EXAMINATION SEMESTER /2017

I. Motivation & Examples

WORKBOOK. Try Yourself Questions. Electrical Engineering Digital Electronics. Detailed Explanations of

CDA 3200 Digital Systems. Instructor: Dr. Janusz Zalewski Developed by: Dr. Dahai Guo Spring 2012

COEN 312 DIGITAL SYSTEMS DESIGN - LECTURE NOTES Concordia University

COE 202: Digital Logic Design Sequential Circuits Part 3. Dr. Ahmad Almulhem ahmadsm AT kfupm Phone: Office:

MAHALAKSHMI ENGINEERING COLLEGE TIRUCHIRAPALLI

Digital Logic: Boolean Algebra and Gates. Textbook Chapter 3

Synchronous Sequential Logic Part I

6 Synchronous State Machine Design

Lecture 10: Sequential Networks: Timing and Retiming

LOGIC CIRCUITS. Basic Experiment and Design of Electronics

Synchronous Sequential Circuit Design. Dr. Ehab A. H. AL-Hialy Page 1

Lecture 14 Finite state machines

Review for Final Exam

P2 (10 points): Given the circuit below, answer the following questions:

COE 202: Digital Logic Design Sequential Circuits Part 4. Dr. Ahmad Almulhem ahmadsm AT kfupm Phone: Office:

Time Allowed 3:00 hrs. April, pages

VLSI Physical Design Prof. Indranil Sengupta Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

Design of Sequential Circuits

Digital Electronics Sequential Logic

Synchronous Sequential Circuit

Sequential Logic Worksheet

King Fahd University of Petroleum and Minerals College of Computer Science and Engineering Computer Engineering Department

Chapter 6 Introduction to state machines

Topic 8: Sequential Circuits. Bistable Devices. S-R Latches. Consider the following element. Readings : Patterson & Hennesy, Appendix B.4 - B.

Fundamentals of Digital Design

CS/COE1541: Introduction to Computer Architecture. Logic Design Review. Sangyeun Cho. Computer Science Department University of Pittsburgh

University of Minnesota Department of Electrical and Computer Engineering

Chapter 5 Synchronous Sequential Logic

Vidyalankar S.E. Sem. III [ETRX] Digital Circuits and Design Prelim Question Paper Solution

Review: Designing with FSM. EECS Components and Design Techniques for Digital Systems. Lec 09 Counters Outline.

Logic design? Transistor as a switch. Layered design approach. CS/COE1541: Introduction to Computer Architecture. Logic Design Review.

Chapter 7. Sequential Circuits Registers, Counters, RAM

Digital Design. Sequential Logic

Transcription:

Week-5 Sequential Circuit Design Acknowledgement: Most of the following slides are adapted from Prof. Kale's slides at UIUC, USA.

Storing a value: SR = 00 What if S = 0 and R = 0? The equations on the right reduce to: Qnext = (0 + Q current) = Qcurrent Q next = (0 + Qcurrent) = Q current So when SR = 00, then Qnext = Qcurrent. Whatever value Q has, it keeps. This is exactly what we need to store values in the latch. Qnext = (R + Q current) Q next = (S + Qcurrent)

Setting the latch: SR = 10 What if S = 1 and R = 0? Since S = 1, Q next is 0, regardless of Qcurrent: Q next = (1 + Qcurrent) = 0 Then, this new value of Q goes into the top NOR gate, along with R = 0. Qnext = (0 + 0) = 1 So when SR = 10, then Q next = 0 and Qnext = Qnext = (R + Q current) Q next = (S + Qcurrent) 1. This is how you set the latch to 1. The S input stands for set. Notice that it can take up to two steps (two gate delays) from the time S becomes 1 to the time Qnext becomes 1. But once Qnext becomes 1, the outputs will stop changing. This is a stable state. S R Q 0 0 No change 0 1 0 (reset) 1 0 1 (set) 1 1 Avoid!

D latch When C = 0, so the state Q does not change. When C = 1, the latch output Q will equal the input D. C D Q 0 x No change 1 0 0 1 1 1

Positive Edge Triggering This is called a positive edge-triggered flip-flop. The flip-flop output Q changes only after the positive edge of C. The change is based on the flip-flop input values that were present right at the positive edge of the clock signal. The D flip-flop s behavior is similar to that of a D latch except for the positive edge-triggered nature, which is not explicit in this table. C D Q 0 x No change 1 0 0 (reset) 1 1 1 (set)

Flip-Flops - 1 An SR flip-flop. We will try not to use this due to the unpredictability after inputs 11. S R C S R Q next 0 x x No change 1 0 0 No change 1 0 1 0 (reset) 1 1 0 1 (set) 1 1 1 Unpredictable A D flip-flop. D C D Q next 0 x No change 1 0 0 1 1 1

Flip-Flops - 2 A JK flip-flop has inputs that act like S and R, but the inputs JK=11 are used to complement the flip-flop s current state. C J K Q next 0 x x No change 1 0 0 No change 1 0 1 0 (reset) 1 1 0 1 (set) 1 1 1 Q current A T flip-flop can only maintain or complement its current state. C T Q next 0 x No change 1 0 No change 1 1 Q current

Characteristic Tables J K Q(t+1) Operation 0 0 Q(t) No change 0 1 0 Reset 1 0 1 Set 1 1 Q (t) Complement D Q(t+1) Operation 0 0 Reset 1 1 Set T Q(t+1) Operation 0 Q(t) No change 1 Q (t) Complement

Characteristic Equations Characteristic Equations: the next state Q(t+1) is defined in terms of the current state Q(t) and inputs. D Q(t+1) Operation 0 0 Reset 1 1 Set Q(t+1) = D J K Q(t+1) Operation 0 0 Q(t) No change 0 1 0 Reset 1 0 1 Set 1 1 Q (t) Complement Q(t+1)= K Q(t) + JQ (t) T Q(t+1) Operation 0 Q(t) No change 1 Q (t) Complement Q(t+1)= T Q(t) + TQ (t) = T Q(t)

0 Analysis - 1 J K Q(t+1) Operation 0 0 Q(t) No change 0 1 0 Reset 1 0 1 Set 1 1 Q (t) Complement J1 = X Q0 K1 = X + Q0 J0 = X + Q1 K0 = X Present State I nputs FF I nputs Next State Outputs Q 1 Q 0 X J 1 K 1 J 0 K 0 Q 1 Q 0 Z_ current 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 1 0 0 1 0 0 1 0 1 1 0 1 1 0 0 0 1 1 0 1 1 0 0 1 0 1 0 0 0 0 1 1 1 1 0 1 0 1 0 1 1 0 0 1 0 1 1 0 1 1 1 1 0 0 0 1 1 1 0 1 1 0 0 1 1

1 Analysis - 2 input output Present State I nputs Next State Outputs Q 1 Q 0 X Q 1 Q 0 Z 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 1 0 0 0 1 1 0 1 0 1 0 0 1 1 0 1 0 1 0 1 0 1 1 0 0 0 0 1 1 1 0 1 1 0/0 1/0 00 1/0 01 0/0 1/1 1/0 0/0 11 0/0 10 state

2 Sequential Circuit Design In sequential circuit design, we turn some description into a working circuit. We first make a state table or diagram to express the computation. Then we can turn that table or diagram into a sequential circuit.

3 Sequence Recognizers A sequence recognizer is a special kind of sequential circuit that looks for a special bit pattern in some input. The recognizer circuit has only one input, X. One bit of input is supplied on every clock cycle. For example, it would take 20 cycles to scan a 20-bit input. This is an easy way to permit arbitrarily long input sequences. There is one output, Z, which is 1 when the desired pattern is found. Our example will detect the bit pattern 1001 : Inputs: 1 1 1 0 0 1 1 0 1 0 0 1 0 0 1 1 0 Outputs: 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0

Sequence Recognizers (Cont d.) 4 Inputs: 1 1 1 0 0 1 1 0 1 0 0 1 0 0 1 1 0 Outputs: 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 This requires a sequential circuit because the circuit has to remember the inputs from previous clock cycles, in order to determine whether or not a match was found. Here, one input and one output bit appear every clock cycle. Note that overlapping bit patterns are also detected.

5 A basic state diagram What state do we need for the sequence recognizer? We have to remember inputs from previous clock cycles. For example, if the previous three inputs were 100 and the current input is 1, then the output should be 1. In general, we will have to remember occurrences of parts of the desired pattern - in this case, 1, 10, and 100. 1/0 0/0 0/0 A B C D We ll start with a basic state diagram: State A B C D Meaning None of the desired pattern (1001) has been input yet. We ve already seen the f irst bit (1) of the desired pattern. We ve already seen the f irst two bits (10) of the desired pattern. We ve already seen the f irst three bits (100) of the desired pattern.

6 Overlapping occurrences of the pattern What happens if we re in state D (the last three inputs were 100), and the current input is 1? The output should be a 1, because we ve found the desired pattern. But this last 1 could also be the start of another occurrence of the pattern! For example, 1001001 contains two occurrences of 1001. To detect overlapping occurrences of the pattern, the next state 1/0 should be B. 0/0 0/0 A B C D 1/1 State A B C D Meaning None of the desired pattern (1001) has been input yet. We ve already seen the f irst bit (1) of the desired pattern. We ve already seen the f irst two bits (10) of the desired pattern. We ve already seen the f irst three bits (100) of the desired pattern.

Filling in the other arrows Remember that we need two outgoing arrows for each node, to account for the possibilities of X=0 and X=1. The remaining arrows are shown in blue. They also allow for the correct detection of 0/0 overlapping occurrences of 1001. 1/0 1/0 0/0 0/0 A B C D 0/0 1/0 1/1 State A B C D Meaning None of the desired pattern (1001) has been input yet. We ve already seen the f irst bit (1) of the desired pattern. We ve already seen the f irst two bits (10) of the desired pattern. We ve already seen the f irst three bits (100) of the desired pattern.

8 Finally, making the state table 1/0 0/0 1/0 0/0 0/0 A B C D 1/0 0/0 1/1 Remember how the state diagram arrows correspond to rows of the state table: present state input/output next state Present State I nput Next State Output A 0 A 0 A 1 B 0 B 0 C 0 B 1 B 0 C 0 D 0 C 1 B 0 D 0 A 0 D 1 B 1

9 Sequential Circuit Design Procedure Step 1: Make a state table based on the problem statement. The table should show the present states, inputs, next states and outputs. (It may be easier to find a state diagram first, and then convert that to a table.) Step 2: Assign binary codes to the states in the state table, if you haven t already. If you have n states, your binary codes will have at least log2 n digits, and your circuit will have at least log2 n flip-flops.

Sequential circuit design procedure 0 Step 3: For each flip-flop and each row of your state table, find the flip-flop input values that are needed to generate the next state from the present state. You can use flipflop excitation tables here. Step 4: Find simplified equations for the flip-flop inputs and the outputs. Step 5: Build the circuit!

1 Step 2: Assigning binary codes to states We have four states ABCD, so we need at least two flip-flops Q1Q0. The easiest thing to do is represent state A with Q1Q0 = 00, B with 01, C with 10, and D with 11 (intuiative). The state assignment can have a big impact on circuit complexity, but we won t worry about that too much in this class. Present State I nput Next State Output A 0 A 0 A 1 B 0 B 0 C 0 B 1 B 0 C 0 D 0 C 1 B 0 D 0 A 0 D 1 B 1 Present State I nput Next State Output Q 1 Q 0 X Q 1 Q 0 Z 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 1 0 0 0 1 1 0 1 0 1 0 0 1 1 0 1 0 1 0 1 0 1 1 0 0 0 0 1 1 1 0 1 1

2 Step 3: Finding flip-flop input values Next we have to figure out how to actually make the flip-flops change from their present state into the desired next state. This depends on what kind of flip-flops you use! We ll use two JKs. For each flip-flip Qi, look at its present and next states, and determine what the inputs Ji and Ki should be in order to make that state change. Present State I nput Next State Flip f lop inputs Output Q 1 Q 0 X Q 1 Q 0 J 1 K 1 J 0 K 0 Z 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 1 0 0 0 1 1 0 1 0 1 0 0 1 1 0 1 0 1 0 1 0 1 1 0 0 0 0 1 1 1 0 1 1

3 Finding JK flip-flop input values For JK flip-flops, this is a little tricky. Recall the characteristic table: J K Q(t+1) Operation 0 0 Q(t) No change 0 1 0 Reset 1 0 1 Set 1 1 Q (t) Complement If the present state of a JK flip-flop is 0 and we want the next state to be 1, then we have two choices for the JK inputs: We can use JK=10, to explicitly set the flip-flop s next state to 1. We can also use JK=11, to complement the current state 0. So to change from 0 to 1, we must set J=1, but K could be either 0 or 1. Similarly, the other possible state transitions can all be done in two different ways as well.

4 JK excitation table An excitation table shows what flip-flop inputs are required in order to make a desired state change. Q(t) Q(t+1) J K Operation 0 0 0 x No change/ reset 0 1 1 x Set/ complement 1 0 x 1 Reset/ complement 1 1 x 0 No change/ set This is the same information that s given in the characteristic J K Q(t+1) table, Operation but presented backwards. 0 0 Q(t) No change 0 1 0 Reset 1 0 1 Set 1 1 Q (t) Complement

5 Excitation Tables for all flip-flops Q(t) Q(t+1) D Operation 0 0 0 Reset 0 1 1 Set 1 0 0 Reset 1 1 1 Set Q(t) Q(t+1) J K Operation 0 0 0 x No change/ reset 0 1 1 x Set/ complement 1 0 x 1 Reset/ complement 1 1 x 0 No change/ set Q(t) Q(t+1) T Operation 0 0 0 No change 0 1 1 Complement 1 0 1 Complement 1 1 0 No change

6 Back to the Example We can now use the JK excitation table on the right to find the correct values for each flip-flop s inputs, based on its present and next states. Q(t) Q(t+1) J K 0 0 0 x 0 1 1 x 1 0 x 1 1 1 x 0 Present State I nput Next State Flip f lop inputs Output Q 1 Q 0 X Q 1 Q 0 J 1 K 1 J 0 K 0 Z 0 0 0 0 0 0 x 0 x 0 0 0 1 0 1 0 x 1 x 0 0 1 0 1 0 1 x x 1 0 0 1 1 0 1 0 x x 0 0 1 0 0 1 1 x 0 1 x 0 1 0 1 0 1 x 1 1 x 0 1 1 0 0 0 x 1 x 1 0 1 1 1 0 1 x 1 x 0 1

7 Step 4: Find equations (for the FF inputs and output) Now you can make K-maps and find equations for each of the four flip-flop inputs, as well as for the output Z. These equations are in terms of the present state and the inputs. The advantage of using JK flip-flops is that there are many don t care conditions, which can result in simpler equations. J1 = X Q0 K1 = X + Q0 Present Next State I nput State J0 = Flip X + f lop Q1inputs Output Q 1 Q 0 X Q 1 Q 0 K0 J 1 = X K 1 J 0 K 0 Z 0 0 0 0 0 0 x 0 x 0 0 0 1 0 1 Z 0= Q1Q0X x 1 x 0 0 1 0 1 0 1 x x 1 0 0 1 1 0 1 0 x x 0 0 1 0 0 1 1 x 0 1 x 0 1 0 1 0 1 x 1 1 x 0 1 1 0 0 0 x 1 x 1 0 1 1 1 0 1 x 1 x 0 1

8 Step 5: Build the Circuit Lastly, we use these simplified equations to build the completed circuit. J1 = X Q0 K1 = X + Q0 J0 = X + Q1 K0 = X Z = Q1Q0X

9 Timing Diagram Here is one example timing diagram for our sequence detector. The flip-flops Q1Q0 start in the initial state, 00. On the first three positive clock edges, X is 1, 0, and 0. These inputs cause Q1Q0 to change, so after the third edge Q1Q0 = 11. Then when X=1, Z becomes 1 also, meaning that 1001 was found. The output Z does not have to change 1at positive 2 3 clock 4 edges. Instead, it may change whenever X changes, since Z = Q1Q0X. CLK Q1 Q0 X Z

0 Building the same circuit with D flip-flops What if you want to build the circuit using D flip-flops instead? We already have the state table and state assignments, so we can just start from Step 3, finding the flip-flop input values. D flip-flops have only one input, so our table only needs two columns for D1 and D0. Present State I nput Next State Flip-f lop inputs Output Q 1 Q 0 X Q 1 Q 0 D 1 D 0 Z 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 1 0 0 0 1 1 0 1 0 1 0 0 1 1 0 1 0 1 0 1 0 1 1 0 0 0 0 1 1 1 0 1 1

1 D flip-flop input values (Step 3) The D excitation table is pretty boring; set the D input to whatever the next state should be. Q(t) Q(t+1) D Operation 0 0 0 Reset 0 1 1 Set 1 0 0 Reset 1 1 1 Set You don t even need to show separate columns for D1 and D0; you can just use the Next State columns. Present State I nput Next State Flip f lop inputs Output Q 1 Q 0 X Q 1 Q 0 D 1 D 0 Z 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 0 1 0 0 0 1 1 0 1 0 1 0 1 0 0 1 1 1 1 0 1 0 1 0 1 0 1 0 1 1 0 0 0 0 0 0 1 1 1 0 1 0 1 1 The same

2 Finding Equations (Step 4) You can do K-maps again, to find: D1 = Q1 Q0 X + Q1 Q0 X D0 = X + Q1 Q0 Z = Q1 Q0 X

3 Building the Circuit (Step 5)

4 Flip-flop comparison JK flip-flops are good because there are many don t care values in the flip-flop inputs, which can lead to a simpler circuit. D flip-flops have the advantage that you don t have to set up flip-flop inputs at all, since Q(t+1) = D. However, the D input equations are usually more complex than JK input equations In practice, D flip-flops are used more often. There is only one input for each flip-flop, not two. There are no excitation tables to worry about. D flip-flops can be implemented with slightly less hardware than JK flip-flops.

5 Summary The basic sequential circuit design procedure: Make a state table and, if desired, a state diagram. This step is usually the hardest. Assign binary codes to the states if you didn t already. Unused states can be treated as don t care conditions. Use the present states, next states, and flip-flop excitation tables to find the flip-flop input values. Write simplified equations for the flip-flop inputs and outputs and build the circuit. Next; how do we minimize the states to be used? Do we need that?

6 Work Design a sequential circuit that detects 01 patterns coming through an input line X. The circuit s output Z should be set 1 when a 01 pattern occurs and to 0 otherwise. X Z 01110001000010 01000001000010 Draw the state diagram of the circuit Derive the state table Implement using D-FF s Extend the state table for D-FF inputs Derive the expressions for D-FF inputs Draw the full circuit

7 State Reduction and Assignment Goal: Reduce the number of states while keeping the external inputoutput requirements. 2m states need m flip-flops, so reducing the states may reduce flipflops. If two states are equal, one can be removed but what are equal states?

8 State Reduction Example As an example consider the input sequence below: 010101110100 applied and start from state a. State a a b c d e f f g f g a Input 0 1 0 1 0 1 1 0 1 0 0 Output 0 0 0 0 0 1 1 0 1 0 0

9 State Reduction Example Present State Next State Output x=0 x=1 x=0 x=1 a a b 0 0 b c d 0 0 c a d 0 0 d e f 0 1 e a f 0 1 f g f 0 1 g a f 0 1

0 State Reduction Example Present State Next State Output x=0 x=1 x=0 x=1 a a b 0 0 b c d 0 0 c a d 0 0 d e f 0 1 e a f 0 1 f g f 0 1 g a f 0 1 States e and g are equal since for each member of the set of inputs, they give the same output and send the circuit either to the same state or an equivalent state.

1 State Reduction Example Present State Next State Output x=0 x=1 x=0 x=1 a a b 0 0 b c d 0 0 c a d 0 0 d e f 0 1 e a f 0 1 f g e f 0 1 g a f 0 1 Table and state diagram after the first reduction: state g is removed and replaced by state e.

2 State Reduction Example Present State Next State Output x=0 x=1 x=0 x=1 a a b 0 0 b c d 0 0 c a d 0 0 d e f 0 1 e a f 0 1 f e f 0 1 g a f 0 1 Table and state diagram after the first reduction: g is removed and replaced by state e. However, we now have NEW equal states: d and f

3 State Reduction Example Present State Next State Output x=0 x=1 x=0 x=1 a a b 0 0 b c d 0 0 c a d 0 0 d e d 0 1 e a d 0 1 f e f 0 1 g a f 0 1 Table and state diagram after the second reduction: f is removed and replaced by state d. If we apply the same input sequence: State a a b c d e d d e d e a input 0 1 0 1 0 1 1 0 1 0 0 output 0 0 0 0 0 1 1 0 1 0 0