Planning for end-to-end formal using simulation-based coverage

Model checking tools are gaining traction as a practical formal verification solution for industrial designs. However, the use of absraction models is key to overcoming complexity barriers in applying these tools. Coverage has been a useful metric to determine when simulation-based verification is complete. In this paper, we show how similar coverage metrics can be used to determine the completeness of a formal verification setup. We also show how coverage can be used to determine effectivness of different abstraction models are. This methodology can be used to set formal verification goals, and to measure the progress of the work, thereby placing formal verification in a chip design schedule. We use a real-world design with a large state space, and present quantitative coverage metrics to illustrate the methodology, and its benefits for faster run-time, faster discovery of bugs, and higher coverage.

[1]  Chao Wang,et al.  Abstraction Refinement for Large Scale Model Checking (Series on Integrated Circuits and Systems) , 2006 .

[2]  Alok Jain,et al.  Formal verification of an ASIC ethernet switch block , 2010, Formal Methods in Computer Aided Design.

[3]  Kenneth L. McMillan,et al.  Verification of an Implementation of Tomasulo's Algorithm by Compositional Model Checking , 1998, CAV.

[4]  Vigyan Singhal,et al.  Using Coverage to Deploy Formal Verification in a Simulation World , 2011, CAV.

[5]  R. Kurshan,et al.  Formal Verification In A Commercial Setting , 1997, Proceedings of the 34th Design Automation Conference.

[6]  Helmut Veith,et al.  Counterexample-guided abstraction refinement for symbolic model checking , 2003, JACM.

[7]  Somesh Jha,et al.  Verification of the Futurebus+ cache coherence protocol , 1993, Formal Methods Syst. Des..

[8]  Michel Dubois,et al.  A New Approach for the Verification of Cache Coherence Protocols , 1995, IEEE Trans. Parallel Distributed Syst..

[9]  Armin Biere,et al.  Bounded model checking , 2003, Adv. Comput..

[10]  David L. Dill,et al.  Better verification through symmetry , 1996, Formal Methods Syst. Des..

[11]  Orna Grumberg,et al.  "Have I written enough Properties?" - A Method of Comparison between Specification and Implementation , 1999, CHARME.

[12]  Abhishek Datta,et al.  Formal Verification of a Public-Domain DDR2 Controller Design , 2008, 21st International Conference on VLSI Design (VLSID 2008).

[13]  Pierre Wolper,et al.  Expressing interesting properties of programs in propositional temporal logic , 1986, POPL '86.

[14]  Michael Kantrowitz,et al.  I'm done simulating; now what? Verification coverage analysis and correctness checking of the DEC chip 21164 Alpha microprocessor , 1996, DAC '96.

[15]  Kurt Keutzer,et al.  Coverage Metrics for Functional Validation of Hardware Designs , 2001, IEEE Des. Test Comput..

[16]  M. Kantrowitz,et al.  I'm done simulating; now what? Verification coverage analysis and correctness checking of the DECchip 21164 Alpha microprocessor , 1996, 33rd Design Automation Conference Proceedings, 1996.

[17]  Chao Wang,et al.  Abstraction Refinement for Large Scale Model Checking , 2006, Series on Integrated Circuits and Systems.

[18]  Christian Stangier,et al.  Applying formal verification with protocol compiler , 2001, Proceedings Euromicro Symposium on Digital Systems Design.