260 likes | 395 Views
Reachability Analysis using AIGs (instead of BDDs?). 290N: The Unknown Component Problem Lecture 23. Outline. AND-INV graphs (AIGs) Non-canonicity Structural hashing Applications Reachability analysis (implementation using AIGs) Image computation Boolean operations
E N D
Reachability Analysis using AIGs (instead of BDDs?) 290N: The Unknown Component Problem Lecture 23
Outline • AND-INV graphs (AIGs) • Non-canonicity • Structural hashing • Applications • Reachability analysis (implementation using AIGs) • Image computation • Boolean operations • Structural fixed point • Discussion (advantages and disadvantages compared to BDDs) • Delayed Boolean operations • Need efficient logic synthesis for highly redundant AIGs • Developing a hybrid approach (combining AIGs and BDDs) • Collapsing • Sliding boundary • Other methods?
And/Inverter Graphs (AIGs) • Example • Non-canonicity • Structural hashing • Typical applications
Example F(a,b,c,d) = ab + d(ac’+bc) d a b a c’ b c F(a,b,c,d) = ac’(b’d’)’ + c(a’d’)’ = ac’(b+d) + bc(a+d) a c’ b d b c a d
Structural Hashing • No structural hashing • Always add a new AND-node • One-level structural hashing • When a new AND-node is to be added, check a hash table for an existence of a node with the same pair of inputs; if it exists, return it; otherwise, create a new node • Two-level structural hashing • When a new AND-node is to be added, consider its predecessors, and hash the three AND-gates into a canonical form (two-level canonicity)
Applications of AIGs • A data structure for circuit-based SAT • A data structure for EC and BMC • A alternative representation of functionality of a node in the Boolean network • A uniform representation for both • algebraic factored forms, and • the result of Boolean decomposition
Reachability Analysis using AIGs • Computation using AIGs • Reachability pseudo-code • Using AIGs for reachability • Example • Structural fixed point • Consequences
Using AIGs for Computation • Boolean operations • Express an operation in terms of ANDs and INVs • Cofactoring • Propagate a constant • Quantification • Propagate two constants and OR the results • Variable replacement • Reconstruct a graph in terms of different variables
Reachable State Computation Relation(cs,ns) = i k [ nsk NSk( i, cs ) ]; Reached(cs) = 0;Front(cs) = InitState(cs); do{ Reached = Reached + Front; Next(cs) = cs [ Relation(cs,ns) & Front(cs) ] ns cs; Front = Next & Reached;}while ( Front 0 );
Using AIGs for Reachability • General idea • Take any BDD-based computation and perform it using AIGs, instead of BDDs • Consequences • Prevents unexpected “BDD blow-ups” • Instead, creates AIGs monotonically growing from one iteration to another • Requires efficient reduction procedures • A good test for logic synthesis algorithms and tools
Reduction Procedures Tried • Merging functionally-equivalent nodes (up to complementation) • AIG rewriting using pre-computed table • Applying optimization scripts in SIS/MVSIS • BDD-based collapsing • BDD-based partial collapsing
Reduction Procedures To Try • Key insight • AIGs record delayed BDD computations! • BDD-based partial collapsing • Using a shifting BDD/AIG boundary
Structural Fixed Point • Definition.The functional fixed point is reached when in the above computation Front = Constant-0 Boolean function • Definition.The structural fixed point is reached when in the above computation Front = Constant-0 AIG • Theorem.Suppose BDD-based reachable state computation reaches the functional fixed point after n iterations. Then, a similar AIG-based computation reachesthe structural fixed point after n or n+1 iterations.
Proof • After n iterations, Next contains only visited states and Front is Constant 0 Boolean function. • If Front is also Constant 0 AIG, the structural fixed point is reached after n iterations. • If Front is not Constant-0 AIG, then we show that, after the next image computation, Next becomes Constant-0 AIG(see Lemma). In this case, thefixed point is reached after n+1 iterations.
Lemma • Lemma. If Front is Constant-0 Boolean function but notConstant-0 AIG, the result of image computation is always Constant-0 AIG.Proof: • Each cofactor of Product w.r.t. the cs variables is Constant 0 AIG. • Quantification is performed by ORing all of the cofactors of Product w.r.t. the cs variables. • ORing any number of Constant 0 AIGs gives Constant 0 AIG. Q.E.D.
Reachable State Computation Relation(cs,ns) = i k [ nsk NSk( i, cs ) ]; Reached(cs) = 0;Front(cs) = InitState(cs); do{ Reached = Reached + Front; Next(cs) = cs [ Relation(cs,ns) & Front(cs) ] ns cs; Front = Next & Reached;}while ( Front 0 );
Proof Illustration csP(cs,ns) P(cs,ns) = Relation(cs,ns) & Front(cs) Quantification Front Relation P P P P cs 00 ns 01 10 11 cs ns ns ns ns
Discussion • It would be nice if AIGs could beat BDDs for reachable state computation • In practice, this did not happen (so far)
Towards a Hybrid Approach • Perhaps AIGs alone cannot beat BDDs • A hybrid approach should exploit respective strengths of these data structures • BDDs: canonicity, non-redundancy • AIGs: no blow-up, structural fixed point • The sliding boundary idea • AIGs represent delayed BDD computation
Conclusion • Reviewed AIG data structure • Presented AIG-based computation • Proved an existence of structural fixed point in the AIG-based reachable state computation • Reported on preliminary experimental results • Outlined future research