Digital Circuit Engineering

Similar documents
Logic Design II (17.342) Spring Lecture Outline

Chapter 5: Synchronous Sequential Logic

Logic Design ( Part 3) Sequential Logic- Finite State Machines (Chapter 3)

Previous Lecture Sequential Circuits. Slide Summary of contents covered in this lecture. (Refer Slide Time: 01:55)

Computer Architecture and Organization

UNIT III. Combinational Circuit- Block Diagram. Sequential Circuit- Block Diagram

The word digital implies information in computers is represented by variables that take a limited number of discrete values.

Sequential Circuits. Output depends only and immediately on the inputs Have no memory (dependence on past values of the inputs)

Final Exam review: chapter 4 and 5. Supplement 3 and 4

MC9211 Computer Organization

(Refer Slide Time: 2:05)

Digital Logic Design I

CHAPTER 4: Logic Circuits

EECS150 - Digital Design Lecture 19 - Finite State Machines Revisited

CPS311 Lecture: Sequential Circuits

Sequential Logic Circuits

Software Engineering 2DA4. Slides 3: Optimized Implementation of Logic Functions

We are here. Assembly Language. Processors Arithmetic Logic Units. Finite State Machines. Circuits Gates. Transistors

CS8803: Advanced Digital Design for Embedded Hardware

NH 67, Karur Trichy Highways, Puliyur C.F, Karur District UNIT-III SEQUENTIAL CIRCUITS

Principles of Computer Architecture. Appendix A: Digital Logic

Chapter 5 Synchronous Sequential Logic

FPGA Implementation of Sequential Logic

Chapter 3. Boolean Algebra and Digital Logic

Chapter 5 Sequential Circuits

REPEAT EXAMINATIONS 2002

The basic logic gates are the inverter (or NOT gate), the AND gate, the OR gate and the exclusive-or gate (XOR). If you put an inverter in front of

UNIT IV. Sequential circuit

Logic and Computer Design Fundamentals. Chapter 7. Registers and Counters

MODULE 3. Combinational & Sequential logic

Chapter Contents. Appendix A: Digital Logic. Some Definitions

Sequential Logic. Analysis and Synthesis. Joseph Cavahagh Santa Clara University. r & Francis. TaylonSi Francis Group. , Boca.Raton London New York \

Software Engineering 2DA4. Slides 9: Asynchronous Sequential Circuits

Chapter 11 State Machine Design

ASYNCHRONOUS COUNTER CIRCUITS

SEMESTER ONE EXAMINATIONS 2002

Digital Logic Design Sequential Circuits. Dr. Basem ElHalawany

CHAPTER 4: Logic Circuits

Decade Counters Mod-5 counter: Decade Counter:

Section 6.8 Synthesis of Sequential Logic Page 1 of 8

Digital Design, Kyung Hee Univ. Chapter 5. Synchronous Sequential Logic

Introduction. NAND Gate Latch. Digital Logic Design 1 FLIP-FLOP. Digital Logic Design 1

Combinational vs Sequential

Experiment 8 Introduction to Latches and Flip-Flops and registers

Advanced Digital Logic Design EECS 303

Read-only memory (ROM) Digital logic: ALUs Sequential logic circuits. Don't cares. Bus

CARLETON UNIVERSITY. Facts without theory is trivia. Theory without facts is bull 2607-LRB

1. Convert the decimal number to binary, octal, and hexadecimal.

Chapter 7 Counters and Registers

ELCT201: DIGITAL LOGIC DESIGN

ELCT201: DIGITAL LOGIC DESIGN

DIGITAL TECHNICS. Dr. Bálint Pődör. Óbuda University, Microelectronics and Technology Institute

The reduction in the number of flip-flops in a sequential circuit is referred to as the state-reduction problem.

Synchronous Sequential Logic. Chapter 5

Introduction to Digital Logic Missouri S&T University CPE 2210 Exam 3 Logistics

DIGITAL TECHNICS II. Dr. Bálint Pődör. Óbuda University, Microelectronics and Technology Institute

