Digital Circuit Engineering

Similar documents
Digital Circuit Engineering

or 0101 Machine

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

Models for representing sequential circuits

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

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

14.1. Unit 14. State Machine Design

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

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

Latches. October 13, 2003 Latches 1

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

CARLETON UNIVERSITY Final rev EXAMINATION Fri, April 22, 2005, 14:00

EECS150 - Digital Design Lecture 23 - FSMs & Counters

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

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

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

Synchronous Sequential Circuit Design. Digital Computer Design

EECS Components and Design Techniques for Digital Systems. FSMs 9/11/2007

EET 310 Flip-Flops 11/17/2011 1

Learning Objectives:

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

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

Synchronous Sequential Logic

Different encodings generate different circuits

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

Sequential Circuits Sequential circuits combinational circuits state gate delay

Logic Design II (17.342) Spring Lecture Outline

Module - 19 Gated Latches

Synchronous Sequential Circuit Design

6. Finite State Machines

CISC 4090: Theory of Computation Chapter 1 Regular Languages. Section 1.1: Finite Automata. What is a computer? Finite automata

Sequential Circuit Design

Chapter 6 Introduction to state machines

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

ELCT201: DIGITAL LOGIC DESIGN

Department of Electrical & Electronics EE-333 DIGITAL SYSTEMS

EECS 270 Midterm 2 Exam Answer Key Winter 2017

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

Chapter 1 Review of Equations and Inequalities

Review for B33DV2-Digital Design. Digital Design

Introduction to Digital Logic

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

CARLETON UNIVERSITY. Deparment of Electronics ELEC 2607 Switching Circuits January 19, Overview;

EE40 Lec 15. Logic Synthesis and Sequential Logic Circuits

Week-I. Combinational Logic & Circuits

CSCI 2150 Intro to State Machines

ENGG 1203 Tutorial_9 - Review. Boolean Algebra. Simplifying Logic Circuits. Combinational Logic. 1. Combinational & Sequential Logic

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

Digital Electronics Sequential Logic

CARLETON UNIVERSITY Final EXAMINATION April 16, 2003

CprE 281: Digital Logic

CE1911 LECTURE FSM DESIGN PRACTICE DAY 1

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

Topic 8: Sequential Circuits

Chapter 4 Part 2 Sequential Circuits

CARLETON UNIVERSITY. X = Y 0 0 X > Y 1 0 X < Y 0 1 never 1 1 happens. Examples

Lecture 10: Synchronous Sequential Circuits Design

Written reexam with solutions for IE1204/5 Digital Design Monday 14/

Digital electronics form a class of circuitry where the ability of the electronics to process data is the primary focus.

Mealy & Moore Machines

CSE370 HW6 Solutions (Winter 2010)

Synchronous Sequential Circuit

Lecture 14 Finite state machines

CPE100: Digital Logic Design I

of Digital Electronics

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

Chapter 1: Logic systems

IE1204 Digital Design. L10: State Machines (Part 2) Masoumeh (Azin) Ebrahimi Elena Dubrova

Lecture 8: Sequential Networks and Finite State Machines

Laboratory Exercise #8 Introduction to Sequential Logic

Contents. Chapter 3 Combinational Circuits Page 1 of 36

ELCT201: DIGITAL LOGIC DESIGN

EECS150 - Digital Design Lecture 23 - FFs revisited, FIFOs, ECCs, LSFRs. Cross-coupled NOR gates

Boolean Algebra. Digital Logic Appendix A. Postulates, Identities in Boolean Algebra How can I manipulate expressions?

CpE358/CS381. Switching Theory and Logical Design. Class 16

Parity Checker Example. EECS150 - Digital Design Lecture 9 - Finite State Machines 1. Formal Design Process. Formal Design Process

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

Boolean Algebra. Digital Logic Appendix A. Boolean Algebra Other operations. Boolean Algebra. Postulates, Identities in Boolean Algebra

Chapter 3. Digital Design and Computer Architecture, 2 nd Edition. David Money Harris and Sarah L. Harris. Chapter 3 <1>

Sequential Synchronous Circuit Analysis

FSM model for sequential circuits

Boolean circuits. Lecture Definitions

Digital Logic Appendix A

School of Computer Science and Electrical Engineering 28/05/01. Digital Circuits. Lecture 14. ENG1030 Electrical Physics and Electronics

Chapter 3. Chapter 3 :: Topics. Introduction. Sequential Circuits

EECS150 - Digital Design Lecture 16 Counters. Announcements

State Graphs FSMs. Page 1

Chapter 5 Synchronous Sequential Logic

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


Boolean Algebra and Digital Logic

Part 1: Digital Logic and Gates. Analog vs. Digital waveforms. The digital advantage. In real life...

CSC9R6 Computer Design. Practical Digital Logic

ESE 570: Digital Integrated Circuits and VLSI Fundamentals

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

Designing Information Devices and Systems I Fall 2018 Lecture Notes Note Introduction to Linear Algebra the EECS Way

15.1 Elimination of Redundant States

EECS 270 Midterm Exam 2 Fall 2009

EECS150 - Digital Design Lecture 11 - Shifters & Counters. Register Summary

Fundamentals of Boolean Algebra

Transcription:

Digital Circuit Engineering 2nd Distributive ( + A)( + B) = + AB Circuits that work in a sequence of steps Absorption + A = + A A+= THESE CICUITS NEED STOAGE TO EMEMBE WHEE THEY AE STOAGE D MU G M MU S G CLK D Flip Flop Carleton University 29 Seq2FSM_H.fmI p. evised; March 8, 2 Slide i Finite State Machines Definition of a State Sequencing of States State Graphs State Tables State Table to Karnaugh Map to Circuit Mealy and Moore Outputs Constructing The Output Circuits From The State Table Properties of Mealy and Moore Outputs Overview of Designing Finite State Machines Construction of State Graphs Examples Toggle Flip Flop Detecting an Input Sequence Carleton University Seq2FSM_H.fm p., evised; March 8, 2 Comment on Slide i

Sequential Circuits Sequential Circuits Perform a sequence of steps They calculate the next output from: ) The last output (step). 2) Present inputs, if any. Must remember the last step Hence they use storage They also do logical calculation Hence they need gates Example : A light flashing sequencer 267-LB 267-LB Example 2: A counter 267-LB Sequential Circuit Storage and Feedback a D C D C D C P Combinational Circuit No Storage, No Feedback a b c Y Seq2FSM_H.fm p. 2 evised; March 8, 2 Slide 2 Sequential Circuits Sequential Circuits Sequential Circuits These circuits contain storage They remember the result of previous calculation. The total information that they remember is called the state of the circuit. The state and any inputs are used to calculate what the next state will be. After a delay, here the time to the next active clock edge, this next state becomes the state. Since they go through a sequence of states, they are called sequential circuits. Since the amount of storage limits them to a finite number of states, they are called Finite-State Machines. What is storage In theory, any storage counts. This could be flip flops, latches and AM. ead-only storage, or storage that cannot be changed by the machine, cannot be part of an FSM. Software Finite-State Machines, usually consider AM the storage. Hardware Finite-State Machines use flip flops for storage, and change state just after an active clock edge. This is a matter of convenience. It is much much easier to design machines with clocked flip flops. However at the end of the course, we will consider a type of circuit called asynchronous finite-state machines (asynchronous circuits for short), which uses latches, and do not use a clock Carleton University Seq2FSM_H.fm p. 3, evised; March 8, 2 Comment on Slide 2

