When a sequential machine becomes large and complex, it is desirable to divide the machine up into several smaller machines that are linked together. Each of the smaller machines is easier to design and implement. Also, one of the submachines may be ‘called’ in several different places by the main machine. This is analogous to dividing a large software program into procedures that are called by the main program.
Above Figure shows the SM charts for two serially linked state machines. The machine
(Machine ‘A’) executes a sequence of some states until it is ready to call the submachine (machine ‘B’). When state SA is reached, the output signal ZA activates machine B. Machine B then leaves its idle state and executes a sequence of other states. When it is finished, it outputs ZB before returning to the idle state. When machine A receives ZB, it continues to execute other states. These two machines are assumed to have a common clock.