Chapter 5 Synchronous Sequential Logic

DIGITAL SYSTEM FUNDAMENTALS (ECE421) DIGITAL ELECTRONICS FUNDAMENTAL (ECE422) COUNTERS

Chapter. Synchronous Sequential Circuits

COMP2611: Computer Organization. Introduction to Digital Logic

Logic Design. Flip Flops, Registers and Counters

Synchronous Sequential Logic

CS 61C: Great Ideas in Computer Architecture

Chapter 5 Flip-Flops and Related Devices

Synchronous Sequential Logic


FLIP-FLOPS AND RELATED DEVICES

Chapter 4. Logic Design

WEEK 10. Sequential Circuits: Analysis and Design. Page 1

MODEL QUESTIONS WITH ANSWERS THIRD SEMESTER B.TECH DEGREE EXAMINATION DECEMBER CS 203: Switching Theory and Logic Design. Time: 3 Hrs Marks: 100

Introduction to Digital Logic Missouri S&T University CPE 2210 Exam 2 Logistics

Digital Circuit And Logic Design I. Lecture 8

Digital Circuit And Logic Design I

Asynchronous (Ripple) Counters

Logic Design ( Part 3) Sequential Logic (Chapter 3)

Digital Fundamentals: A Systems Approach

Problems with D-Latch

Logic Design II (17.342) Spring Lecture Outline

Synchronous Sequential Logic

St. MARTIN S ENGINEERING COLLEGE

Chapter 5 Sequential Circuits

2 Sequential Circuits

ELCT201: DIGITAL LOGIC DESIGN

More on Flip-Flops Digital Design and Computer Architecture: ARM Edition 2015 Chapter 3 <98> 98

Lecture 8: Sequential Logic

Chapter 1: Switching Algebra Chapter 2: Logical Levels, Timing & Delays. Introduction to latches Chapter 9: Binary Arithmetic

EECS 270 Final Exam Spring 2012

Administrative issues. Sequential logic

UNIT 1: DIGITAL LOGICAL CIRCUITS What is Digital Computer? OR Explain the block diagram of digital computers.

cascading flip-flops for proper operation clock skew Hardware description languages and sequential logic

IT T35 Digital system desigm y - ii /s - iii

Chapter 3 Unit Combinational

Sequential Circuits: Latches & Flip-Flops

Unit 11. Latches and Flip-Flops

problem maximum score 1 28pts 2 10pts 3 10pts 4 15pts 5 14pts 6 12pts 7 11pts total 100pts

EECS 270 Midterm 2 Exam Closed book portion Fall 2014

Sequencing. Lan-Da Van ( 范倫達 ), Ph. D. Department of Computer Science National Chiao Tung University Taiwan, R.O.C. Fall,

YEDITEPE UNIVERSITY DEPARTMENT OF COMPUTER ENGINEERING. EXPERIMENT VIII: FLIP-FLOPS, COUNTERS 2014 Fall

In this lecture we will work through a design example from problem statement to digital circuits.

