State assignment techniques — short review

The task of the (near)optimal FSM state encoding can be generally formulated as assignment of such binary vectors to the state symbols that the resulting binary next-state and output functions can be efficiently implemented with a given implementation technology. It is therefore clear why the evolution of state encoding algorithms is intimately related to the evolution of the implementation platforms. The first attempts at algorithms of state assignment for computer program implementation date back to 1960s, when the implementation technology were diodes, transistors and simple gates. Following the methods of human designers, formulated by Humphrey [13] as the “rules for state code adjacency”, the algorithms proposed in [3][2][10] are based on grouping together 1’s in the Karnaugh tables of the resulting binary output and next-state functions, and in result on maximizing the size and minimizing the number of product terms in the sum-of-product expressions describing the combinational part of the FSM realization. Even though the technology changed, the observations formulated by Humphrey became foundation for the next generations of algorithms. This was also the case with the family of algorithms based on symbolic minimization. This novel idea implemented by de Micheli in Kiss [8] in 1985 consists in performing the logic minimization phase before the state encoding. The minimization phase takes advantage of the well defined realization cost for PLA technology, which may be closely estimated by the number of inputs, outputs and product terms in minimized cover of the functions. The minimized functions could be realized in PLA technology at the cost (in terms of circuit area) determined prior to encoding, assuming that the constructed code will satisfy all encoding constraints resulting from the symbolic minimization phase. The state encoding problem is in this way reduced to satisfaction of the so called face or input constraints expressing certain relations between the codes of some groups of states. The method implemented in Kiss has however several shortcomings. First of all, in the symbolic minimization phase the binary next-state functions are assumed to have disjoint on-sets. Thus, the nextstate function minimization is not taken into account. This aspect is especially apparent for counter FSMs, where minimized symbolic cover for 2p-state counter has 2 product terms, while the optimum is O(p2). Moreover, the FSM’s feedback is not properly taken into account. Also the constraint satisfaction algorithm is just a simple-minded, greedy search. The idea corresponding to symbolic minimization (minimization of generalized implicants) was even earlier pursued in [5]. However, the computational complexity of the presented (admittedly, much more sophisticated) method made it impractical for FSMs larger that 8 states. In 1988, Jóźwiak published the method of maximal adjacencies, Maxad, targeting two-level logic implementations (PLA and random logic AND-OR circuits) [14][15][17]. Although the method uses the “state code adjacency” concept, it differs considerably from the previous methods based on this idea. Jóźwiak considers many sorts of adjacencies, performs a sophisticated adjacency analysis and uses the results of the analysis very effectively in a sophisticated code construction performed in the framework of an effective and efficient double-beam search algorithm. This resulted in a state assignment tool that efficiently produced much better results than any other method published at that time. Compared to Kiss, the machines encoded by Maxad have realizations with on average 13% smaller PLA area and