1 / 38

Foundations of Reachability Analysis

Foundations of Reachability Analysis. EECS 290A Sequential Logic Synthesis and Verification Lecture 1. Overview. Sequential systems are systems with memory elements Behavior can be characterized in terms of states and transitions States can be initial, reachable, unreachable, etc

gratia
Download Presentation

Foundations of Reachability Analysis

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. Foundations of Reachability Analysis EECS 290A Sequential Logic Synthesis and Verification Lecture 1

  2. Overview • Sequential systems are systems with memory elements • Behavior can be characterized in terms of states and transitions • States can be initial, reachable, unreachable, etc • Reachability analysis deals with determining the set of reachable states • The reachable state information is useful in • Logic synthesis (external don’t-cares) • Formal verification (proving a property for reachable states) • Reachability analysis of large systems is a complex task attracting significant research efforts

  3. State level Structural level x z DFF y 0 1 Descriptions of Sequential Systems State transition graph (STG), automaton, FSM Circuit, logic network • States is a higher level description, compared to structure • Going from structure to states is STG extraction • Going from states to structure is implementation (encoding and logic synthesis)

  4. Types of States • A state characterizes the behavior of a sequential system, given a fixed set of values of the memory elements • Initial state: A state, in which the system begins its functioning. • Reachable state: A state that can be reached from the initial one though a finite sequence of transitions under allowed inputs. • Unreachable state: A state that cannot be reached from the initial under any sequence of inputs. Reachable states Unreachable states

  5. 110 11/0 000 010100 00/0 01/010/0 11/1 111 1/0 0/0 1/0 00/1 01/110/1 001 011101 0 0 1 1 1/1 0 1 0/1 1/1 0/0 1/0 1/1 0 1 0/1 State Level Descriptions Automaton Non-Deterministic FSM Deterministic FSM Pseudo-Non-Deterministic FSM

  6. Structural Level Descriptions Latch outputs (LO) Primary outputs (POs) Latches Latch inputs (LI) Latches PO LI Internal nodes Logic LO PI Primary inputs (PIs)

  7. Fanin/Fanout of a Node • Node has only one output. • Node can have any number of inputs (fanins) and can be an input to any number of nodes (fanouts) FO3 FO1 FO2 Fanouts N Node FI2 FI3 FI1 Fanins

  8. Transitive Fanin/Fanout of a Node Transitive fanout (TFO) Node Transitive fanin (TFI)

  9. 3 3 3 2 2 1 2 3 0 1 2 3 3 3 Reachability “Onion Rings”

  10. Computation of Reachable States • Input: Sequential system represented by a transition relation and an initial state (a set of initial states) • Computation: Image computation, set operations on sets of states • Output: A set of reachable states

  11. Relation • Definition. Relation is a subset of the product of two sets, R: A x B. If (a, b) is an element of R then we write a R b, meaning a is related to b by R. x1 y1 x2 y2 x3

  12. Characteristic Function • Relation R: A x B can be represented by a characteristic function: a Boolean function FR(a,b), a A,b B taking value 1 for those a and b that belong to relation R.

  13. Example (continued) x1 x2 x3 y1 y2 0 1 other

  14. Transition Relation • Definition. An FSM is <I, O, S, , , S0 >. • Definition. A transition relation of an FSM is a relation R: I x S x S that is true for a pair of states s1 and s2, iff there is a transition between them under some input.

  15. C 1 0 0 B A 1 0 0,1 Transition Relation of an FSM

  16. C 1 0 0 B A 1 0 0,1 Example (continued) i cs1 ns1 cs2 ns2 0 1

  17. Reachability Pseudo-Code Reachability( Transition Relation TR, Initial State I ) { ReachedStates = I; iterate the following computation: { ReachedStatesNew = Image( TR, ReachedStates ); if (ReachedStatesNew is contained in ReachedStates ) stop; ReachedStates = ReachedStates + ReachedStatesNew; } }

  18. Image Computation Output space • Given a mapping of one Boolean space (input space) into another Boolean space (output space) • For a set of minterms (care set) in the input space • The image is the set of related minterms from the output space • For a set of minterms in the output space • The pre-image is the set of related minterms in the input space Input space Image Care set

  19. Example Input space abc 000 y Output space x Care set 001 xy 010 00 Image 011 01 a b c 100 10 101 11 110 111

  20. Image Computation • Implements formula:Image(Y) = x [R(X,Y) & C(X)] • Implicit methods by far outperform explicit ones • Successfully computing images with more than 2^100 minterms in the input/output spaces • Operations & and are basic Boolean manipulations are implemented using BDDs • To avoid large intermediate results (during and after the product computation), operation AND-EXIST is used, which performs product and quantification in one pass over the BDD

  21. Image Computation Techniques • When the relation is a monolithic one (represented as a single object), these techniques do not work • Sometimes the relation can be decomposed using disjoint-support decomposition, etc. • Some techniques work for a partitioned representation • This representation is natural when the system is represented on the structural level • In this case, the transition relation is given in the form of the set of partitions: T(x,cs,ns) = i Ti(x,cs,nsi) Latches ns cs x

  22. Input Splitting Input space • Select an input variable • Cofactor partition w.r.t. this variable • Compute the images for the cofactors • Union the resulting images abc 000 Output space Care set 001 xy 010 00 Image 011 01 x = a + b y = bc 100 10 a=1 a=0 101 11 x = b y = bc x = 1 y = bc 110 111

  23. Output Splitting • Constrain each function Yi(x) w.r.t the care set C(x) • Recursively compute the image as follows: • Select an output variable yi • Constrain each remaining function using the function yi=Yi(x) • Use the direct polarity • Use the complemented polarity • Find the images of the two resulting sets of functions, Im1(y) and Im2(y) • Combine the images using the ITE operator and the variable yi. Im(y) = ITE(yi, Im1(y), Im2(y)) • Trivial cases: • When function Yj(x) is constant 0 (1), the image is yj’ (yj) • When there is only one non-constant function left, the image is constant 1 (it does not depend on the y variables) • When functions in the set Y can be split into two parts with disjoint support, the image is the product of the two images • When only two functions are left and, for example, Yj1(x) = Yj2(x)’, then, the image is yj1  yj2

  24. Input vs. Output Splitting • These two methods are “symmetric” w.r.t. inputs/outputs • Their efficiency depends on the cardinality of I/O spaces • In some problems, output splitting is more efficient because the output space is smaller than the input space • As a result, the (potentially exponential) tree depth is bounded by a smaller number Variable 1 Variable 2 Variable 3

  25. Quantification Scheduling • Existential quantification and product commute if a variable to be quantified belongs to only one component in the product x [F(x,y) & G(x,y)]  [x F(x,y)] & [x G(x,y)] x [F(y) & G(x,y)] = F(y) & [x G(x,y)] • Scheduling is performed by ordering the partitions, so that the variables are quantified as early as possible Image(Y) = x,i [A(x) & T1(x,i,y) & T2(x,i,y) & … & Tk(x,i,y)] = = xk,ik [ Tk(x,i,y) & & xk-1,ik-1 [Tk(x,i,y) & … & x1,i1 [T1(x,i,y) & x0,i0 A(x)] … ] ]

  26. Project Overview

  27. Project 1:Sequential optimization without state space exploration • The previous work [1] proposes a way to perform sequential optimization using recursive learning across latch boundaries. The goal of this project is to investigate possible extensions of this work, trying to get deeper understanding of the relationship of the algorithm with other sequential optimization techniques. Another goal is to develop an efficient implementation of this method in MVSIS. • [1] A. Mehrotra, S. Qadeer, V. Singhal, R. K Brayton, A. L. Sangiovanni-Vincentelli, A. Aziz. Sequential optimization without state space exploration. Proc. ICCAD ‘97, pp. 208-215.

  28. Project 1:Sequential optimization without state space exploration Scope of recursive learning Latches PO LI Logic LO PI

  29. Project 2: Retiming of AND-INV graphs with latches • Retiming moves latches around • Retiming with unit-delay combinational blocks leads to the reduction of algorithm complexity [1] • The project will explore the impact of the above fact when retiming is applied to the AIG [2] • [1] M. C. Papaefthymiou, Understanding retiming through maximum average-delay cycles. Math. Systems Theory, 27, 1994, pp. 65-84. • [2] A. Mishchenko, S. Chatterjee, R. Jiang, R. Brayton. FRAIGs: A Unifying Representation for Logic Synthesis and Verification. Submitted to DAC ’05.

  30. Project 3: Performing retiming together with technology mapping • A study [1] has shown that the quality of results achieved by iterating retiming and technology mapping for FPGAs can be improved by integrating these transformations into one. • This project will develop a similar technique for ASIC mapping [2] and study its impact on the mapping quality. • [1] J. Cong and C. Wu, Optimal FPGA Mapping and Retiming with Efficient Initial State Computation, IEEE TCAD, vol. 18(11), pp 1595 -1607, Nov. 1999. • [2] A. Mishchenko, S. Chatterjee, R. Brayton, X. Wang, T. Kam. Technology Mapping with Boolean Matching, Supergates and Choices. Submitted to DAC

  31. Project 4: Sequential ATPG using simulation and SAT • Compare the efficiency of ATPG using • Random simulation • Bounded equivalence checking • Unbounded equivalence checking • The result of this experiment will help answer the following questions • How many faults can be detected using the above techniques • Whether bounded equivalence checking is a good method to generate tests for stuck-at faults in sequential circuits.

  32. Project 5: Implementation of windowing for sequential optimization • This project will focus on studying the available windowing schemes [1] for combinational networks and extending them to work for networks with latches. Several applications will be implemented and tested to show the impact of windowing on the runtime/quality trade-off. The applications may include reachability analysis, reencoding using the set of unreachable states, computation of combinational don’t-cares due to unreachable and equivalence states using methods similar to [1]. • A. Mishchenko, R. Brayton. SAT-based complete don’t-care computation for network optimization. Proc. IWLS ’04.

  33. Project 6: PTL synthesis for testability • (Mentor: Rolf Drechsler, University of Bremen, Germany) • One of the most important steps during circuit design is the testability of the netlist. Multiplexor circuits derived from BDDs have been studied intensively under various fault models. Recently, a new technique has been presented that guarantees full testability of a circuit derived from a BDD description under the stuck-at fault model and the robust path-delay fault model. The size of the circuit is directly proportional to the given BDD size. • The goal of this project is to generalize the techniques [1] to work for sequential circuits, i.e. circuits that are not full-scan. The problem can be studied from a theoretical point of view or by an experimental study in the MVSIS environment. • [1] R. Drechsler, J. Shi, G. Fey. Synthesis of Fully Testable Circuits from BDDs. IEEE Trans. CAD, Vol. 23(3), March 2004, pp. 440-443.

  34. Project 7: Verifying sequential circuits after phase assignment • (Mentor: Geert Janssen, IBM T. J. Watson Research Center, Yorktown Heights) • Two sequential netlists are available, one of them derived from the other by a phase assignment of the latches. The inverters are collapsed and the logic functions are restructured. The correspondence of latches in the two netlists is known. The problem is to check if the two designs are indeed equivalent under some phase assignment. A general-case sequential equivalence checking method can be used, but the question is if there exists a more efficient method applicable to the special type of the netlist after phase assignment.

  35. Project 8: Implementation of SAT-based sequential equivalence checking • Recent advances of SAT-solvers bring SAT formulation to one of the main streams in formal verification. However, most of the prior work on this subject aimed at general model checking. Since sequential equivalence checking is a very specific and practically important problem in design verification, presumably specialized algorithms (e.g. exploiting similarities of circuit structures) may further improve verification performance. This project studies the most recent development of SAT-based model checking, and applies it to the sequential equivalence checking problem. Students working on this project will get familiar with the verification area, and gain programming experience with an advanced SAT-solver. • [1] K.L. McMillan. Interpolation and SAT-based model checking, Proc. CAV'03, LNCS 2725, 2003, pp. 1-13.

  36. Project 9: Resubstitution in sequential circuits • This project will explore extensions of the notion of resubstitution for sequential circuits. The idea of one such extension comes from the following observation. If we consider two uninitialized consecutive time-frames of a sequential circuits as one combinational circuit, some nodes in the first frame can be resubstituted into the second frame. Going back to the original circuit, this transformation can be interpreted as adding a new latch to the circuit and reexpressing the logic function of a node in terms of the new latch. This reexpression may lead to simplification of the node’s local function, or to dropping fanins of the node, which may result in making redundant some latches of the original circuit. • The goal of this project is to develop a theory supporting resubstitution in sequential circuits and implement an experimental command in the MVSIS environment, which will be applicable to large sequential circuits.

  37. Project 9: Resubstitution in sequential circuits Latches PO LI PO LI Logic LO PI LO PI

  38. Project 10: Using sequential flexibility to synthesize redundant circuits for improved reliability • Study the last year project by Ruth Wang • Generalize the problem statement to allow for different types of failures and additional feedback • Develop a methodology to synthesize redundant circuits with improved reliability • Implement the synthesis method and experiment on benchmarks

More Related