Graph-Based Algorithms for Boolean Function Manipulation
IEEE Transactions on Computers
ICCAD '94 Proceedings of the 1994 IEEE/ACM international conference on Computer-aided design
Advanced verification techniques based on learning
DAC '95 Proceedings of the 32nd annual ACM/IEEE Design Automation Conference
Improvements to combinational equivalence checking
Proceedings of the 2006 IEEE/ACM international conference on Computer-aided design
Boolector: An Efficient SMT Solver for Bit-Vectors and Arrays
TACAS '09 Proceedings of the 15th International Conference on Tools and Algorithms for the Construction and Analysis of Systems: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009,
DeltaSyn: an efficient logic difference optimizer for ECO synthesis
Proceedings of the 2009 International Conference on Computer-Aided Design
Oracle-guided component-based program synthesis
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
sKizzo: a suite to evaluate and certify QBFs
CADE' 20 Proceedings of the 20th international conference on Automated Deduction
Robust Boolean reasoning for equivalence checking and functional property verification
IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems
Fault diagnosis and logic debugging using Boolean satisfiability
IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems
Solving QBF with counterexample guided refinement
SAT'12 Proceedings of the 15th international conference on Theory and Applications of Satisfiability Testing
SAT-Based Automatic Rectification and Debugging of Combinational Circuits with LUT Insertions
ATS '12 Proceedings of the 2012 IEEE 21st Asian Test Symposium
Hi-index | 0.00 |
In this paper, we present techniques for partial synthesis through sampling mostly for combinational circuits. Here partial synthesis means that most parts of the target circuits are fixed whereas the missing portions must be logic synthesized from scratch. By modeling the missing portions with Look Up Table (LUT) or uninterpreted function (UF), their synthesis and verification problems can be formulated as Quantified Boolean Formulae (QBF). We solve these QBF by repeatedly applying a two step procedure i.e., synthesizing circuits from sample simulation results (necessary conditions) followed by formal verification on the synthesized ones with their specifications for the entire circuits (sufficient conditions). If a circuit is not correct, a counter example is automatically generated which is added to the sampling in the next iteration. With state-of-the-art combinational formal equivalence checkers, our experiments show that large circuits having more than hundreds of thousands of gates can be successfully processed with small numbers of repetitions (in the order of hundreds). Next, we extend the techniques in such a way that no formal specifications nor formal verifiers are available, but only simulation models are used for "correct" partial synthesis. This is achieved by searching for multiple different solution circuits for missing portions which behave the same for the sampled inputs but differently with another input. By repeating this process, we can narrow down the search space, and the solution circuit may become only one which should be the "correct" partial synthesis. We show successfully experimental results with small numbers of repetitions for circuits where 32-inputs/32-outputs sub-circuits are missing.