States; Finite-State Machines The State The state is the output of all storage elements. Collected in some prearranged order. Machines based on states are called State Machines. In digital they are Finite-State Machines (FSMs). We can t have an infinite number of digital states. In this course, and most designs, the storage is flip flops. CLK ST CLK ST D D D C Four D Possible States C two flip flops D 2 D D D C C Eight 2 D Possible States D 2 C three flip flops We often show the states inside circles Seq2FSM_H.fm p. 4 evised; March 8, 2 Slide 3 States; Finite-State Machines Finite-State Machines Finite-State Machines The state is the output of all storage elements collectives in some prearranged order Take a finite-state machine with 4 flip flops, and let the order in the state be alphabetical, that is A, B, C, D. If A, B, C, D contain,,, at this moment, then the state is,,,. The order is arbitrary; you could use say A, D, C, B, only once you define it for one state, you must use the same order for all states. 8-. POBLEM How many states are possible with 8 flip flops? 8-2. POBLEM How many flip flops would be needed to make a digital counter that would count to 2 in binary? Carleton University Seq2FSM_H.fm p. 5, evised; March 8, 2 Comment on Slide 3

Finite-State Machines Basis Finite-State Machine States What is stored in all memory in the machine Inputs External signals entering the machine. Clock and reset are special and usually don t count as inputs Outputs Output signals like Y and Z Feedback Signals Here and 2 Order for going between states We have to specify an order based on: ) the present state. 2) inputs. Which define the next state. uestions INPUT(S) a. What are the inputs? b. What are the outputs? c. If all the memory is in the 3 flip-flops, what is in the colourful blobs? d. If the machine above has 2 =, what state is it in? e. How many different states is it possible for this machine to have? f. All the machine knows about its previous history is contained in? D 2 MEMOY D 2 C D D C D D C FEEDBACK SIGNALS CLK and ESET inputs assumed. See next slide. An order for going between states OUTPUTS Y Z Seq2FSM_H.fm p. 6 evised; March 8, 2 Slide 4 Finite-State Machines Sequencing of States Sequencing of States State All memory in the machine, means all in the part under consideration. A large machine will almost certainly be partitioned into smaller FSMs, in which case one considers only the memory in the partition. Inputs Most, but not all, machines have an external input. If you partition a big FSM into two smaller ones, the outputs of one FSM will normally provide inputs to the other. Feedback signals State and Next State The machine has its flip flops in some state, say. What is important is the next state. The way the machine sequences state --> next state is the main difference between two machines. All the machine knows about its previous history is contained in the state. The feedback signals send the state back into logic which calculates the next state. Feedback are output signals which are fed back as (internal) inputs. 8-3. POBLEM Design the state graph for a counter that counts down ->7->6->5->4->3->2->->->7... in binary. 8-4. POBLEM Design the state graph for a counter that counts down ->7->6->5->4->3->2->->7->6... in binary. Note that the zero states comes up on initial reset using the pin on the flip flops, but cannot be entered again. The reset signal is not cosidered in this graph. Answers a) There is one,. b) Y and Z. c) logic gates with no feedback. d). e) 8. f) the state (the flip flops) Carleton University Seq2FSM_H.fm p. 7, evised; March 8, 2 Comment on Slide 4

FSM: Sequencing; Counters, State Graph Counter This circuit counts in binary. Increments by one every rising clock edge. Count from to 7 ( to ) and repeat. Eight states D 2 D 2 2 Arranged to C count D 2 D Sequencing C Logic D D C CLK ST Counter Finite-State Machine No inputs Clk is an input we don t count We often don t show the wires ST is an input we don t count We often don t show the wires Here wire is behind the flip flops Outputs are the state In this example eset State State Graph 2 3 4 5 6 7 The sequencing between time states is all important. The state graph shows sequencing between states. The state changes after each rising clock edge. CLK Use ST to make the count start at zero. Seq2FSM_H.fm p. 8 evised; March 8, 2 Slide 5 FSM: Sequencing; Counters, State Graph Counters Counters This counter is an FSM which has no inputs except the clock and a reset. With no other inputs, such a circuit cannot do anything except count in some sequence. The sequence here is binary, but another counter might count in binary-coded decimal, two s complement, or whatever one wants. The sequence is cyclic, so once the counter reaches 7 () it automatically goes back to () and starts counting again. We say such a counter counts modulo 8, or it is a mod 8 counter. S The reset (ST) signal is essential to a well behaved counter since, it can be used to start the count at zero. Without it, the flip flops would come in a random state when the power was applied to them, and one would not know where the counter would start. State Change The state changes immediately after the active clock edge. This is the only time the state can change. Connections to CLK and ST Just like one does not show the power and ground connections on theoretical diagrams, one often does not show the clock and reset signals. In the Slide above they are shown, although one has to infer that the ST wire goes underneath the flip flops. On Slide 4 only the terminals on the flip flop are shown, and the reader must know how they are connected. When counting inputs, we say the counter above has no external inputs, and don t count CLK and ST. Carleton University Seq2FSM_H.fm p. 9, evised; March 8, 2 Comment on Slide 5

FSM: Sequencing of States Sequencing of States The next state depends on: a. The present state b. The inputs State Graph Shows sequencing State is inside circle Input is beside arrow Example I (CLK and ST assumed) Counter, as on last slide. Input not used Write, or put nothing beside the arrow. Change state each rising clock edge. Example II Controlled Counter Count (go to next state) when x= Hold old count (stay in old state) when x= uestion When, in the clock cycle, is checked CLK to see if the state changes or not? Comb Logic To be found D D D 2 D C D C D C 2 2 x= x= Example I order 2 x= x= x= x= x= x= x= x= x= Example II x= x= x= x= x= Seq2FSM_H.fm p. evised; March 8, 2 Slide 6 FSM: Sequencing of States Counters Sequence of State Three Counters (two above, one on Slide 8). Example I has an input, but at might as well not have, because it doesn t use it 2. Example II has an input which stops the count when =. 3. Example III (Slide 8) makes the count become 4 () whenever =. The difference between these three counters is easily seen on the state graph Carleton University Seq2FSM_H.fm p., evised; March 8, 2 Comment on Slide 6

