Robert Brayton UC Berkeley

Slides:



Advertisements
Similar presentations
The Synthesis of Cyclic Circuits with SAT and Interpolation By John Backes and Marc Riedel ECE University of Minnesota.
Advertisements

Completeness and Expressiveness
1 EECS 219B Spring 2001 Node minimization Andreas Kuehlmann.
Introduction to Logic Synthesis Alan Mishchenko UC Berkeley.
1 FRAIGs: Functionally Reduced And-Inverter Graphs Adapted from the paper “FRAIGs: A Unifying Representation for Logic Synthesis and Verification”, by.
CSE 421 Algorithms Richard Anderson Lecture 27 NP Completeness.
On Bridging Simulation and Formal Verification Eugene Goldberg Cadence Research Labs (USA) VMCAI-2008, San Francisco, USA.
February 18, 2015CS21 Lecture 181 CS21 Decidability and Tractability Lecture 18 February 18, 2015.
Week 10Complexity of Algorithms1 Hard Computational Problems Some computational problems are hard Despite a numerous attempts we do not know any efficient.
The Synergy between Logic Synthesis and Equivalence Checking R. Brayton UC Berkeley Thanks to SRC, NSF, California Micro Program and industrial sponsors,
Logic Synthesis: Past and Future Alan Mishchenko UC Berkeley.
Cut-Based Inductive Invariant Computation Michael Case 1,2 Alan Mishchenko 1 Robert Brayton 1 Robert Brayton 1 1 UC Berkeley 2 IBM Systems and Technology.
Boolean Functions 1 ECE 667 ECE 667 Synthesis and Verification of Digital Circuits Boolean Functions Basics Maciej Ciesielski Univ.
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.
2009/6/30 CAV Quantifier Elimination via Functional Composition Jie-Hong Roland Jiang Dept. of Electrical Eng. / Grad. Inst. of Electronics Eng.
A Semi-Canonical Form for Sequential Circuits Alan Mishchenko Niklas Een Robert Brayton UC Berkeley Michael Case Pankaj Chauhan Nikhil Sharma Calypto Design.
Resolution Proofs as a Data Structure for Logic Synthesis John Backes Marc Riedel Electrical.
A Toolbox for Counter-Example Analysis and Optimization
The Analysis of Cyclic Circuits with Boolean Satisfiability
Synthesis for Verification
NP-Completeness (2) NP-Completeness Graphs 7/23/ :02 PM x x x x
Alan Mishchenko UC Berkeley
BVSRC Berkeley Verification and Synthesis Research Center UC Berkeley
Enhancing PDR/IC3 with Localization Abstraction
SAT-Based Logic Optimization and Resynthesis
Robert Brayton Alan Mishchenko Niklas Een
Alan Mishchenko Robert Brayton UC Berkeley
Introduction to Logic Synthesis with ABC
Logic Synthesis: Past, Present, and Future
A Semi-Canonical Form for Sequential AIGs
Versatile SAT-based Remapping for Standard Cells
SAT-based Methods: Logic Synthesis and Technology Mapping
Integrating an AIG Package, Simulator, and SAT Solver
A Boolean Paradigm in Multi-Valued Logic Synthesis
Synthesis for Verification
Optimal Redundancy Removal without Fixedpoint Computation
SAT-Based Logic Synthesis (yes, Logic Synthesis Is Everywhere
The Synergy between Logic Synthesis and Equivalence Checking
The Synergy between Logic Synthesis and Equivalence Checking
Introduction to Formal Verification
Canonical Computation without Canonical Data Structure
SAT-Based Optimization with Don’t-Cares Revisited
Canonical Computation Without Canonical Data Structure
Scalable and Scalably-Verifiable Sequential Synthesis
SAT-based Methods for Scalable Synthesis and Verification
Research Status of Equivalence Checking at Zhejiang University
Resolution Proofs for Combinational Equivalence
Alan Mishchenko UC Berkeley (With many thanks to Donald Knuth,
Alan Mishchenko UC Berkeley (With many thanks to Donald Knuth for
SAT-Based Logic Synthesis (yes, Logic Synthesis Is Everywhere!)
Integrating an AIG Package, Simulator, and SAT Solver
Introduction to Logic Synthesis
Canonical Computation without Canonical Data Structure
SAT-Based Logic Synthesis
SAT-based Methods: Logic Synthesis and Technology Mapping
Recording Synthesis History for Sequential Verification
SAT-based Methods: Logic Synthesis and Technology Mapping
Logic Synthesis: Past, Present, and Future
Logic Synthesis: Past and Future
Canonical Computation without Canonical Data Structure
Innovative Sequential Synthesis and Verification
SAT-Based Logic Synthesis (yes, Logic Synthesis Is Everywhere!)
SAT-based Methods: Logic Synthesis and Technology Mapping
SAT-Based Logic Synthesis (yes, Logic Synthesis Is Everywhere!)
Introduction to Logic Synthesis with ABC
Scalable Don’t-Care-Based Logic Optimization and Resynthesis
SAT-Based Logic Synthesis
Alan Mishchenko Robert Brayton
Alan Mishchenko Department of EECS UC Berkeley
Integrating AIG Package, Simulator, and SAT Solver
Presentation transcript:

Robert Brayton UC Berkeley Using Unreachable State Information in Sequential Logic Synthesis Robert Brayton UC Berkeley

Windowing a Node in the Network Boolean network Definition A window for a node in the network is the context in which the don’t-cares are computed A window includes n levels of the TFI m levels of the TFO all re-convergent paths captured in this scope Window with its PIs and POs can be considered as a separate network Window POs Window PIs n = 3 m = 3

Don’t-Care Computation Framework “Miter” constructed for the window POs … f s x Window f s x Same window with inverter

Implementation of Don’t-Care Computation Compute the care set Simulation Simulate the miter using random patterns Collect x minterms, for which the output of miter is 1 This is a subset of a care set Satisfiability Derive set of network clauses Add the negation of the current care set, Assert the output of miter to be 1, Enumerate through the SAT assignments Add these assignments to the care set 1 s x n

Resubstitution Resubstitution considers a node in a Boolean network and expresses it using a different set of fanins X X Computation can be enhanced by use of don’t cares

Resubstitution with Don’t-Cares - Overview Consider all or some nodes in Boolean network Create window Select possible fanin nodes (divisors) For each candidate subset of divisors Rule out some subsets using simulation Check resubstitution feasibility using SAT Compute resubstitution function using interpolation A low-cost by-product of completed SAT proofs Update the network if there is an improvement

Resubstitution with Don’t Cares Given: node function F(x) to be replaced care set C(x) for the node candidate set of divisors {gi(x)} for re-expressing F(x) Find: A resubstitution function h(y) such that F(x) = h(g(x)) on the care set SPFD Theorem: Function h exists if and only if every pair of care minterms, x1 and x2, distinguished by F(x), is also distinguished by gi(x) for some i C(x) F(x) g1 g2 g3 C(x) F(x) g1 g2 g3 h(g) = F(x)

Example of Resubstitution Any minterm pair distinguished by F(x) should also be distinguished by at least one of the candidates gi(x) Given: F(x) = (x1 x2)(x2  x3) Two candidate sets: {g1= x1’x2, g2 = x1 x2’x3}, {g3= x1  x2, g4 = x2 x3} Set {g3, g4} cannot be used for resubstitution while set {g1, g2} can. x F(x) g1(x) g2(x) g3(x) g4(x) 000 001 010 1 011 100 101 110 111

Checking Resubstitution using SAT Miter for resubstitution check F F Note use of care set. Resubstitution function exists if and only if SAT problem is unsatisfiable.

Computing Dependency Function h by Interpolation (Theory) Consider two sets of clauses, A(x, y) and B(y, z), such that A(x, y)  B(y, z) = 0 y are the only variables common to A and B. An interpolant of the pair (A(x, y), B(y, z)) is a function h(y) depending only on the common variables y such that A(x, y)  h(y)  B(y, z) A(x, y) B(y, z) h(y) Boolean space (x,y,z)

Computing Dependency Function h by Interpolation (Implementation) Problem: Find function h(y), such that C(x)  [h(g(x))  F(x)], i.e. F(x) is expressed in terms of {gi}. Solution: Prove the corresponding SAT problem “unsatisfiable” Derive unsatisfiability resolution proof [Goldberg/Novikov, DATE’03] Divide clauses into A clauses and B clauses Derive interpolant from the unsatisfiability proof [McMillan, CAV’03] Use interpolant as the dependency function, h(g) Replace F(x) by h(g) if cost function improved A B h A B y Notes on this solution uses don’t cares does not use Espresso is more scalable

Don’t Care Based Simplification Using Care Clauses Representing Reached States We compute an inductive invariant consisting of a set of care clauses on k-cuts of an AIG representing the sequential circuit. (see indcut paper submitted to CAV’08) In order to use these as well as SDCs and ODCs in a scalable way, windowing is used An outer window is used to compute cares for inner window We look for those clauses whose variables all fall within the outer window We add these to the outer window in computing the care set in terms of variables x

Care Clauses in Outer Window z care clause care clause 1 1 care clause f 1 care clause y 1 inner window x Outer window s Entire circuit

Care Computation Using Care Clauses Adding care clauses restricts what values s can have … z2 z1 Outer window W1 Outer window W2 care clause care clause 1 1 f f x x s s Same window with inverter Window