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

Slides:



Advertisements
Similar presentations
Optimization of Sequential Networks Step in Synthesis: Problem Flow Table Reduce States Minimum-State Table State Assignment Circuit Transition Table Flip-Flop.
Advertisements

Some Slides from: U.C. Berkeley, U.C. Berkeley, Alan Mishchenko, Alan Mishchenko, Mike Miller, Mike Miller, Gaetano Borriello Gaetano Borriello Introduction.
CSE 311 Foundations of Computing I
VIII - Working with Sequential Logic © Copyright 2004, Gaetano Borriello and Randy H. Katz 1 Finite state machine optimization State minimization  fewer.
MVI Function Review Input X is p -valued variable. Each Input can have Value in Set {0, 1, 2,..., p i-1 } literal over X corresponds to subset of values.
CMPT 354, Simon Fraser University, Fall 2008, Martin Ester 52 Database Systems I Relational Algebra.
1 Introduction to Computability Theory Lecture12: Decidable Languages Prof. Amos Israeli.
Sequential Circuit Design
Infinite Automata -automata is an automaton that accepts infinite strings A Buchi automaton is similar to a finite automaton: S is a finite set of states,
ECE 331 – Digital System Design
ECE 331 – Digital System Design
Languages. A Language is set of finite length strings on the symbol set i.e. a subset of (a b c a c d f g g g) At this point, we don’t care how the language.
Penn ESE 535 Spring DeHon 1 ESE535: Electronic Design Automation Day 13: March 4, 2009 FSM Equivalence Checking.
Lecture 14 Go over midterm results Algorithms Efficiency More on prime numbers.
Technology Mapping.
Finite State Machine Minimization Advanced Methods based on triangular table and binate covering.
NP-Complete Problems Reading Material: Chapter 10 Sections 1, 2, 3, and 4 only.
Outline Composition, Conformance Topologies Proof of solution Node flexibilities Examples Node minimization Windowing C-progressive.
NP-Complete Problems Problems in Computer Science are classified into
Penn ESE 535 Spring DeHon 1 ESE535: Electronic Design Automation Day 22: April 23, 2008 FSM Equivalence Checking.
Computing with Finite Automata 290N: The Unknown Component Problem Lecture 9.
ECE Synthesis & Verification - Lecture 19 1 ECE 667 Spring 2009 ECE 667 Spring 2009 Synthesis and Verification of Digital Systems Functional Decomposition.
Computation Engines: BDDs and SAT (part 2) 290N: The Unknown Component Problem Lecture 8.
Nov. 13, 2002ICCAD 2002 Simplification of Non-Deterministic Multi-Valued Networks Alan Mishchenko Electrical and Computer Engineering Portland State University.
ECE Synthesis & Verification - L211 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Systems Verification Equivalence checking.
Using MVSIS for Language Equation Solving
Engineering Models and Circuit Realization of Quantum State Machines.
Exact State Minimization of Non-Deterministic FSMs 290N: The Unknown Component Problem Lecture 17.
Sept. 19, 2002Workshop on Boolean Problems A Theory of Non-Deterministic Networks R. K. Brayton EECS Dept. University of California Berkeley.
ECE 667 Synthesis and Verification of Digital Systems
Computing with Finite Automata (part 2) 290N: The Unknown Component Problem Lecture 10.
State Minimization and Determinization EECS 290A Sequential Logic Synthesis and Verification.
CSE 311: Foundations of Computing Fall 2014 Lecture 23: State Minimization, NFAs.
Zvi Kohavi and Niraj K. Jha 1 Capabilities, Minimization, and Transformation of Sequential Machines.
Nattee Niparnan. Easy & Hard Problem What is “difficulty” of problem? Difficult for computer scientist to derive algorithm for the problem? Difficult.
CALTECH CS137 Spring DeHon CS137: Electronic Design Automation Day 9: May 6, 2002 FSM Equivalence Checking.
Week 10Complexity of Algorithms1 Hard Computational Problems Some computational problems are hard Despite a numerous attempts we do not know any efficient.
Combinational Problems: Unate Covering, Binate Covering, Graph Coloring and Maximum Cliques Example of application: Decomposition.
How Much Randomness Makes a Tool Randomized? Petr Fišer, Jan Schmidt Faculty of Information Technology Czech Technical University in Prague
Introduction to State Machine
NP-COMPLETE PROBLEMS. Admin  Two more assignments…  No office hours on tomorrow.
1 Finite State Machines (FSMs) Now that we understand sequential circuits, we can use them to build: Synchronous (Clocked) Finite State Machines Finite.
NP-Complete problems.
Why consider ND-MV networks? Multi-Values: Multi-valued domains can be used to explore larger optimization spaces. Several interesting direct applications.
CSCI 3130: Formal languages and automata theory Andrej Bogdanov The Chinese University of Hong Kong The Cook-Levin.
CALTECH CS137 Winter DeHon CS137: Electronic Design Automation Day 6: January 26, 2004 Sequential Optimization (FSM Encoding)
Lecture 24: 12/3/2002CS170 Fall CS170 Computer Organization and Architecture I Ayman Abdel-Hamid Department of Computer Science Old Dominion University.
Chapter 11 Introduction to Computational Complexity Copyright © 2011 The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 1.
CSCI 2670 Introduction to Theory of Computing December 2, 2004.
1 Using Don’t Cares - full_simplify command Major command in SIS - uses SDC, ODC, XDC Key Questions: How do we represent XDC to a network? How do we relate.
Capabilities, Minimization, and Transformation of Sequential Machines
NP-Completeness (2) NP-Completeness Graphs 4/13/2018 5:22 AM x x x x x
More NP-Complete and NP-hard Problems
P & NP.
Hybrid BDD and All-SAT Method for Model Checking
Sequential Flexibility
Hardware Verification
Synthesis for Verification
Intro to Theory of Computation
A Boolean Paradigm in Multi-Valued Logic Synthesis
Propositional Calculus: Boolean Algebra and Simplification
ESE535: Electronic Design Automation
Synthesis of sequential circuits
Scalable and Scalably-Verifiable Sequential Synthesis
Alan Mishchenko UC Berkeley, US Robert Brayton UC Berkeley, US
Synthesis and Verification of Finite State Machines
Instructor: Alexander Stoytchev
EGR 2131 Unit 12 Synchronous Sequential Circuits
Instructor: Aaron Roth
Chapter5: Synchronous Sequential Logic – Part 3
Presentation transcript:

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

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