FSM: Sequencing of States; State Tables State Tables With and Without Input The state graph and the state table. Both show sequencing between states. The graph is easier for initial design. The table is used for final design. No Input Present State 2 State Graph Example I State Table K-map order Example I Next State + 2 + + Next State written as + Next State comes after next rising clock edge Input 2 x= x= x= x= x= State Table x= x= x= x= Present State 2 State Graph Example II x= x= Example II x= K-map order x= x= x= x= Next State + 2 + + x= Two next state columns x= Next State + 2 + + Table is arranged like a K-map because later we transfer it to K-maps Seq2FSM_H.fm p. 2 evised; March 8, 2 Slide 7 FSM: Sequencing of States; State Tables State Tables State Tables State tables contain the same information as the state graph. Once you have the graph, you can easily construct the table. The states can be arranged in any order; just make sure the state and next state entries match. For counters, it is common to arrange them in the same sequence as going around the state graph. However it will turn out that the present state is best arranged in Karnaugh Map order. This makes it easy to convert the table into maps. If the present state is written as..., we commonly write the next state as +... How Many Next State Columns When there is no input, or the input does nothing like in example I. then there is only one next state column. When there is an input, there are two next states. This means the state table needs two next state columns. If there were two inputs, there would be 4 next states, and there will be 4 next-state columns in the state tables. Carleton University Seq2FSM_H.fm p. 3, evised; March 8, 2 Comment on Slide 7

FSM: State Table & State Graph; Inputs Example III: Binary Counter With Go To 4 Input If x= counts in binary: 2 3 4 5 6 7 2... If x=, go to count of 4 () and stays until x= K-map order (CLK and ST assumed) Comb Logic To be found D D D 2 D C D C D C 2 2 State Table Present Next State Next State State x= x= 2 + 2 + + + 2 + + x= x= x= State Graph x= x= x= x= x= x= x= x= x= x= Any time x=, the next state is 4 (). The state graph and the state table both show sequencing between states. The sequencing is different between when x= and x= Seq2FSM_H.fm p. 4 evised; March 8, 2 Slide 8 FSM: State Table & State Graph; Inputs Example III State Graph and State Table Example III State Graph and State Table A counter that goes to state 4 () when input = Note the table is arranged, not following order of the arrows in the state graph, but so that follow the order of a K-map. Carleton University Seq2FSM_H.fm p. 5, evised; March 8, 2 Comment on Slide 8

FSM: Counter Design; Completing Details Completing the to 7 Counter Design Design so far: D 2 D 2 C Comb D D Logic C To be D D found C ST It counts 2 3 4 5 6 7 2... It increments by one on every rising clock edge eset takes the count (state) to Circuit Design 3 flip-flops can give the 2 3 = 8 states The Count output is taken from the flip flops ST clears the flip-flops to state. 2 Count (CLK assumed) State Graph Only the next-state (combinational) logic is unknown. It has inputs 2,, and It has outputs D, D 2, and D These Ds must give the right next state after the clock edge. This logic must be designed State Table Present State Next State 2 + 2 + + K-map Present State 2 order Comb Logic To be found To give correct Next State D 2 D D Seq2FSM_H.fm p. 6 evised; March 8, 2 Slide 9 FSM: Counter Design; Completing Details From State Graph to Circuit From State Graph to Circuit Start with the State graph This was done before Construct the State Table This was done before Consider What to do Next We know the circuit has 3 flip flops. We want the the D inputs to the flip flops to be the correct next state. We know this will be a combinational (gates only) circuit which has the state 2,, as its input and gives out D 2, D, D as the output. This circuit will be designed from Karnaugh maps. Carleton University Seq2FSM_H.fm p. 7, evised; March 8, 2 Comment on Slide 9

FSMs: Design of a Binary Counter Counter Design 2 Comb Logic To be found Feedback. next state D 2 = + 2 D C + D = D C + D = D C present state 2 The present state is the value of 2 the present outputs The next state is the value of 2 + + + the present D inputs. Design the combinational (next state) logic so that inputs 2 give outputs D 2 D D = + 2 + + K-map order Counter state table Count State Next State D inputs 2 + 2 + + D 2 D D 3 2 4 5 7 6 Method: From the state table Make K-maps Make 3 maps; each with inputs 2 map for D 2 map for D map for D The row order in the state table does not matter in theory. K-Map Order Constructing the rows in K-map order makes drawing maps easier. Seq2FSM_H.fm p. 8 evised; March 8, 2 Slide FSMs: Design of a Binary Counter Counter Design Counter Design Next state and the D inputs The present state is the present value of 2,, The next state is the present value of 2 +, +, + which is equal to D 2,D,D Clock and eset The clock and reset lines to the flip flops are not shown in theoretical diagrams, but you cannot eliminate them in a real circuit! 8-5. POBLEM Do Prob 8-8-4. first, which is: Design the state graph for a counter that counts down 7 6 5 4 3 2 7 6... in binary. Note that the zero states comes up on reset, and is not entered again. Make the state table for a counter that counts down 7 6 5 4 3 2 7... in binary. Include columns for the state, the next state, and the D input that will give that next state. Arrange the rows so the states are in Karnaugh map order, i.e.,,3,2; 4,5,7,6. 8-6. POBLEM (CHANGED FOM IEEE PINTING) Design a counter that counts in reflected Gray code where only one bit changes as one goes between states. This code counts Make: - a state graph - a state table in K-map order. - three K-maps as is done on Slide.. This is true for FSMs using D flip-flops. Older books design circuits with J-K flip-flops where the flip-flop inputs are not equal to the next state. Be thankful you no longer have to learn to use them! It is also not true for the T flip-flops you will use in the MIDI lab. Carleton University Seq2FSM_H.fm p. 9, evised; March 8, 2 Comment on Slide

FSMs: Design of a Binary Counter Counter Design Maps 2 Comb Logic To be found D 2 = 2 + D = + D = + Design this logic Construct the D 2 D D maps from the state table State table and K-map have same order for Since they have the same order, can move D values to the K-map in 4 bit columns. K-map order Counter state table Count State Next State D values 2 + 2 + + D 2 D D 3 2 4 5 7 6 Table in K-map order. Using --3-2 4-5-7-6 instead of --2-3 4-5-6-7 2 map for D 2 Map coordinates On the state table: 2 changes slowly. put along top. change quickly. put along the side. 2 map for D 2 map for D Seq2FSM_H.fm p. 2 evised; March 8, 2 Slide FSMs: Design of a Binary Counter Counter Design Maps Counter Design Maps Order the table rows to match the map To make the data easy to transfer from the state table to the map: Order the table rows so that and change in the table the same way they would along the y-axis of the map. Choose the map axis to match the table Put rapidly changing state variables, on the vertical map axis. Put slowly changing map variable(s) 2 on the horizontal map axis. Transfer the D values from the state table to the K-map This can be done in blocks of four values. Looping the maps We now have a three-output gate (combinational) logic problem. We want to loop the three maps to minimize the logic. Don t forget that this is a multiple output problem, and one may be able to share gates. Carleton University Seq2FSM_H.fm p. 2, evised; March 8, 2 Comment on Slide

