Input Elimination and Abstraction in Model Checking
Symbolic model checking, while gaining success in the industry as a valuable tool for finding hardware design bugs, is still severely limited with respect to the size of the verifiable designs. This limitation is due to the nonlinear memory consumption of the data structure (namely, BDD and its variants) used to represent the model and the explored states. Input elimination is a known method that reduces the size of the model by existential quantification of the inputs. In this paper, we improve this technique in several dimensions: we present a novel re-encoding of the model that results in a much large set of quantifiable inputs, we introduce a new greedy algorithm for early quantification of the inputs during the transition relation build, and we suggest a new algorithm to reconstruct the input values in an error trace. Model abstraction is a semiautomatic method that requires the user to provide an abstraction mapping, and can dramatically reduce the size of models with large data-path. We show that data abstraction can be reduced to input elimination using few simple manipulations of the hardware netlist description. Model abstraction is a well-known technique and our contribution is a novel technique that generates the minimal transition relation with respect to a given abstraction mapping.
Unable to display preview. Download preview PDF.
- [BCL91]J. R. Burch, E. M. Clarke, D. E. Long. Representing circuits more efficiently in symbolic model checking. In Proceedings of the Design Automation Conference, pages 403–407, San Francisco, CA, June 1991.Google Scholar
- [CCLQ97]G. Cabodi, P. Camurati, L. Lavagno, S. Quer. Disjunctive Partitioning and Partial Iterative Squaring. Design Automation Conference, 1997.Google Scholar
- [CGH94]E. M. Clarke, O. Grumberg, H. Hamaguchi. Another look at LTL model checking. Formal Methods in System Design, Volume 10, Number 1, February 1997. Also in CAV’94.Google Scholar
- [CGL92]E. M. Clarke, O. Grumberg, D. E. Long. Model checking and Abstraction. In Symposium on Principles of Programming Languages, ACM, October, 1992.Google Scholar
- [CGL96]E. M. Clarke, O. Grumberg, D. E. Long. Model Checking. In Springer-Verlag Nato ASI Series F, Volume 152, 1996 (a survey on model checking, abstraction and composition).Google Scholar
- [CGMZ95]E. M. Clarke, O. Grumberg, K. McMillen, X. Zhao. Efficient generation of counter examples and witnesses in symbolic model checking. In DAC 95.Google Scholar
- [DeM94]G. D. De Micheli. Synthesis and Optimization of digital circuits. McGraw Hill, 1994.Google Scholar
- [GB94]D. Geist, I. Beer, Efficient Model Checking by Automated Ordering of Transition Relation Partitions. In Proceedings of Computer Aided Verification, D.L. Dill Ed. LNCS 818, Springer-Verlag, 1994.Google Scholar
- [GL94]O. Grumberg, D. E. Long. Model checking and modular verification. ACM Trans. Programming Languages and Systems, 1994.Google Scholar
- [HKB96]R. Hojati, S. Krishnan, R. Brayton. Early Quantification and Partitioned Transition Relation. In Proceedings of International Conference on Computer Design, 1996.Google Scholar
- [Lon93]D. E. Long. Model Checking, Abstraction, and Compositional Verification. PhD thesis, Carnegie-Mellon University, July 1993.Google Scholar
- [McM97]K. L. McMillan. A compositional rule for hardware design refinement. In O. Grumberg editors, Computer Aided Verification, Haifa, Israel, 1997, Springer-Verlag.Google Scholar
- [RABPP95]R. K. Ranjan, A. Aziz, R. K. Brayton, C. Pixley and B. Plessier. Efficient BDD Algorithms for Synthesizing and Verifying Finite State Machines. In Workshop Notes of Intl. Workshop on Logic Synthesis, Tahoe City, CA, May 1995.Google Scholar