State graph of X It typically looks like non-accepting don’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 - 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. s1s1s1s1 s2s2s2s2 states u u -space Careset Careset RemainingDC X (cs,u,v,ns) u v This is the care set for cs assuming that DC state is not present

A 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

Simple state reduction Merged states 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. u u -space Careset Careset Careset Remaining DC

Example – latch splitting Usage: _split [-v] 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] : 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 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: # 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 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 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 s27SC.script (verification script)

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> Running the scripts

s27xs.aut

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

S27xs.aut 49 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: # 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 }

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

Other ideas on reduction of CSF CFThis problem is similar to SOP minimization when using CF to minimize the node in the combinational network. CSFMany 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 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.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 hardermore variables, the SAT problem is harder

Iterative language solving The problem of computing the CSF can be iterative. 1.Given F, let S = F 2.Split F into F 1 and F 2 3.Solve F 1 * X = S. 4.If we can reduce X to a smaller implementation than F 2, replace F 2 5.Solve F 2 * X = S 6.If we can reduce X to a smaller implementation than F 1, replace F 1 7.Set F = F 1 * F 2 8.If either F 1 or F 2 has changed, go to 2

FSM Windowing X FSM 3 FSM 2 FSM 1 i X1X1X1X1 X2X2X2X2 X3X3X3X3 X = X 1 * X 2 * X 3 conjecture: How does this generalize for different topologies? Can we use abstraction?

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