outline node minimization dcmin complete combinational behavior? using latch_expose fsm...

22
Outline •Node minimization •dcmin •complete combinational behavior? •using latch_expose •FSM “Windowing”

Upload: madisen-lynne

Post on 22-Dec-2015

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Outline Node minimization dcmin complete combinational behavior? using latch_expose FSM “Windowing”

Outline

•Node minimization•dcmin

•complete combinational behavior?

•using latch_expose

•FSM “Windowing”

Page 2: 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.

Page 3: Outline Node minimization dcmin complete combinational behavior? using latch_expose FSM “Windowing”

State graph of X

It typically looks likeIt typically looks likenon-acceptingnon-accepting

don’t care statedon’t care state

Page 4: Outline Node minimization dcmin complete combinational behavior? using latch_expose FSM “Windowing”

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.

Page 5: Outline Node minimization dcmin complete combinational behavior? using latch_expose FSM “Windowing”

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

Page 6: Outline Node minimization dcmin complete combinational behavior? using latch_expose FSM “Windowing”

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

Page 7: Outline Node minimization dcmin complete combinational behavior? using latch_expose FSM “Windowing”

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

Page 8: Outline Node minimization dcmin complete combinational behavior? using latch_expose FSM “Windowing”

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

Page 9: Outline Node minimization dcmin complete combinational behavior? using latch_expose FSM “Windowing”

# 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)

Page 10: Outline Node minimization dcmin complete combinational behavior? using latch_expose FSM “Windowing”

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

Page 11: Outline Node minimization dcmin complete combinational behavior? using latch_expose FSM “Windowing”

s27xs.aut

Page 12: Outline Node minimization dcmin complete combinational behavior? using latch_expose FSM “Windowing”

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

Page 13: Outline Node minimization dcmin complete combinational behavior? using latch_expose FSM “Windowing”

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

Page 14: Outline Node minimization dcmin complete combinational behavior? using latch_expose FSM “Windowing”

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

Page 15: Outline Node minimization dcmin complete combinational behavior? using latch_expose FSM “Windowing”

S27xs.aut49 states, 1649 transitions

Page 16: Outline Node minimization dcmin complete combinational behavior? using latch_expose FSM “Windowing”

s27xs_dcmin.aut

Page 17: Outline Node minimization dcmin complete combinational behavior? using latch_expose FSM “Windowing”

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 }

Page 18: Outline Node minimization dcmin complete combinational behavior? using latch_expose FSM “Windowing”

The question is whether this is anything different than the original combinational logic?

Page 19: Outline Node minimization dcmin complete combinational behavior? using latch_expose FSM “Windowing”

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

Page 20: Outline Node minimization dcmin complete combinational behavior? using latch_expose FSM “Windowing”

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

Page 21: Outline Node minimization dcmin complete combinational behavior? using latch_expose FSM “Windowing”

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?

Page 22: Outline Node minimization dcmin complete combinational behavior? using latch_expose FSM “Windowing”

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