Optimal State Assignment for Finite State Machines

Computer-Aided synthesis of sequential functions of VLSI systems, such as microprocessor control units, must include design optimization procedures to yield area-effective circuits. We model sequential functions as deterministic synchronous Finite State Machines (FSM's), and we consider a regular and structured implementation by means of Programmable Logic Arrays (PLA's) and feedback registers. State assignment, i.e., binary encoding of the internal states of the finite state machine, affects substantially the silicon area taken by such an implementation. Several state assignment techniques have been proposed in the past. However, to the best of our knowledge, no Computer-Aided Design tool is in use today for an efficient encoding of control logic. We propose an algorithm for optimal state assignment. Optimal state assignment is based on an innovative strategy: logic minimization of the combinational component of the finite state machine is applied before state encoding. Logic minimization is performed on a symbolic (code independent) description of the finite state machine. The minimal symbolic representation defines the constraints of a new encoding problem, whose solutions are the state assignments that allow the implementation of the PLA with at most as many product-terms as the cardinality of the minimal symbolic representation. In this class, an optimal encoding is one of minimal length satisfying these constraints. A heuristic algorithm constructs a solution to the constrained encoding problem. The algorithm has been coded in a computer program, KISS, and tested on several examples of finite state machines. Experimental results have shown that the method is an effective tool for designing finite state machines.

[1]  JAMES R. STORY,et al.  Optimum State Assignment for Synchronous Sequential Circuits , 1972, IEEE Transactions on Computers.

[2]  James H. Tracey Internal State Assignments for Asynchronous Sequential Machines , 1966, IEEE Trans. Electron. Comput..

[3]  Alberto L. Sangiovanni-Vincentelli,et al.  Multiple Constrained Folding of Programmable Logic Arrays: Theory and Applications , 1983, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[4]  Peter Weiner,et al.  Optimization of Reduced Dependencies for Synchronous Sequential Machines , 1967, IEEE Trans. Electron. Comput..

[5]  Richard M. Karp,et al.  Some Techniques of State Assignment for Synchronous Sequential Machines , 1964, IEEE Trans. Electron. Comput..

[6]  Edward J. McCluskey,et al.  The Coding of Internal States of Sequential Circuits , 1964, IEEE Trans. Electron. Comput..

[7]  Giovanni De Micheli,et al.  Smile: a computer program for partitioning of programmed logic arrays , 1983 .

[8]  Douglas B. Armstrong On the Efficient Assignment of Internal Codes to Sequential Machines , 1962, IRE Trans. Electron. Comput..

[9]  Gabriele Saucier State Assignment of Asynchronous Sequential Machines Using Graph Techniques , 1972, IEEE Transactions on Computers.

[10]  Hwa C. Torng,et al.  An Algorithm for Finding Secondary Assignments of Synchronous Sequential Circuits , 1968, IEEE Transactions on Computers.

[11]  Emil L. Post Introduction to a General Theory of Elementary Propositions , 1921 .

[12]  Alberto L. Sangiovanni-Vincentelli,et al.  Symmetric Displacement Algorithms for the Timing Analysis of Large Scale Circuits , 1983, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[13]  Stephen Y. H. Su,et al.  Computer Minimization of Multivalued Switching Functions , 1972, IEEE Transactions on Computers.

[14]  Douglas W. Brown,et al.  A State-Machine Synthesizer -- SMS , 1981, 18th Design Automation Conference.

[15]  Tiziano Villa,et al.  Computer-aided synthesis of PLA-based finite-state machines , 1983 .

[16]  Douglas B. Armstrong,et al.  A Programmed Algorithm for Assigning Internal Codes to Sequential Machines , 1962, IRE Trans. Electron. Comput..

[17]  Daniel L. Ostapko,et al.  MINI: A Heuristic Approach for Logic Minimization , 1974, IBM J. Res. Dev..

[18]  Alberto L. Sangiovanni-Vincentelli,et al.  An Algorithm for Optimal PLA Folding , 1982, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[19]  Zvi Kohavi Secondary State Assignment for Sequential Machines , 1964, IEEE Trans. Electron. Comput..

[20]  Stanley L. Hurst,et al.  Multiple-Valued Logic—its Status and its Future , 1984, IEEE Transactions on Computers.

[21]  H. Allen Curtis,et al.  Systematic Procedures for Realizing Synchronous Sequential Machines Using Flip-Flop Memory: Part I , 1969, IEEE Transactions on Computers.

[22]  Juris Hartmanis,et al.  On the State Assignment Problem for Sequential Machines. I , 1961, IRE Trans. Electron. Comput..