Initializability Consideration in Sequential Machine Synthesis

It is shown that a finite state machine, whose state encoding is obtained only to reduce the amount of logic in the final implementation, may not be initializable by a logic simulator or a test generator even when the circuit is functionally initializable (i.e., has synchronizing sequences). A fault simulator or a sequential circuit test generator, that assumes all memory elements initially to be in the unknown state, will be totally ineffective for such a design. Proper consideration for initializability during state assignment and logic optimization can guarantee the success for gate level analysis tools. In this paper, the conditions for initializability of finite state machines are derived and an automatic state assignment algorithm for logic minimality and initializability is given. Experimental results show that, in most cases, this method does not require more hardware than the other methods that may produce an uninitializable design. A partial reset technique, recommended for machines without a synchronizing sequence, is also discussed.