Digital System Design using FSMs. Peter D. Minns
Чтение книги онлайн.
Читать онлайн книгу Digital System Design using FSMs - Peter D. Minns страница 12
The transitions between states are shown as an arrowed line connected between the states.
Figure 1.6 Transition between states.
In addition to the transitional line between states, there is an input signal name.
The right‐angled lines _| represent the clock input (in this case a rising edge 0 to 1) (Figure 1.7).
Figure 1.7 Transition with and without outside world inputs.
In Figure 1.7, the transition between states s0 and s1 will occur at the clock pulse in the upper state diagram, while in the lower state diagram it will only occur if the outside world input set to 1 ‘st = 1’ and a ‘0 to 1’ transition occurs on the clock input.
What changes would be needed to Figure 1.7 to make the transition between s0 and s1 occur when input st = 0?
Turn to Frame 1.9 after you have attempted this question.
The answer is shown in Figure 1.8.
Figure 1.8 Outside world input between states.
Since in this case the outside world input ‘st’ must be equal to zero (denoted by the inverting bar to the left of the input st (as in /st).
That is / means not so /st means not st, i.e. when st = 0, then /st = 1.
Note that outside world inputs always lie along the transitional lines. Also, the reader could be using ‘·’ as well as ‘*’ for ‘AND’. Also, ‘+’ for ‘OR’ in Boolean equations; however, in most cases ‘.’ will be used rather than ‘*’. In some cases no symbol will be used for ‘AND’, as in ‘AB’ to mean ‘A·B’.
The state diagram must also show how the ‘outside world outputs’ are affected. This is achieved by placing the outside world outputs either:
inside the state circle (or square); or
alongside the state circle (or square).
Figure 1.9 shows the outside world outputs P and Q inside the state circles. In this particular case, P is logic 1 in state s0, and changes to logic 0 when the FSM moves to state s1. Output Q does not change in the above transaction, remaining at logic 0 in both states.
Draw a block diagram showing inputs and outputs for the state diagram.
Then turn to Frame 1.10.
Figure 1.9 Placement of outside world outputs.
The block diagram will look like that shown in Figure 1.10.
Figure 1.10 The block diagram for the state diagram shown in Figure 1.9.
Sometimes we show a negating circle to imply that the input is actually inverted (see later).
It is easily obtained from the state diagram since inputs lie along transitional lines and outputs lie inside (or alongside) the state circle. The input st would normally have a negating circle to show it is an active low input. This is common practice.
You may remember that in Frame 1.2 we said that each state had to have a unique state number and that a number of flip‐flops were needed to perform this task. These flip‐flops are part of the internal design of the FSM and are used to produce an internal count sequence; they are essentially acting like a synchronous counter, but one that is controlled by the outside world inputs. The internal count sequence produced by the flip‐flops is used to control the outside world decoder so that outputs can be turned on and off as the FSM moves between states.
In Frames 1.4 and 1.5 we saw the architecture for the Mealy and Moore FSM. In both cases, the memory elements shown are the flip‐flops discussed in the previous paragraph. We look at how the internal flip‐flops are coded in a later chapter.
At this stage it is perhaps worth looking at a simple FSM design in detail. We can then bring together all the ideas discussed so far, as well as introducing a few new ones. Try answering the following questions before moving on:
1 A Mealy FSM differs from a Moore FSM in? (See Frames 1.4and 1.5.)
2 The circles in a state diagram are used to? (See Frames 1.8and 1.9.)
3 Outside world inputs are shown in a state diagram where? (See Frames 1.8and