FSMs: Counter Circuit; Obtaining Circuit Get Equations and Circuit K-Maps from last slide Loop them Write the equations from the loops Draw the circuit Original High-level View of Circuit D 2 D 2 C Comb D D Logic C To be D D found C 2 2 map for D 2 2 map for D 2 map for D D 2 = 2 + 2 + 2 D = + D = 2 2 2 2 D 2 = 2 + D = + D = + D C D C D C 2 2 Final Detailed View of Circuit Seq2FSM_H.fm p. 22 evised; March 8, 2 Slide 2 FSMs: Counter Circuit; Obtaining Circuit Counter Design Counter Design eview of steps used (so far) in Designing Finite-State Machines Understand the problem. This is the hardest part for more complex machines. Draw a state graph Construct a state table showing the next state. Here the states were named,, 2, 3, 4... Fill in bits for the states. Here we translated 2, 3... Put the state table in K-map order Draw the K-maps from the state table. Loop the K-maps to get the best equations. Draw the logic from the equations. 8-7. POBLEM Do problems 8-4., 8-5.,. Then: a) write out the Karnaugh maps for the three flip-flop inputs b) loop the Karnaugh maps, c) obtain the next state logic equations, d) and draw the circuit including the flip flops, for a counter that counts down: 7 6 5 4 3 2 7 6... 8-8. POBLEM (Uses K-maps) Using Os, show that D2 has a very simple SofP expression. (3 letters). A+ students know that this is a multiple-output circuit and loop accordingly. Carleton University Seq2FSM_H.fm p. 23, evised; March 8, 2 Comment on Slide 2

FSMs: State Graphs With Less Than 2 N States All possible states may not be used Example Counter Counts -to-5 States and not included in sequence Those states still exist. What happens too them? What to do with unused states Lock Up Counter Normally counter counts properly, but if one gets into state or, one cannot get out. Fail Safe Counter If one gets into state or Lock up, Counter one goes to state on next clock edge. uestion Which is the better design? -5 Counter What to do with unused states Fail Safe Counter Seq2FSM_H.fm p. 24 evised; March 8, 2 Slide 3 FSMs: State Graphs With Less Than 2 N States Counter Design Machines With Less Than 2 N states What causes going into a bad state? Not resetting flip-flops properly on start-up. Fast power supply surges which flips a flip-flop that should not have been flipped. Large pulses on nearby wires which capacitively couple to a flip-flop input (Cross-talk). The chances of getting into a bad state are very small, but it does happen. Answer The lock-up circuit requires one to reset the circuit to get out of the lock-up states The fail-safe circuit lets the counter extract itself. Which is better depends on the application. Most people think the fail-safe circuit is better. However the lock-up circuit will let you know if the count went bad. The fail-safe circuit will continue with the wrong count. Comments on using the extra states If the sequencing for the extra states is not given at all, then these states can have don t care next states. These can be used to reduce the amount of logic in the blob. Carleton University Seq2FSM_H.fm p. 25, evised; March 8, 2 Comment on Slide 3

Symbolic State Names Often Convenient to Give the States Names Example: -6 Counter, Which Counts if = Suggestive names Starting state is often ST (reset) Counting states are B(st bottle), B2,... B5(5th bottle) State where the 6-pack is full is FP Make bad state BAD. State Table with Symbolic States State Next State + 2 + 3 + x= x= ST ST B B B B2 B3 B3 B4 B2 B2 B3 B4 B4 B5 B5 B5 FP BAD d d d d d d FP FP S Moosehead Bottle Counter BAD FP x= Full Pack Moosehead x= x= B5 x= New x= ST B carton st bottle x= x= 5th bottle x= x= x= B4 x= B2 x= 4th bottle x= x= B3 Seq2FSM_H.fm p. 26 evised; March 8, 2 Slide 4 Symbolic State Names Symbolic State Names Symbolic State Names 8-9. POBLEM Design a the state graph for a circuit which counts to 6 bottles using four bits. The most significant bit is a even- parity bit which is set to always give an even number of s in the four bits. Thus the count B B2 Β3 B4 B5 FP, will, after state assignment read,. If the counter enters a bad state, have it recover by going to the highest count which differs by bit from the bad count. This assumes the chances of more than a one-bit error are small, and that it is better to underfill a 6- pack than smash bottles. 8-. POBLEM Design the state graph of a counter which counts -2-4-6. If some circuit noise places it in states,3,5 or 7, it will go to state 7 on the next clock cycle and stay there. This indicates that something is wrong. Carleton University Seq2FSM_H.fm p. 27, evised; March 8, 2 Comment on Slide 4

Give Bit Patterns to Symbolic Names Assigning Bit Patterns Called State Assignment Example: -6 Counter, Which Counts if = Assign ST=; B=; B2=; B3= B4=; B5=; FP= BAD= (that s all that s left) Make a State Table from state graph infprmation The State Table Contains One present State column Two Next State columns, one for x=, one for x=. Will use both symbolic names; ST, B... and bit patterns Arrange table in Karnaugh map order Make unused state BAD have don t care next states This gives minimum logic. State Table, State Next State + 2 + 3 + 2 x= x= ST= ST= B= B= B= B2= B3= B3= B4= B2= B2= B3= B4= B4= B5= B5= B5= FP= BAD= d d d d d d FP= FP= ST= BAD x= x= ST B x= FP x= x= x= B5 x= x= uestions x= x= B4 x= B2 x= Does it matter what order we use for the present states in the table? What do we mean by Karnaugh map order? x= x= B3 Could one put a symbolic state table (last slide) in Karnaugh map order? Is taking the next states for BAD as ddd a good strategy?? Seq2FSM_H.fm p. 28 evised; March 8, 2 Slide 5 Give Bit Patterns to Symbolic Names Assigning Bit Patterns Assigning Bit Patterns Answers. Since one places the present state on the same table line as the next state, a state table is still valid if these lines are placed in any order. If the circuit is a counter, one naturally wants to place these lines in order i.e.,, 2, 3... 2. Karnaugh map order is for the right-most two bits in the present state. Then if we use those two bits as the y- axis when we make a K-map from the state table, the K-map axis will be in correct order. The first bit will be used for the x-axis. If one is going to make Karnaugh maps from the table, it is very convenient to have the states arranged in the table in the order in which they will be placed on the map. 3. A symbolic state table has no bit patterns to place in K-map order. On this and the next page, the state tables are in K-map order so it is very easy to transfer data from the state table to the K-maps a column at a time. 4. Making unused states don t cares will minimize the logic. An alternatives is to make it fail safe. In a previous slide, this x= x= was taken as sending the count to zero and continuing. Another strategy would be to make an error state. Whenever one got into one would stay there. Error State x= x= x= x= x= x= x= x= x= x= x= x= Carleton University Seq2FSM_H.fm p. 29, evised; March 8, 2 Comment on Slide 5