Switching Circuits & Logic Design, Fall Final Examination (1/13/2012, 3:30pm~5:20pm)

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_G.fmI p. evised; February 25, 29 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 Seq2FSM_G.fm p., evised; February 25, 29 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 D D P Combinational Circuit No Storage, No Feedback a b c Y Seq2FSM_G.fm p. 2 evised; February 25, 29 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 Seq2FSM_G.fm p. 3, evised; February 25, 29 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 Four D Possible States two flip flops D 2 D D D Eight D Possible States D three flip flops We often show the states inside circles Seq2FSM_G.fm p. 4 evised; February 25, 29 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? Seq2FSM_G.fm p. 5, evised; February 25, 29 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 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 =, 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 D D D D FEEDBACK SIGNALS CLK and ESET inputs assumed. See next slide. An order for going between states OUTPUTS Y Z Seq2FSM_G.fm p. 6 evised; February 25, 29 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... in binary. Note that the zero states comes up on reset, but cannot be entered again. Answers a) There is one,. b) Y and Z. c) logic gates with no feedback. d). e) 8. f) the state (the flip flops) Seq2FSM_G.fm p. 7, evised; February 25, 29 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 Arranged to count D D Sequencing Logic D D 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_G.fm p. 8 evised; February 25, 29 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. Seq2FSM_G.fm p. 9, evised; February 25, 29 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 Hold old count (stay in old state) when 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 D D Example I order Example II Seq2FSM_G.fm p. evised; February 25, 29 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 Seq2FSM_G.fm p., evised; February 25, 29 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 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 State Table Present State State Graph Example II Example II K-map order Next State + 2 + + Two next state columns Next State + 2 + + Table is arranged like a K-map because later we transfer it to K-maps Seq2FSM_G.fm p. 2 evised; February 25, 29 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. Seq2FSM_G.fm p. 3, evised; February 25, 29 Comment on Slide 7

FSM: State Table & State Graph; Inputs Example III: Binary Counter With Go To 4 Input If counts in binary: 2 3 4 5 6 7 2... If, go to count of 4 () and stays until K-map order (CLK and ST assumed) Comb Logic To be found D D D 2 D D D State Table Present Next State Next State State + 2 + + + 2 + + State Graph Any time, the next state is 4 (). The state graph and the state table both show sequencing between states. The sequencing is different between when and Seq2FSM_G.fm p. 4 evised; February 25, 29 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. Seq2FSM_G.fm p. 5, evised; February 25, 29 Comment on Slide 8

FSM: Counter Design; Completing Details Completing the to 7 Counter Design Design so far: D 2 D 2 Comb D D Logic To be D D found 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. Count (CLK assumed) State Graph Only the next-state (combinational) logic is unknown. It has inputs,, 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 + + K-map Present State order Comb Logic To be found To give correct Next State D 2 D D Seq2FSM_G.fm p. 6 evised; February 25, 29 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,, as its input and gives out D 2, D, D as the output. This circuit will be designed from Karnaugh maps. Seq2FSM_G.fm p. 7, evised; February 25, 29 Comment on Slide 9

FSMs: Design of a Binary Counter Counter Design Comb Logic To be found Feedback. next state D 2 = + 2 D + D = D + D = D present state The present state is the value of the present outputs The next state is the value of + + + the present D inputs. Design the combinational (next state) logic so that inputs give outputs D 2 D D = + 2 + + K-map order Counter state table Count State Next State D inputs + 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 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_G.fm p. 8 evised; February 25, 29 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,, The next state is the present value of +, +, + 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... in binary. Note that the zero states comes up on reset, but cannot be 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. Seq2FSM_G.fm p. 9, evised; February 25, 29 Comment on Slide

