New version page

# Berkeley COMPSCI 61C - Finite-State Machines

Pages: 6
Documents in this Course

## This preview shows page 1-2 out of 6 pages.

View Full Document
Do you want full access? Go Premium and unlock all 6 pages.
Do you want full access? Go Premium and unlock all 6 pages.

Unformatted text preview:

C.10 Finite-State Machines C-67To see how this works, let’s choose a data word, say, 0110, whose error correction code is 011. Here are the four 1-bit error possibilities for this data: 1110, 0010, 0100, and 0111. Now look at the data item with the same code (011), which is the entry with the value 0001. If the error correction decoder received one of the four pos sible data words with an error, it would have to choose between correcting to 0110 or 0001. While these four words with error have only one bit changed from the correct pat tern of 0110, they each have two bits that are different from the alternate correction of 0001. Hence, the error correction mechanism can easily choose to correct to 0110, since a single error is a much higher probability. To see that two errors can be detected, simply notice that all the combinations with two bits changed have a different code. The one reuse of the same code is with three bits different, but if we correct a 2-bit error, we will correct to the wrong value, since the decoder will assume that only a sin gle error has occurred. If we want to correct 1-bit errors and detect, but not erroneously correct, 2-bit errors, we need a distance-4 code. Although we distinguished between the code and data in our explanation, in truth, an error correction code treats the combination of code and data as a single word in a larger code (7 bits in this example). Thus, it deals with errors in the code bits in the same fashion as errors in the data bits. While the above example requires n – 1 bits for n bits of data, the number of bits required grows slowly, so that for a distance-3 code, a 64-bit word needs 7 bits and a 128-bit word needs 8. This type of code is called a Hamming code, after R. Hamming, who described a method for creating such codes. C.10 Finite-State Machines.As we saw earlier, digital logic systems can be classifi ed as combinational or sequential. Sequential systems contain state stored in memory elements internal to the system. Their behavior depends both on the set of inputs supplied and on the contents of the internal memory, or state of the system. Thus, a sequential sys tem cannot be described with a truth table. Instead, a sequential system is described as a fi nite-state machine (or often just state machine). A fi nite-state machine has a set of states and two functions, called the next-state function and the output function. The set of states corresponds to all the possible values of the internal storage. Thus, if there are n bits of storage, there are 2n states. The next-state function is a combinational function that, given the inputs and the current state, determines the next state of the system. The output function produces a set of outputs from the current state and the inputs. Figure C.10.1 shows this dia grammatically. The state machines we discuss here and in Chapter 4 are synchronous. This means that the state changes together with the clock cycle, and a new state is computed once every clock. Thus, the state elements are updated only on the clock edge. We use this methodology in this section and throughout Chapter 4, and we do not fi nite-state machine A sequential logic function con sisting of a set of inputs and out puts, a next-state function that maps the current state and the inputs to a new state, and an output function that maps the current state and possibly the inputs to a set of asserted outputs.next-state function A combi national function that, given the inputs and the current state, determines the next state of a fi nite-state machine.fi nite-state machine A sequential logic function con sisting of a set of inputs and out puts, a next-state function that maps the current state and the inputs to a new state, and an output function that maps the current state and possibly the inputs to a set of asserted outputs.next-state function A combi national function that, given the inputs and the current state, determines the next state of a fi nite-state machine.usually show the clock explicitly. We use state machines throughout Chapter 4 to control the execution of the processor and the actions of the datapath. To illustrate how a fi nite-state machine operates and is designed, let’s look at a simple and classic example: controlling a traffi c light. (Chapters 4 and 5 contain more detailed examples of using fi nite-state machines to control processor execu-tion.) When a fi nite-state machine is used as a controller, the output function is often restricted to depend on just the current state. Such a fi nite-state machine is called a Moore machine. This is the type of fi nite-state machine we use throughout this book. If the output function can depend on both the current state and the current input, the machine is called a Mealy machine. These two machines are equivalent in their capabilities, and one can be turned into the other mechanically. The basic advantage of a Moore machine is that it can be faster, while a Mealy machine may be smaller, since it may need fewer states than a Moore machine. In Chapter 5, we discuss the differences in more detail and show a Verilog version of fi nite-state control using a Mealy machine.Our example concerns the control of a traffi c light at an intersection of a north-south route and an east-west route. For simplicity, we will consider only the green and red lights; adding the yellow light is left for an exercise. We want the lights to cycle no faster than 30 seconds in each direction, so we will use a 0.033 Hz clock so that the machine cycles between states at no faster than once every 30 seconds. There are two output signals: FIGURE C.10.1 A state machine consists of internal storage that contains the state and two combinational functions: the next-state function and the output function. Often, the output function is restricted to take only the current state as its input; this does not change the capability of a sequential machine, but does affect its internals. InputsCurrent stateOutputsClockNext-statefunctionOutputfunctionNextstateC-68 Appendix C The Basics of Logic DesignC.10 Finite-State Machines C-69NSlite: When this signal is asserted, the light on the north-south road is green; when this signal is deasserted, the light on the north-south road is red. EWlite: When this signal is asserted, the light on the east-west road is green; when this

View Full Document Unlocking...