Logic for Counter With Unused State Obtain Logic From State Table Example: -6 Counter Which Counts if = Gate Logic has inputs 2,,, Gate Logic has outputs D 2,D,D The next state 2 +, +, + = D 2,D,D Get K-Maps for Gate Logic from state table (next slide) Get Gate Logic from K-Maps (next slide) State Table with D inputs added, State Next State 2 + + + D inputs D 2 D D 2 x= x= x= x= ST= ST= B= B= B= B2= B3= B3= B4= B2= B2= B3= B4= B4= B5= B5= B5= FP= BAD= d d d d d d d d d d d d FP= FP= ST= + D 2 = 2 D COMB C D 2 (GATE) = + D C LOGIC D = + D C Design the Gate Logic x= x= x= x= x= x= Since + 2, +, + = D 2,D,D we won t show them as seperate columns for very long. x= x= x= x= 2 x= x= x= x= Seq2FSM_H.fm p. 3 evised; March 8, 2 Slide 6 Logic for Counter With Unused State Obtaining Logic From The State Table Obtaining Logic From The State Table Carleton University Seq2FSM_H.fm p. 3, evised; March 8, 2 Comment on Slide 6

K-Maps for Counter with Unused State Obtain Logic From State Table; Making K-Maps Example: -6 Counter Which Counts if = Design the Gate Logic Take state table in K-map order Make 2 and x the horizontal axis coordinates must arrange 2 and x in K-map order. Transfer Next State patterns to K-map in blocks Note order. 2 = COMB 2 (GATE) LOGIC D 2 D D D C D C D C 2 State Table, State D inputs D 2 D D 2 = = ST= B= B3= B2= B4= B5= BAD= d d d d d d FP = 2 = Map of D 2,D,D = 2 d d d d d d 2 = 2 = 2 = left column transfers to right column Seq2FSM_H.fm p. 32 evised; March 8, 2 Slide 7 K-Maps for Counter with Unused State Obtain K-Maps From State Table Obtain K-Maps From State Table Write the state table so the two most rapidly changing bits are in Karnaugh map order ( ). One needs a map relating the four inputs 2 to the three outputs D 2 D D. Making the map with as vertical coordinates and 2 as horizontal coordinates allows one to easily build such a map. The order is very close to the order in the state table so one can split the state the table in half, and put the bottom beside the top. However K-map order is not quite the same as the state table. To fix it so the = columns are together one has to flip the left and right column. This map has three outputs in each square instead of one which is not good for loopling. This will be split into three maps on the next page. Carleton University Seq2FSM_H.fm p. 33, evised; March 8, 2 Comment on Slide 7

Changes Maps to Have -Bit-Per Square Change 3-Output/Square Map into Three -Output/Square Maps -6 Counter, Counts if = Can t loop 3-output map below Break into three maps by transfer Transfering columns one column at a time Map of D 2,D,D = 2 d d d d d d 2 = Loop the maps to get logic equations uestions Should we have made the unused states don t cares? What are the alternatives? another example of column transfer Map of D 2 d d Map of D 2 Map of D d d 2 d 2 d d 2 d D 2 = 2 + + 2 D = + + 2 d 2 D = + + 2 d d 2 d share Seq2FSM_H.fm p. 34 evised; March 8, 2 Slide 8 Changes Maps to Have -Bit-Per Square Change 3-Output/Square Map into Three Change 3-Output/Square Map into Three -Output/Square Maps Above, the first bit in each square is D 2, so to get the K-maps for D 2, blank out the 2nd and 3rd bit in each square. Above, the first bit in each square is D, so to get the K-maps for D, blank out the st and 3rd bit in each square. Above, the first bit in each square is D, so to get the K-maps for D, blank out the st and 2nd bit in each square. Map of D 2,D,D = 2 d d d d d d 2 = Map of D 2,D,D = 2 d d d d 2 = Map of D 2,D,D = 2 d d d d d d 2 = Carleton University Seq2FSM_H.fm p. 35, evised; March 8, 2 Comment on Slide 8

Transfering Equations Into Next-State Logic -6 Counter, Counts if = Equations from last slide D 2 = 2 + + 2 D = + + 2 D = + + 2 Where the logic equations fit in the state machine D 2 2 D D 2 = 2 + + 2 C 2 D = + + U D D C D = + + U C U = 2 D D 2 Complete circuit 2 2 U 2 2 D 2 D C 2 U D D D C D C Seq2FSM_H.fm p. 36 evised; March 8, 2 Slide 9 Transfering Equations Into Next-State Logic Maps The Final Design Maps The Final Design Where the logic fits The logic transforms the state and the inputs into the D inputs that will give us the correct next state. 8-. POBLEM Design a counter which counts -3-5-7-2- when x= and --3-5-7- when x=. Obtain the logic equations, but you do not need to draw the circuit. Carleton University Seq2FSM_H.fm p. 37, evised; March 8, 2 Comment on Slide 9

FSMs: Outputs; Moore and Mealy Outputs Direct Outputs Like previous circuits Outputs were directly from flip-flops Calculated Outputs There is logic between states and outputs. Moore Outputs Outputs calculated from state alone Input can affect outputs only after passing through flip-flops. Y, Z and V are Moore outputs Mealy Outputs Outputs can be directly influenced by inputs. W is a Mealy output. uestions What is in the colourful blobs? What is not in them? INPUTS D MEMOY D C D D C D 2 D 2 C Influence from D D C D D C D 2 D 2 C OUTPUTS Y Z Moore Mealy W V Moore Seq2FSM_H.fm p. 38 evised; March 8, 2 Slide 2 FSMs: Outputs; Moore and Mealy Outputs Outputs Answers There are logic gates in each one. They may be as simple as a single wire, or as complex as you want. There is no storage in the blobs. There are no latches or flip-flops. Carleton University Seq2FSM_H.fm p. 39, evised; March 8, 2 Comment on Slide 2

