130 likes | 138 Views
Interpolant-Based Don’t Care Computation. I-Hsin Chen Graduate Institution of Electronics Engineering National Taiwan University. Outline. Introduction Interpolant Don’t Care Computation Method 1 Don’t Care Computation Method 2 Conclusion. Why Compute Don’t Cares?.
E N D
Interpolant-Based Don’t Care Computation I-Hsin Chen Graduate Institution of Electronics Engineering National Taiwan University
Outline • Introduction • Interpolant • Don’t Care Computation Method 1 • Don’t Care Computation Method 2 • Conclusion
Why Compute Don’t Cares? • Don’t care computation determines the flexibility of intermediate nodes in a given logic circuit. • Flexibility information is necessary in logic synthesis and verification • Using don’t cares is an important technique for technology-independent logic synthesis of multi-level networks. • Thus, get don’t care information from a circuit is a crucial step in logic optimization.
Research Goal • Compute the don’t care set by a SAT problem. • Circuit -> miter • Miter -> CNF • SAT solving -> UNSAT • Refutation proof • Use the interpolant derived by the refutation prove to get the don’t care set • Proof -> Interpolant • Interpolant -> don’t care set
P B A What is Interpolant? • Given a pair of formulas (A, B), such that A^B is inconsistent, an interpolant for (A, B) is a formula P with the following properties: • A implies P, • P^Bis unsatisfiable, and • P refers only to the common variables of A and B. (Craig, 1957) • For example: A = p^q, B = ¬q^r, P' = q
c (b) (¬bÚc) ^ (c) (¬c Ú d) ^ (¬d) (d) ^ P=c How to Get Interpolant? • Given a resolution refutation of A^B, P can be derived in linear time (Pudlak, Krajicek, 1997). • For example:A = (b)(¬b Úc)B = (¬c Ú d)(¬d) ^ • Interpolant is a circuit following structure of the proof
Method 1 Construction • Duplicate the original circuit with an inverter added to a fanout of a node. • Constraint left part to represent care on set. • Constraint right part to represent care off set. • Let left part to be A, others to be B, thus, A^B is unsat.
Interpolant Strengthening • Method 1 needs a process to derive different strength interpolant. • For example, P and P’ are implied by A, and both are unsatisfiable with B, but they have different strength. P B P’ A A
Method 2 Construction • Duplicate the circuit as we did in Method 1. • Constraint left part to represent care set. • Constraint right part to represent don’t care set. • Let left part to be A, others to be B, and add the satisfy instance to B to make sure A^B is unsat.
SAT Instance x is globa care set, x’ is globle don’t care set, although x and x’ are different, but they could cause y = y’. 12
Conclusion • We proposed two algorithms based on interpolation to compute don’t cares. • Method 1 • Incomplete, but only need two SAT solving and interpolant. • Method 2 • Complete, but may need run SAT solving several times.