FSMs: Design of a Binary Counter Counter Design Maps Comb Logic To be found D 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 + + 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 map for D 2 Map coordinates On the state table: changes slowly. put along top. change quickly. put along the side. map for D map for D Seq2FSM_G.fm p. 2 evised; February 25, 29 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. Seq2FSM_G.fm p. 2, evised; February 25, 29 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 Comb D D Logic To be D D found map for D 2 map for D map for D D 2 = + + D = + D = D 2 = + D = + D = + D D D Final Detailed View of Circuit Seq2FSM_G.fm p. 22 evised; February 25, 29 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. Seq2FSM_G.fm p. 23, evised; February 25, 29 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_G.fm p. 24 evised; February 25, 29 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. Seq2FSM_G.fm p. 25, evised; February 25, 29 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 + + 3 + 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 B5 New ST B carton st bottle Full Pack Moosehead 5th bottle B4 B2 4th bottle B3 Seq2FSM_G.fm p. 26 evised; February 25, 29 Slide 4 Symbolic State Names Symbolic State Names Symbolic State Names 8-9. POBLEM Design a the state graph for a counter which counts to 6 bottles using four bits. The most significant bit is a even- parity bit. Thus the count is. 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. Seq2FSM_G.fm p. 27, evised; February 25, 29 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, one for. 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 + + 3 + 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 ST B FP B5 uestions B4 B2 Does it matter what order we use for the present states in the table? What do we mean by Karnaugh map order? 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_G.fm p. 28 evised; February 25, 29 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 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 Seq2FSM_G.fm p. 29, evised; February 25, 29 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,,, Gate Logic has outputs D 2,D,D The next state +, +, + = 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 + + + D inputs D 2 D D 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 = D COMB D 2 (GATE) = + D LOGIC D = + D Design the Gate Logic Since + 2, +, + = D 2,D,D we won t show them as seperate columns for very long. Seq2FSM_G.fm p. 3 evised; February 25, 29 Slide 6 Logic for Counter With Unused State Obtaining Logic From The State Table Obtaining Logic From The State Table Seq2FSM_G.fm p. 3, evised; February 25, 29 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. = COMB (GATE) LOGIC D 2 D D D D D State Table, State D inputs D 2 D D = = ST= B= B3= B2= B4= B5= BAD= d d d d d d FP = = Map of D 2,D,D = d d d d d d = = = left column transfers to right column Seq2FSM_G.fm p. 32 evised; February 25, 29 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 to the three outputs D 2 D D. Making the map with as vertical coordinates and 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. Seq2FSM_G.fm p. 33, evised; February 25, 29 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 = d d d d d d = 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 Map of D d d d d d d D 2 = + + D = + + d D = + + d d d share Seq2FSM_G.fm p. 34 evised; February 25, 29 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 = d d d d d d = Map of D 2,D,D = d d d d = Map of D 2,D,D = d d d d d d = Seq2FSM_G.fm p. 35, evised; February 25, 29 Comment on Slide 8

Transfering Equations Into Next-State Logic -6 Counter, Counts if = Equations from last slide D 2 = + + D = + + D = + + Where the logic equations fit in the state machine D 2 D D 2 = + + D = + + U D D D = + + U U = D D Complete circuit U D 2 D U D D D D Seq2FSM_G.fm p. 36 evised; February 25, 29 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 and --3-5-7- when. Obtain the logic equations, but you do not need to draw the circuit. Seq2FSM_G.fm p. 37, evised; February 25, 29 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 D D D 2 D 2 Influence from D D D D D 2 D 2 OUTPUTS Y Z Moore Mealy W V Moore Seq2FSM_G.fm p. 38 evised; February 25, 29 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. Seq2FSM_G.fm p. 39, evised; February 25, 29 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 + + 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 z2 + y =D D z y + =D D z S 2 = y= z= Seq2FSM_G.fm p. 4 evised; February 25, 29 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, 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. Seq2FSM_G.fm p. 4, evised; February 25, 29 Comment on Slide 2