FSMs: Moor Outputs in State Graphs and Tables Outputs in State Graphs and Tables Example: -7 Forwards and Backwards Counter Moore Outputs y output counts up z output counts down State Graph Outputs written underneath state State y Output z Output The State Table Add columns for outputs State Table, State Next State Up Output Dn Output 2 + 2 + + y 2 y y z 2 z z S= S= S3= S2= S4= S5= S7= S6= Next State Logic Comb Logic To be found S 6 = y= z= S 5 = y= z= S 7 = y= z= S 4 = y= z= S = y= z= What are the inputs? Is y output Mealy or Moore? Is z output Mealy or Moore? S 3 = y= z= S = y= z= MEM OUTPUTS State y + 2 2 =D2 D 2 z2 C + y =D D z C y + =D D z C S 2 = y= z= Seq2FSM_H.fm p. 4 evised; March 8, 2 Slide 2 FSMs: Moor Outputs in State Graphs and Tables Outputs in State Graphs and Tables Outputs in State Graphs and Tables Moore Outputs Moore outputs in state tables The outputs are placed in extra columns in the table Combinational logic to calculate outputs The outputs need more combinational logic. The inputs are the states. Normally one would need another Karnaugh map for each output bit. Fortunately here the outputs are so simple one can do the logic in ones head. 8-2. POBLEM (COUNTE WITH TWO OUTPUTS) a) draw the state graph of a counter that counts in binary: 2 3 4 5 6 7 It has three outputs bits YZ. These are outputs, not the state bits. When the x input =, the outputs are the same as the state, i.e. YZ= for state, for, for 2, etc. When x=, the outputs are the state less one, i.e. state 2 gives out, state gives out, state gives out 7, etc. b) Make a state table that includes a column for both outputs. c) Get the equations for the next-state logic. You can find them in the notes on p. (You tell me). d) Derive the equations for the output logic. (Check: F= A x + Ax) Answers: Y and Z are both Moore outputs. Carleton University Seq2FSM_H.fm p. 4, evised; March 8, 2 Comment on Slide 2

Next State Logic Maps (Moore Outputs Circuit) Design this logic 2 Next-State LOGIC Ignore output logic for now D 2 = 2 + D = + D = + Counter state table State Next State D values 2 + 2 + + D 2 D D S= S= S3= S2= S4= S5= S7= S6= 2 map for D 2 map for D map for D 2 2 emember one can loop s if: - They are contained in an even number of loops. - One uses instead of + 2 2 2 D = D = + = - 2 Final Design D 2 = 2 ( ) D = D= xz+zx=x z D 2 = 2 ( ) Extended Disjunctive Theorem D 2 = 2 + D = + D = + Seq2FSM_H.fm p. 42 evised; March 8, 2 Slide 22 Next State Logic Maps (Moore Outputs Circuit) Derivation of Counter Next-State Logic Derivation of Counter Next-State Logic Equations y output is the same as the state. We don t need any more logic. z output is the inverse of y. We don t need any more logic, just inverters. We only calculate the state logic, which are the same as the D outputs from the logic. Summary of logic equation derivation We calculate a 3-output 3-input block of combinational output logic. We make a Karnaugh map for each combinational output. We loop the maps to minimize the logic. eduction of D2 Using K-Maps 2 map for D 2 2 Extend loops over eduction of D2 Using Algebra 2 2 D 2 = 2 ( ) Parity (number of loops) Odd for s Even for s Extended Disjunctive Theorem D 2 = 2 + 2 + 2 = 2 ( + ) + ( ) 2 = 2 ( ) + ( ) 2 = 2 ( ) Distrb law demorgan xz+zx=x z Carleton University Seq2FSM_H.fm p. 43, evised; March 8, 2 Comment on Slide 22

FSMs: Mealy Outputs in State Graphs and Tables Example: -7 Forwards and Backwards Counter Mealy Output if b;z= if b;z= if b;z= If b=, z output counts up if b;z= if b;z= If b=, z output counts down uestions if b;z= State Graph. What are inputs? Outputs written underneath state if b;z= 2. Is the z output With associated input if b;z= Mealy or Moore? if b;z= The State Table 3. Where did these if b;z= Add columns for outputs equ. come from? A column for each input if b;z= State Table, if b;z= if b;z= if b;z= if b;z= State Next State Output z 2 z z 2 + 2 + if b;z= + b= b= Mealy S= b State Outputs S= D 2 = 2 ( ) D 2 b 2 z D 2 S3= C D = 2 D S2= D z S4= C D S5= D = D z S7= C S6= Logic to find Seq2FSM_H.fm p. 44 evised; March 8, 2 Slide 23 FSMs: Mealy Outputs in State Graphs and Tables Mealy Outputs Mealy Outputs epresenting Mealy outputs on state graphs Many, in fact most, books use Mealy outputs attached to the state transition arrows. You may use this notation if you find it easier. Answers. There is only one input b. The CLK and ESET are inputs but we do not need to do any special logic design for them so they are not shown. 2. The Z output is Mealy since it can be directly controlled by an input. b=/z= b=/z= b= b= b= /z= /z= b= /z= /z= b= /z= b= b= /z= b= /z= b= /z= /z= b= /z= b= /z= b= /z= b= /z= b= /z= 3. The state graph has the same states and state transitions (arrows) as for the circuit with Mealy outputs, only the outputs differ. Hence the next state equations are the same as for the circuit with Moore outputs. Up-Down Counters vs Forwards and Backwards counters This forwards and backwards counter change its count from 2 3 -- when one changes from counting up to down, i.e. 2 3 --=7, 2 3 --=6, 2 2 3-2-=5... Most applications reverse the present count so that that 7 6, 6 5,... 7 when b is changed from to. We will call these up-down counters. Their circuit is much more complex. Carleton University Seq2FSM_H.fm p. 45, evised; March 8, 2 Comment on Slide 23

Mealy Outputs K-Maps and Circuits Example: -7 Forwards and Backwards Counter Obtain Output Maps State Table, State Next State Mealy Output z 2 z z 2 2 + + + b= b= S= S= S3= S2= S4= S5= S7= S6= The next-state logic is the same as with Moore. Must calculate output logic. Convert state-table to K-map of z 2 z z. Be sure it is in K-map order Convert 3-bits/square K-map into three -bits/square K-maps. Circling the K-maps gives the output equations. (next slide) State Table b= b= 2 b 2 = 2 b 2 = K Map 2 b 2 Flip right hand pair Map of Z b b= 2 b 2 3 2 = 2 Map of Z 2 b 3 4 2 2 Map of Z b 2 4 Seq2FSM_H.fm p. 46 evised; March 8, 2 Slide 24 Mealy Outputs K-Maps and Circuits Mealy Outputs Mealy Outputs Constructing the 4-input map We have 3 state variables, and one input which, because it is Mealy, is an input variable for the output maps. Thus we must construct a 4-variable map from the output state table. The easy way to do this: -Move the four half-columns of 3-bit numbers from the state table to a Karnaugh map containing all the outputs. - When moving the bottom to state table columns to the right hand side of the K-map, be sure to interchange the position of the columns for 2 = and 2 =. Note their right-left position flips between the state table and the K-map. After the map containing all three outputs is constructed, it should be split into three individual maps. 8-3. POBLEM (HAD) Take a state graph in which there are 4-state bits and an input. Show, how the state table columns should be broken into blocks of 4 states, and exactly how these should be moved into a 5-input K-map. Carleton University Seq2FSM_H.fm p. 47, evised; March 8, 2 Comment on Slide 24

