Next: Problems with existing
Up: STATE ASSIGNMENT FOR
Previous: STATE ASSIGNMENT FOR
A State Assignment Problem is to assign codes to the internal states
of FSM in order to mimimize some cost function related
to the circuit's realization (like PLA area or number of gates).
Most of the research papers discuss only the problem of
assigning internal states, assuming that
the user specifies codes for input and output states.
However, there are efforts based on very similiar principles
which assign input states and output states (specified initially by names)
with binary codes. They have found, for instance, application in minimization
of microprogrammed control units [57]
or in designing control units with PLAs [103].
The problem is a classic in Switching Circuits Theory, but relatively
few programs have been widely available until recent years.
In the early sixties
the basic main approaches
to state assignment and structural theory of FSMs
were formulated. Few of them were
programmed and the programming results were rather unsatisfactory.
Recently the state assignment problem is again gaining momentum
because of widespread attempts to realize a logic level
silicon compiler for VLSI [52] - [61], [121, 122], [138] -
[143].
We will not characterize and evaluate in more detail
the existing approaches here.
The reader can find respective discussion in [52, 55, 59, 122].
However, some comparison of the known approaches
will serve to present the main theoretical and practical issues
that must be solved to make the respective software tools useful.
There are basically seven approaches to state assignment:
-
Partition theory of Hartmanis, Stearns, Kohavi
[92, 93, 91, 168, 106, 113].
The theory is based on a concept of the partition of states of machine
into blocks. Partitions are found from state tables and used to
find sets of partitions producing unique and optimal encodings.
This theory is very elegant from mathematical point of view,
gives an insight into the nature of structural properties of machines,
as well it is very general (it permits also for decomposition of FSMs,
state minimization,
realization with shift-registers, etc.). However, the published
results of programs that use this theory, as well as our own
experience with this approach prove that in general, this
approach is intractable for computer solutions of
FSMs with more than 10 states, 10 inputs, and 10 outputs.
-
Column evaluation approach of Dolotta and Mc Cluskey
[69], extended by Curtis [40, 41], Weiner [182],
Vavilov [179], Torng [176].
The columns of the state table are scored with respect to many
various criteria influencing quality of assignment. The scores
are used to find good partitions and next the assignment.
This approach can produce very good realizations (also for various types
of flip-flops); the results are even better than
those from approach 1,
but is also intractable for machines of more than 12 states.
-
Enumerative approach of Story [170].
All posible partitions are evaluated as candidates for assignment
separately by calculating the complexities
of realizations of the corresponding
Boolean functions, and assuming that all other partitions
have been optimally selected for them. The subset of partitions
with the best scores, also mutually matching, is selected for assignment.
This approach gives better results than the
approach from 2, but it is even slower.
-
Branch and bound approach of Perkowski, Lee and Zasowska
[138, 187, 121, 122, 141].
This approach has two variants. The first permits realization
of machines with 8 input, 8 internal and 8 output states
and gives optimum realizations for arbitrary technology and flip-flops.
However, in this variant nearly all possible partitions have to be evaluated.
This is perhaps the program that generates most optimum solutions
of all the published programs, but is very slow.
The approximate method based on this method [122]
does not evaluate all partitions, but only heuristically
selected best partitions. It
permits for realization of machines with 12 states, but can be
extended to 18 - 20 states.
Both approaches permit for state assignment combined with state minimization.
-
Quadratic assignment approaches of Armstrong, De Micheli and Perkowski
[6, 7, 52, 144].
All these approaches are based on embedding
some graphs created from FSM table to hypercube graphs.
This approach permits for realization of machines to 100
states but according to evaluations from [6],
it gave solutions too far from optimum. Some theoretical improvements were
made in [7], but not programmed.
De Micheli implemented two algorithms for state assignment,
while at UC Berkeley. The first
of them was based on the quadratic assignment method - state assignment
is reduced to the graph embedding problem.
The second algorithm was based on other principles since
he was not satisfied with quality of results.
The results from [144], where both creation of the graph for
embedding and the embedding algorithm were done on new principles,
seem to be very satisfactory
(machines with 136 states have been assigned), but no detailed comparison with
other approaches is yet available.
-
Approach of Moroz [128].
This is a very fast constructive embedding algorithm that is widely
used in design automation systems in
Soviet Union. The author has
implemented this algorithm
and observed that it can find assignments for machines with
more than 100 states, but that the quality of solutions for small
machines was far from optimum.
This is perhaps the fastest program currently available.
The speed results from the fact that it does not solve the
quadratic assignment but simple edges embedding problem, and
also the graph for embedding is created directly from the state graph.
-
Approach of De Michelli, Brayton and Sangiovanni-Vincentelli
[52] - cite[DeMi 85b], [23, 151] (KISS program).
This approach is based on minimization of multiple-valuated
Boolean functions to find state groups and then constructive
assignment
by embedding of these groups to the faces of a hypercube.
Its strategy is very innovative and the computer
results are very good. It is perhaps the best product currently
available from the point of quality/time ratio.
It was applied to machines with up to 100 states, but the largest
published result is for 27 states.
The groups of states are found with the use of multi-valued
Boolean minimization program Espresso-mv
[23, 150, 151]
applied to FSM before state assignment.
This method of finding groups of states (blocks), combined
with fast Boolean minimization was a source of program's
success.
The Kiss program is now widely available in universities
and is used by many companies to build commercial software.
A program extending this approach was built in Intel [36].
Next: Problems with existing
Up: STATE ASSIGNMENT FOR
Previous: STATE ASSIGNMENT FOR
Marek Perkowski
Tue Nov 11 20:04:24 PST 1997