Title: Outline
1Outline
- Node minimization
- dcmin
- complete combinational behavior?
- using latch_expose
- FSM Windowing
2FSM networks - Node Minimization
- Given a NDFSM CSF, find the smallest FSM Y,
such that Y is well-defined and
Y is called a reduction of CSF
If we want Y to be a FSM, then it must be prefix
closed and u-progressive.
3State graph of X
It typically looks like
4dcmin
- We look at a minimization procedure, dcmin, which
used the dont cares in a special way - It works particularly well when some state
information of F is an input to X.
5C-compatibility - dcmin
- Two states and are c-compatible if
their care sets do not intersect, i.e. the care
set of one is completely contained in the dont
care set of the other.
This is the care set for cs assuming that DC
state is not present
6A simple state reduction method-dcmin
- Let be the relation for
the incomplete CSF X, and compute - i.e. those states and inputs for which there
exists a next state and output (the next state
can be either accepting or not). - Order this BDD with the u variables first, and
let be the unique functions below the
u variables that are pointed to. - Two states and are c-incompatible if
and only if there exists i,
i.e. they have a minterm u in
common. - So is a clique of states that can't be
made equivalent , i.e. they must have different
colors which will correspond to equivalent sts.
- Then the c-incompatibility graph is
which has to be
colored. - Suppose is the assignment of states
s to colors c. The new automaton relation for X
is then -
7Simple state reduction
Note that this is a simple coloring problem in
contrast to the compatibilities problem normally
associated with state minimization for
incompletely specified FSMs. In contrast, here a
group of states is c-compatible iff they are
pair-wise c-compatible.
8Example latch splitting
Usage _split -v ltlatch_listgt splits the
current network S into two parts F and X
generates the script to solve the equation F X
S -v toggles verbose default
no ltlatch_listgt the list of latches to be
included in X no spaces are
allowed in the latch list the
numbers of latches are zero-based
for example 0,3,5-7,9 mvsis 01gt rl
s27.blif mvsis 02gt _split 0-1
fixed part
Creates two files s27a.blif and
s27f.blif, and 4 scripts
particular solution
9s27S.script (solve script)
Language solving script (partitioned) generated
by MVSIS for latch splitting of sequential
network "s27.blif" on Tue Mar 23 102749 2004
Command line was "_split 0-1". echo "Solving
the language equation ... " solve s27f.blif
s27.blif G0,G1,G2,G3,G7 G5,G6 s27xs.aut psa
s27xs.aut
s27SC.script (verification script)
echo "Verifying the (partitioned) composition in
the spec ... " support G0,G1,G2,G3,G7,G5,G6,G17
s27xs.aut suppx.aut X read_blif
s27f.blif latch_expose stg_extract
s27f.aut support G0,G1,G2,G3,G7,G5,G6,G17
s27f.aut suppf.aut F product
suppx.aut suppf.aut prod.aut
XF support
G0,G1,G2,G3,G17 prod.aut prod.aut determinize
prod.aut prod.aut read_blif s27.blif
S stg_extract s27s.aut support
G0,G1,G2,G3,G17 s27s.aut supps.aut check prod.aut
supps.aut
check containment
10Running the scripts
mvsis 02gt source s27S.script Solving the language
equation ... Progressive 0.00 sec "csf"
incomplete (6 st), deterministic, non-progressive
(6 st), and non-Moore (6 st). 7 inputs (7 FSM
inputs) 7 states (7 accepting) 32 trans Inputs
G0,G1,G2,G3,G7,G5,G6 mvsis 02gt source
s27SC.script Verifying the (partitioned)
composition in the spec ... The STG with 2 states
and 4 transitions is written to file
"s27f.aut". Product (7 st, 32 trans) x (2 st, 4
trans) -gt (6 st, 25 trans) The automaton is
deterministic determinization is not
performed. The STG with 6 states and 25
transitions is written to file "s27s.aut". Warning
Automaton "csfs27" is completed before
checking. Warning Automaton "s27" is completed
before checking. "csfs27" and "s27" are
sequentially equivalent mvsis 05gt
11s27xs.aut
12mvsis 06gt rl s27a.blif mvsis 07gt stg_extract
s27a.aut mvsis 08gt support G0,G1,G2,G3,G7,G5,G6
s27a.aut s27a_supp.aut
mvsis 08gt check s27a_supp.aut s27xs.aut The
behavior of "s27" is contained in the behavior of
"csf".
13dcmin applied to X
mvsis 08gt check s27a_supp.aut s27xs_dcmin Warning
Automaton "s27" is completed before
checking. There is no behavior containment among
"s27" and "csf".
Dcmin used the dont cares in a different way
than s27a.
14Another Idea Extracting Global Combinational
Behavior
.model s27a.blif .inputs G0 G1 G2 G3 G10 G11 G13
G17a .outputs G17 G5 G6 G7 .latch G10a G5
0 .latch G11a G6 0 .latch G13a G7 0 .names G10
G10a 1 1 .names G11 G11a 1 1 .names G13 G13a 1
1 .names G17a G17 1 1 .end
S27a.blif (Latches only)
S27.blif
G17
G10 G11 G13 G17a
G5 G6 G7
X (All comb. logic)
G0 G1 G2 G3
15S27xs.aut
49 states, 1649 transitions
16s27xs_dcmin.aut
17Using latch_expose on s27.blif
Language solving script (partitioned) generated
by MVSIS for latch splitting of sequential
network "s27.blif" on Sat Mar 20 123616 2004
Command line was "_split 0-2". echo "Solving
the language equation ... " solve s27a.blif
s27x.blif G0,G1,G2,G3,G5,G6,G7 G10,G11,G13,G17a
s27xxs.aut psa s27xxs.aut
mvsis 01gt source s27Sx.script Solving the
language equation ... Progressive 0.00
sec "csf" incomplete (48 st), deterministic,
non-progressive (48 st), and non-Moore (48 st) 11
inputs (11 FSM inputs) 49 states (49 accepting)
1649 trans Inputs G0,G1,G2,G3,G5,G6,G7,G10,G11
,G13,G17a
18The question is whether this is anything
different than the original combinational logic?
19Other ideas on reduction of CSF
- This problem is similar to SOP minimization when
using CF to minimize the node in the
combinational network. - Many cost functions are possible. If we try to
minimize the number of states in CSF, it is the
problem of minimizing a PNDFSM - T. Kam et. al., DAC 1994.
- We might want to look for a good implementation
directly, rather than first minimizing the number
of states. - Similarly, for a node in the combinational
circuit, looking for a small SOP, or the minimum
number of literals in FF, may be misleading. - A specialized algorithm has been developed to
check whether a combinational solution (a
single-state reduction) exists. - The problem is reduced to SAT with as many
variables as there are states transitions in
the CSF. Solution is practical for, say, 100
states and 500 transitions. - A similar algorithm can be developed to check
whether a 2 or 3 state solution exists - more variables, the SAT problem is harder
20Iterative language solving
- The problem of computing the CSF can be
iterative. - Given F, let S F
- Split F into F1 and F2
- Solve F1 X S.
- If we can reduce X to a smaller implementation
than F2, replace F2 - Solve F2 X S
- If we can reduce X to a smaller implementation
than F1, replace F1 - Set F F1 F2
- If either F1 or F2 has changed, go to 2
21FSM Windowing
X1
FSM1
i
X2
X
FSM2
FSM3
X3
X X1 X2 X3
conjecture
How does this generalize for different
topologies? Can we use abstraction?
22Future developments
- Objective is to push to the limit, the size of
application that can be done - Keep multi-level MV structure, given in MVSIS, as
long as possible (lecture on this later) - Use SAT in subset construction
- The bottleneck looks to be extracting good
sub-behavior of CSF (reduction) - A sub-graph of the CSF usually not good enough
- Simplified (dcmin) state minimization of CSF
may be good first step if coloring can be
controlled better? - Try for a good sub-behavior more directly without
constructing CSF - Try hierarchy and windowing applied to FSM network