outline node minimization dcmin complete combinational behavior? using latch_expose fsm...
TRANSCRIPT
Outline
•Node minimization•dcmin
•complete combinational behavior?
•using latch_expose
•FSM “Windowing”
FSM networks - Node MinimizationFSM networks - Node Minimization
Given a NDFSM Given a NDFSM CSFCSF, find the “smallest” , find the “smallest” FSM FSM YY, such that , such that YY is is well-definedwell-defined and and
YY is called a is called a reductionreduction of CSF of CSF
Y CSF
If we want Y to be a FSM, then it must be prefix closed and u-progressive.
State graph of X
It typically looks likeIt typically looks likenon-acceptingnon-accepting
don’t care statedon’t care state
dcmin
• We look at a minimization procedure, dcmin, which used the don’t cares in a special way
• It works particularly well when some state information of F is an input to X.
C-compatibility - C-compatibility - dcmindcmin
Two states and are Two states and are c-compatiblec-compatible if their if their carecare sets do not intersect, i.e. the care set of sets do not intersect, i.e. the care set of one is completely contained in the don’t care one is completely contained in the don’t care set of the other.set of the other.
1s 2s
ss11 ss22 states
uu-spaceCareCaresetset
CareCaresetset
RemainingRemainingDCDC
,( , ) ( , , , )v nsY cs u X cs u v ns1 2( , ) ( , )Y s u Y s u
X X ((cs,u,v,nscs,u,v,ns))
uu vv
This is the care set for cs assuming that DC state is not present
A simple state reduction method-A simple state reduction method-dcmindcmin• 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
, '( , ) ( , , , ')v sY s u X s v u s
{ ( )}ip s
( , ') ( ) ( ')i ii
I s s p s p s
1 2( ) ( ) 1i ip s p s 1s 2s
( )ip s
( , )Q s c
, ''( , , , ') ( , ) ( , , , ') ( ', ')s sX c v u c Q s c X s v u s Q s c
( , , , ')X s v u s
Simple state reduction
Mergedstates 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.
uu-space CareCaresetset
CareCaresetset
CareCaresetset
RemainingDC
Example – latch splittingUsage: _split [-v] <latch_list> 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]<latch_list> : 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 01> rl s27.blifmvsis 02> _split 0-1
Creates two files – s27a.blif and s27f.blif, and 4 scripts
F
X
particular solution
fixed part
# Language solving script (partitioned) generated by MVSIS# for latch splitting of sequential network "s27.blif" on Tue Mar 23 10:27:49 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.autpsa s27xs.aut
s27S.script (“solve script”)
echo "Verifying the (partitioned) composition in the spec ... "support G0,G1,G2,G3,G7,G5,G6,G17 s27xs.aut suppx.aut Xread_blif s27f.bliflatch_exposestg_extract s27f.autsupport G0,G1,G2,G3,G7,G5,G6,G17 s27f.aut suppf.aut Fproduct suppx.aut suppf.aut prod.aut XFsupport G0,G1,G2,G3,G17 prod.aut prod.autdeterminize prod.aut prod.autread_blif s27.blif Sstg_extract s27s.autsupport G0,G1,G2,G3,G17 s27s.aut supps.autcheck prod.aut supps.aut check containment
s27SC.script (verification script)
mvsis 02> source s27S.scriptSolving 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 transInputs = { G0,G1,G2,G3,G7,G5,G6 }
mvsis 02> source s27SC.scriptVerifying 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) -> (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 "csf*s27" is completed before checking.Warning: Automaton "s27" is completed before checking."csf*s27" and "s27" are sequentially equivalentmvsis 05>
Running the scripts
s27xs.aut
S27a_supp.aut
mvsis 06> rl s27a.blifmvsis 07> stg_extract s27a.autmvsis 08> support G0,G1,G2,G3,G7,G5,G6 s27a.aut s27a_supp.aut
mvsis 08> check s27a_supp.aut s27xs.autThe behavior of "s27" is contained in the behavior of "csf".
F
X
S27xs_dcmin.autS27a_supp.aut
Dcmin used the don’t cares in a different way than s27a.
S27a_supp.aut is not contained in s27xs_dcmin.aut
G0, G1, G2, G3, G7G0, G1, G2, G3, G7, G5, G6, G5, G6inputsinputs outputsoutputs
mvsis 08> check s27a_supp.aut s27xs_dcminWarning: Automaton "s27" is completed before checking.There is no behavior containment among "s27" and "csf".
dcmin applied to X
Another 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 G10a1 1.names G11 G11a1 1.names G13 G13a1 1.names G17a G171 1
.end
S27a.blifS27a.blif ((Latches onlyLatches only))
XX((All comb.All comb.
logiclogic))
G0 G1 G2 G3
G5 G6 G7G10 G11 G13 G17a
G17S27.blif
S27xs.aut49 states, 1649 transitions
s27xs_dcmin.aut
Using latch_expose on s27.blif
# Language solving script (partitioned) generated by MVSIS# for latch splitting of sequential network "s27.blif" on Sat Mar 20 12:36:16 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.autpsa s27xxs.aut
mvsis 01> source s27Sx.scriptSolving 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 transInputs = { G0,G1,G2,G3,G5,G6,G7,G10,G11,G13,G17a }
The question is whether this is anything different than the original combinational logic?
Other ideas on reduction of CSF• This problem is similar to SOP minimization when using CFCF to minimize
the node in the combinational network.• Many cost functions are possible. If we try to minimize the number of states
in CSFCSF, 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 A specialized algorithm has been developed to check whether a
combinational solution (a single-state reduction) exists. combinational solution (a single-state reduction) exists. – The problem is reduced to SAT with as many variables as there are states + transitions The problem is reduced to SAT with as many variables as there are states + transitions
in the in the CSFCSF. Solution is practical for, say, 100 states and 500 transitions.. 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 A similar algorithm can be developed to check whether a 2 or 3 state solution exists
• more variables, the SAT problem is hardermore variables, the SAT problem is harder
Iterative language solving
The problem of computing the CSF can be iterative.1. Given F, let S = F2. Split F into F1 and F2
3. Solve F1 * X = S. 4. If we can reduce X to a smaller implementation than F2, replace
F2
5. Solve F2 * X = S6. If we can reduce X to a smaller implementation than F1, replace
F1
7. Set F = F1 * F2
8. If either F1 or F2 has changed, go to 2
FSM Windowing
XX
FSMFSM33
FSMFSM22
FSMFSM11
ii
XX11
XX22
XX33
X = XX = X11 * * XX22 * * XX33conjecture:
How does this generalize for different topologies? Can we use abstraction?
Future developmentsFuture 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