1 / 22

Outline

Explore the concept of node minimization and latch exposure in FSM networks, focusing on reduction procedures like dcmin and well-defined FSM criteria. Learn about state graph representation and state reduction techniques to achieve a compact FSM architecture. Dive into methods like latch splitting and progressive solutions for partitioning sequential networks effectively.

earlea
Download Presentation

Outline

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Given a NDFSM CSF, find the “smallest” FSM Y, such that Y is well-defined and FSM networks - Node Minimization Y is called a reduction of CSF If we want Y to be a FSM, then it must be prefix closed and u-progressive.

  3. non-accepting don’t care state State graph of X It typically looks like

  4. 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.

  5. s1 s2 states v u X (cs,u,v,ns) u-space Care set Remaining DC Care set C-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 don’t care set of the other. This is the care set for cs assuming that DC state is not present

  6. A simple state reduction method-dcmin • Let be the relation for the incompleteCSFX, 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

  7. Merged states Care set u-space Care set Remaining DC Care set Simple 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.

  8. F X Example – latch splitting Usage: _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.blif mvsis 02> _split 0-1 fixed part Creates two files – s27a.blif and s27f.blif, and 4 scripts particular solution

  9. s27S.script (“solve script”) # 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.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

  10. Running the scripts mvsis 02> 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 02> 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) -> (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 equivalent mvsis 05>

  11. s27xs.aut

  12. S27a_supp.aut F X mvsis 06> rl s27a.blif mvsis 07> stg_extract s27a.aut mvsis 08> support G0,G1,G2,G3,G7,G5,G6 s27a.aut s27a_supp.aut mvsis 08> check s27a_supp.aut s27xs.aut The behavior of "s27" is contained in the behavior of "csf".

  13. G0, G1, G2, G3, G7, G5, G6 inputs outputs S27a_supp.aut S27xs_dcmin.aut S27a_supp.aut is not contained in s27xs_dcmin.aut dcmin applied to X mvsis 08> 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 don’t cares in a different way than s27a.

  14. 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 G10a 1 1 .names G11 G11a 1 1 .names G13 G13a 1 1 .names G17a G17 1 1 .end S27.blif S27a.blif (Latches only) G17 G10 G11 G13 G17a G5 G6 G7 X (All comb. logic) G0 G1 G2 G3

  15. S27xs.aut 49 states, 1649 transitions

  16. s27xs_dcmin.aut

  17. 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.aut psa s27xxs.aut mvsis 01> 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 }

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

  19. Other 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

  20. Iterative 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

  21. FSM 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?

  22. Future 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

More Related