Circuit For Mealy Forwards and Backwards Counter Example: -7 Forwards and Backwards Counter Next State Map of Z 2 State Table, State Next State Mealy Output z 2 z z 2 2 + + + b= b= S= S= S3= S2= S4= S5= S7= S6= The next-state logic is the same done for Moore. Must calculate output logic. Circling the K-maps gives the output equations. These give the output logic. b Map of Z b 2 2 Z 2 = b 2 + b 2 = b 2 Z = b + b = b - Map of Z b b 2 State D D 2 = 2 ( ) 2 D 2 2 D = C D D C D = D D C Z = b + b = b - b Outputs Z 2 = b 2 Z = b - Z = b - Seq2FSM_H.fm p. 48 evised; March 8, 2 Slide 25 Circuit For Mealy Forwards and Backwards Counter Mealy Output Circuit Mealy Output Circuit Student s often ask about using O gates in schematics. If the object is to get the smallest size CMOS circuit then O gates will not allow you to get a good measure of the circuit cost. If the object is to get a compact set of equations to show other people, then they are quite useful. The object here was to fit the circuit on one slide without too much clutter. If you are going to implement them on a complex-programmable-logic device (CPLD) as is done in the lab, it does not matter because the software that translates them into a program for the PLAs will take them out anyway. For some logic families, like MOS-current-mode-logic (MCML), which are used at very high speeds, an O gate can be implemented easily, and may be the best choice of gate. Carleton University Seq2FSM_H.fm p. 49, evised; March 8, 2 Comment on Slide 25

Systematic Design of Finite State Machines Specification Step Decide on inputs and outputs Draw a block diagram Draw typical output waveforms Step 2 Moore outputs or Mealy? How many states? Construct the state graph Thinking Part Step 3 Do state assignment Step 4 Construct state table Put table in K-Map order Step 5 Make maps from table Next-state logic maps Output logic maps Step 6 Derive quations Check for gate sharing Step 7 Draw circuit Turn the Crank Part Seq2FSM_H.fm p. 5 evised; March 8, 2 Slide 26 Mealy Output Circuit Systematic Design Carleton University Seq2FSM_H.fm p. 5, evised; March 8, 2 Comment on Slide 26

Systematic Design of a Finite-State Machine Up to the State Graph, The Hard Part! Basic Steps (Guidelines) Specification Design a machine to count bottles placed in a 6-pack. ) It sends a signal to position the empty pack. 2-7) It sends a signal to place each bottle one at a time. - It counts the bottles. 8) It sends a signal to removes the full pack. Each step takes.5 sec. Step Decide on Inputs and Outputs User interface Draw a block diagram Draw typical output waveforms Step 2 Moore Outputs or Mealy? These critera decribed on Slide 38 Mealy: Fast response? Mealy: Fewer states => smaller Moore: Glitch free outputs? How many states? Construct the State Graph using suggestive symbols ST Cartn FP mvpk B6 Bott ST NewCartn Count Bott mvpck CLK B Bott B5 Bott B2 Bott B3 Bott B4 Bott Moosehead NewCartn CLK ST Bott Count An extra clock cycle delay is OK. Smaller size lowers cost. Glitches are complicated; say it s OK for now. Moosehead 2 3 4 5 6 6 2 3 4 State graph construction is hard. This chapter and the next describe it! mvpck Seq2FSM_H.fm p. 52 evised; March 8, 2 Slide 27 Systematic Design of a Finite-State Machine Steps In Finite-State Machine Design Steps In Finite-State Machine Design Specification This may be a very complete and detailed document. However it is often, short, incomplete and may have contradictions. You may have to revise it several times, and go back to the customer to get them to approve a revised specification. Step Input and Outputs One needs their logical function, their duration, their timing with respect to the clock edge, their voltage levels. For the relatively simple circuits in this section, we will show the signals on a block diagram and on the waveforms of a timing diagram. For the moment we will require inputs to overlap at least one active clock edge so the flip flops can capture their values. This overlaps with Step 2, because to draw proper outputs on the timing diagram, one needs to know if the are Moore or Mealy. Step 2 Mealy or Moore More about this choice is given on Slide 38. The Mealy outputs are faster because a signal can cause an output to change immediately, rather than waiting for the clock. Also Mealy outputs tend to give a simpler machine. State Graph The flow between states is the part of the design which requires the most thinking, and is the main subject of this Section. The states will eventually have binary values, like,,... However it is usually easier at this stage to give them suggestive names, like B (st bottle), ST and FP(full pack). Later they will be converted to binary strings. The number of states becomes apparent as the state graph design proceeds. Carleton University Seq2FSM_H.fm p. 53, evised; March 8, 2 Comment on Slide 27

Systematic Design of an FSM: The Toggle Flip Flop Step 3 State Assignment ST=, B=... Step 4 Implementation: The Machinelike Part of Design Make State Table From State Graph Step 5 Put table in K-Map order 2 2 2 Make Maps from Table: Next-State Logic Maps Output-Logic Maps Step 6 Get Equations Don t forget to Share Gates Step 7 Draw Circuit B Bott ST NewCartn FP mvpk B6 Bott 2 D 2 = 2 + D = B5 Bott B2 Bott Next-State Logic B3 Bott B4 Bott D 2 D D D = D C D C D C 2 Cartn mvpk Bott 2 Bott 2 Output Logic Z =( + 2 ) Z = D Bott Bott Bott Bott THESE AE NOT FO THE ABOVE MACHINE share Z Z Seq2FSM_H.fm p. 54 evised; March 8, 2 Slide 28 Systematic Design of an FSM: The Toggle Flip Flop Steps (Guidelines) In Finite-State Machine Steps (Guidelines) In Finite-State Machine Design (cont) The more mechanical steps These are very algorithmic. The designer must know what is happening, but the routine boring work can be done by a computer program. Step3, Previously binary strings were used for states. If symbolic names are used like Clear, one must translate these into bit strings like. This is called state assignment, further a good state assignment can make the logic noticeably simpler. Step 4 Making a state table from the state graph, Step 5 Arranging the state table in Karnaugh map order, Extracting the maps from the table, Step 6 Loop the maps, usually for minimum logic Obtain the equations from looping the maps. Note that there are one set of maps for the next-state equations and another set for the Mealy or Moore output equations. Step 7 Draw the circuit Carleton University Seq2FSM_H.fm p. 55, evised; March 8, 2 Comment on Slide 28