Next State Logic Maps (Moore Outputs Circuit) Design this logic Next-State LOGIC Ignore output logic for now D 2 = + D = + D = + Counter state table State Next State D values + 2 + + D 2 D D S= S= S3= S2= S4= S5= S7= S6= map for D map for D map for D 2 emember one can loop s if: - They are contained in an even number of loops. - One uses instead of + D = D = + = - Final Design D 2 = ( ) D = D= xz+zx=x z D 2 = ( ) Extended Disjunctive Theorem D 2 = + D = + D = + Seq2FSM_G.fm p. 42 evised; February 25, 29 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 map for D 2 Extend loops over eduction of D2 Using Algebra 2 D 2 = ( ) Parity (number of loops) Odd for s Even for s Extended Disjunctive Theorem D 2 = + + = ( + ) + ( ) = ( ) + ( ) = ( ) Distrb law demorgan xz+zx=x z Seq2FSM_G.fm p. 43, evised; February 25, 29 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 + if b;z= + b= b= Mealy S= b State Outputs S= D 2 = ( ) D 2 b 2 z D 2 S3= D = 2 D S2= D z S4= D S5= D = D z S7= S6= Logic to find Seq2FSM_G.fm p. 44 evised; February 25, 29 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. Seq2FSM_G.fm p. 45, evised; February 25, 29 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 + + + 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= b 2 = b = K Map b Flip right hand pair Map of Z b b= b 2 3 = Map of Z 2 b 3 4 2 Map of Z b 4 Seq2FSM_G.fm p. 46 evised; February 25, 29 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 = and =. 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. Seq2FSM_G.fm p. 47, evised; February 25, 29 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 + + + 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 Z 2 = b + b = b Z = b + b = b - Map of Z b b State D D 2 = ( ) 2 D D = D D D = D D Z = b + b = b - b Outputs Z 2 = b Z = b - Z = b - Seq2FSM_G.fm p. 48 evised; February 25, 29 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. Seq2FSM_G.fm p. 49, evised; February 25, 29 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_G.fm p. 5 evised; February 25, 29 Slide 26 Mealy Output Circuit Systematic Design Seq2FSM_G.fm p. 5, evised; February 25, 29 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_G.fm p. 52 evised; February 25, 29 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. Seq2FSM_G.fm p. 53, evised; February 25, 29 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 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 D 2 = + D = B5 Bott B2 Bott Next-State Logic B3 Bott B4 Bott D 2 D D D = D D D Cartn mvpk Bott Bott Output Logic Z =( + ) Z = D Bott Bott Bott Bott THESE AE NOT FO THE ABOVE MACHINE share Z Z Seq2FSM_G.fm p. 54 evised; February 25, 29 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 Seq2FSM_G.fm p. 55, evised; February 25, 29 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_G.fm p. 56 evised; February 25, 29 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. Seq2FSM_G.fm p. 57, evised; February 25, 29 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 z = z = T D D z Map of z z Seq2FSM_G.fm p. 58 evised; February 25, 29 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 =. Seq2FSM_G.fm p. 59, evised; February 25, 29 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 in a cycle, means just before the end-of-cycle clock edge z CLK z z z t Moore Output Output waits till the clock edge after is complete. Mealy Output Output rises with the 2nd in. Goes down next clock edge. Seq2FSM_G.fm p. 6 evised; February 25, 29 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 Seq2FSM_G.fm p. 6, evised; February 25, 29 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 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 z= Wait for a G G z= z= Got Got Wait for Wait for F z= Found Output F z= 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_G.fm p. 62 evised; February 25, 29 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, one for. 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. Seq2FSM_G.fm p. 63, evised; February 25, 29 Comment on Slide 32

FSM Design: The Moore Sequence Detector Design of a Finite-State Machine A Moore Sequence Detector (cont) Step 2 (Cont) S z= Wait for a Step 3 State Table Symbolic State Table State Next State + output z S S G G G G G S F F S G Step 4 State Assignment Substitute bits for state names. For now choose arbitrary bits S=, G=, G=, F= G G z= z= Got Got Wait for a Wait for a F z= Found Output Two branches from each state State Table; After State Assignment + + State Next State D inputs D D output z S= S= G= G= G= G= G2= S= F= F= S= G= Seq2FSM_G.fm p. 64 evised; February 25, 29 Slide 33 FSM Design: The Moore Sequence Detector A Moore Machine (cont) A Moore Machine (cont) Completing the State Graph Consider state G When in G (Got ), one has had an first of. Suppose one get a second. Then the first is discarded as not part of a sequence, but the second may be the start of another sequence, hence stay in G. Consider state G When in G, one knows one received. However suppose one then gets a 2nd, for a sequence so far of This is not part of anything so one must go back to S and wait for a. Building State Tables First build a table with symbolic names like S, G,...(step 3) Then do a state assignment (step 4). This state assignment may be done: - to minimize logic, - to minimize the number of flip-flops that change between states. This tends to save logic and especially power. - to minimize designer effort. This often means an arbitrary or random assignment. Seq2FSM_G.fm p. 65, evised; February 25, 29 Comment on Slide 33