100 likes | 432 Views
Solving Boolean Satisfiability (SAT) Problem Using the Unate Recursive Paradigm. Priyank Kalla, Maciej Ciesielski Dept. of Elec. & Comp. Engineering University of Massachusetts Amherst, USA Supported by Avery Design Systems, Inc., USA. a. u. b. c. v. w. d.
E N D
Solving Boolean Satisfiability (SAT) Problem Using the Unate Recursive Paradigm Priyank Kalla, Maciej Ciesielski Dept. of Elec. & Comp. Engineering University of Massachusetts Amherst, USA Supported by Avery Design Systems, Inc., USA
a u b c v w d The SAT Problem – in Our Context • Given: output value requirements for a circuit • Compute: satisfying assignments at the inputs Output requirements: u=1, v=1, w=1 SAT assignments: a, b, c, d = ?
Application to Functional Verification • Given an RTL specification of a circuit • Simulate the design (user directed, pseudo-random, targeted vectors) • Code coverage ? Module Input ports, output ports, internal signals Begin description . . . . . If (condition) then Assign signal = function( ); End if; . . . . . End module Expand The underlying logic • Solve SAT for expanded logic + re-simulate
Boolean logic Solving SAT Using BDDs:BDD-SAT • Build BDDs for each output • Build the product BDD (AND of output BDDs) • Result: set of all satisfying assignments • If the set is empty, infeasible SAT instance
Product BDD ab ab’c 1 0 How Does BDD-SAT Work a • Every path root --> 1 is a SAT solution b • Product BDD = set of all satisfying solutions c • Pick any path (prod. term) • Limitation: BDD may be too large
Our Focus • How to solve the SAT problem without building the product BDD? • Assume individual BDD can be built • Why is the intermediate product too large? • Intermediate computations contain regions of empty solution space • Discard regions of empty solution space from further exploration
f = + • Positive unate: x x x x x x x x x x x x x • Neither nor contain i i • Simplification: SAT ( f ) = SAT ( ) f f f f f f f f f f Unate Functions in SAT • Look for solution in
SAT(f g) = x SAT( ) g g g g f f f f x x x x x x x x g g g f f f x x x x x x f g = x + Unateness Consistency • If all functions consistently unate in x
g g f g = x + f f x x x x g g f f SAT (f g) = x SAT( ) + SAT( ) x x x x x x Unate Recursive Paradigm For SAT • What if no consistently unate variables? • consider two functions f, g, both unate in x • use Shannon expansion recursively • Perhaps the co-factors are unate
Conclusions and Future Work • Exploiting the unate recursive paradigm to solve SAT, using BDDs • Developed two algorithms: B-SAT & Inc-USAT • BSAT: efficiently controls the BDD size, but slow for infeasible SAT instances • Inc-USAT: incomplete search, finds easy solutions quickly, cannot prove infeasibility unequivocally • Both B-SAT & Inc-USAT are inefficient for infeasible SAT instances • Future work: incorporation of “learning” techniques