Systematic Design of an FSM: The Toggle Flip Flop The Toggle Flip-Flop Made from a D flip-flop. Specification Shall have two states S and S Input signal T On every active clock edge: If T= change output. If T= hold old output. Step Draw block diagram. Draw typical waveforms. Step 2 How many states? Mealy or Moore? Draw state graph Step3 Make state table. Choose Moore T z T Toggle CLK Flip-Flop CLK ST z S S S S S S T= S z= T= T= S z= T= State Table (with symbolic states), State Next State + D input output T= T= T= T= z S S S S S S S Don t make inputs change on clock edge Seq2FSM_H.fm p. 56 evised; March 8, 2 Slide 29 Systematic Design of an FSM: The Toggle Flip Flop Design of a Toggle Flip-Flop Design of a Toggle Flip-Flop Step Drawing the block diagram establishes in your mind what the inputs and outputs are. An extra input, ST, not given in the specifications was added. This was because practically all flip-flops have them. However we will assume it was built into the underlying D flip-flop and does not have to be specifically designed here. The waveforms help you to be sure you understand the specifications. Try to include all the scenarios such as two T= inputs when z starts at, two T- inputs when x starts at (not included here). Here the states were written at the bottom of the waveforms. Often, one can tell how many states one needs from the waveforms. Sometimes it is useful to put the states under the waveform as one draw the state graph. Step 2 How many States? This may be clear, or one may have to wait till the state graph has been done. Choice of Mealy or Moore There is no designer choice here. The specification says change after the clock edge, based on the input present just before and during the clock edge. This is a Moore output. A Mealy output may change when an input changes without waiting for the clock. Step 3 The state table can be drawn from the state graph. However it can only be filled in as letters, S and S. The table cannot be completed until state assignment is done on the next page. Carleton University Seq2FSM_H.fm p. 57, evised; March 8, 2 Comment on Slide 29

FSM Design: Detect in a Sequence of Bits Example (Cont): The Toggle Flip-Flop Step 4 State assignment Trivial here. Later will be harder Complete state table fill in assignment Step 5 Make K-maps from table Step 6 Get next state equations Watch for multiple output simplification. (None here with only one map) Get output logic equations. Step7 Draw circuit T CLK ST T Toggle Flip-Flop Z State Table, State Next State + D input output T= T= T= T= z S= S= S= S= S= S= T Map of D D = T + T = T D=T+T= T State Assignment S= S= D D C z = z = T D D z C Map of z z Seq2FSM_H.fm p. 58 evised; March 8, 2 Slide 3 FSM Design: Detect in a Sequence of Bits Design of a Toggle Flip-Flop (Cont) Design of a Toggle Flip-Flop (Cont) Step 4 State assignment is the process of assigning a sequence of ones and zeros to each state. Here one can only make S= or S=. Making S= makes the state match the output. This is convenient. Since S=, this forces S=. Step 5 and 6. Finding SofP The K-maps are difficult only for over-simple K-maps like D =. T T Map However these are multiple output maps. emember to look for of D 2 shared gates parity Step 7 D = T Easy. 8-4. POBLEM Draw the timing diagram (waveform) showing T, clk and z for a toggle flip-flop which has input T =. These numbers are the value of the input just before the clock edge in each cycle. Assume the flip-flop was reset to = at the start and that the left most bit of the sequence above is at time =. Carleton University Seq2FSM_H.fm p. 59, evised; March 8, 2 Comment on Slide 3

FSM Design: A Moore Sequence Detector Complete Design of a Finite-State Machine A Sequence Detector Specification x=serial bit coming in at clock rate z = after sequence is detected No overlap don t count, overlap ok ok x = Step Draw block diagram. Draw waveforms. x z x CLK ST Moore Output DETECT x= in a cycle, means x= just before the end-of-cycle clock edge z CLK z z z t Moore Output (No overlap) Output waits till the clock edge after is complete. Mealy Output (No overlap) Output rises with the 2nd in. Goes down next clock edge. Seq2FSM_H.fm p. 6 evised; March 8, 2 Slide 3 FSM Design: A Moore Sequence Detector Design of a Moore Machine Design of a Moore Machine No overlap In the specifications, no overlap means that one does not recognize sequences which overlap another sequence. Thus only has one nonoverlapping sequence, but it has two if one counts overlaps. Block diagrams If input sequences are shown on a block diagram, and shown on a timing diagram, there is confusion about which bit goes in first. In the timing diagram the left most bit goes in first (at t=). In the block diagram, this appears strange unless one bends the input lead Where does one change x The flip-flops sample the inputs just before the active clock edge. It does not matter where x changes as long as the value is correct just before that edge. Note x must not change while the clock is changing since one would not know which value the flip-flop would eventually capture. This bit goes in first x = The circles on the x waveform above, indicate the value of x that is captured. That must agree with the numeric values shown above it, or on the block diagram. Delay in Moore Outputs Notice the Mealy outputs end at the time the Moore outputs start. The Moore outputs are delayed into the next cycle from the Mealy outputs. If x changes late in the clock cycle, the Mealy output will be a short pulse (look at the 3rd Mealy pulse). The Moore output is always a full cycle. CLK ST x = CLK ST better drawing DETECT confusing drawing DETECT z z Carleton University Seq2FSM_H.fm p. 6, evised; March 8, 2 Comment on Slide 3

FSM Design: The Moore Sequence Detector Design of a Finite-State Machine A Moore Sequence Detector Step 2; State Graph Moore or Mealy? (Choose Moore here, do a Mealy one later) How many states? (Not clear till graph is drawn) Start graph; do sequence x= x= x= S G G z= Moore z= z= Wait for Output Got Got a Wait for Wait for a a The sequence is complete. But graph only half done. Must add other branches. S x= z= Wait for a (No overlap) x= x= x= G x= G z= z= x= Got Got Wait for Wait for F z= Found Output F z= x= x= Found Output Must show all branches from each state One input; 2 branches from each state. Two inputs; 4 branches from each state. Three inputs; branches from each state? Seq2FSM_H.fm p. 62 evised; March 8, 2 Slide 32 FSM Design: The Moore Sequence Detector Moore Sequence Detector Moore Sequence Detector Drawing the State Graph Starting the graph First set up a state sequence that will recognize the sequence. It is good to write a comment under each state, explaining what it means to be in that state. Finishing the graph Then go back and fill in the other branches on each state. In this case, with one input, you must show two branches from each state. Much of the work in developing the state graph is deciding where these other outputs go. How many branches from each state? For one input x, one has 2 next state choices, one for x=, one for x=. One must always decide where both branches go; be careful. For two inputs, x and y, one has 4 next states choices, one for each of xy=, xy=, xy=, xy =. For three inputs, x y and z, one has 2 3 =8 next states choices. A 3-input state graph can becomes very messy. Carleton University Seq2FSM_H.fm p. 63, evised; March 8, 2 Comment on Slide 32