Use a Moore machine whose state records the longest suffix of the received stream that is also a prefix of the target word. The transitions areThe last row preserves overlap: after recognition, one more one leaves suffix , giving . Initialize to and update the state on each active clock edge; the output after that edge reports whether the word has just ended. This is a prefix-suffix sequence recognizer.
State transitions of the overlapping Moore machine recognizer
. Edge labels are input bits. Only the shaded, double-ring state produces output one. Details.Five distinct states require three D flip-flops, since . Choose the state encoding equal to the three-bit binary expansion of . Write the present bits as , in decreasing significance. The state transition table isThe dashes are don't-care conditions for minimizing the logic. They do not prescribe what the actual circuit will do in those unused states; part (e) determines that from the chosen equations.
With the encoding in part (b), is a valid Moore machine output equation. Among reachable states, exactly at . This uses unused output-table entries as don't-care conditions. If one instead wants the output to be zero in every unused state, use ; that extra requirement does not change any output from a valid state.
Use four-variable Karnaugh maps with rows and columns , both in Gray code order. A dash denotes an unused present state. The maps for the three next-state bits areFor , join its sole one with the dash directly below it. For , use the four-cell groups and , and the two-cell group ; the last group wraps between the top and bottom rows. For , join the one at row , column to the dash below it; the one at row , column is isolated. These prime implicants giveHere products mean Boolean conjunction and sums mean Boolean disjunction. The inputs are the desired next-state bits of the three D flip-flops. The equations are independent of the unused values except for the explicitly chosen Karnaugh map groups.
Evaluate the implemented equations from part (d), rather than the don't-care entries of the original table:States and enter a valid state after one edge. State does so after one edge for zero, or moves to and enters a valid state on the following edge for either next input. Thus every unused state recovers within at most two clock edges, independently of the incoming bits. The machine cannot become trapped there. This self-starting finite-state machine property does not guarantee meaningful recognizer output during recovery; initialization to still establishes the intended stream history.
Articles by others on the same topic
There are currently no matching articles.
