Concurrency-oriented verification and coverage of system-level designs

Correct concurrent System-on-Chips (SoCs) are very hard to design and reason about. In this work, we develop an automated framework complete with concurrency-oriented verification and coverage techniques for system-level designs. Our techniques are different from traditional simulation-based reliability techniques, since concurrency information is often lost in traditional techniques. We preserve concurrency information to obtain unique verification techniques that allow us to predict potential errors (formulated as transaction-level assertions) from error-free simulations. In order to do this, we exploit the inherent concurrency in the designs to generate and analyze novel partial-order simulation traces. Additionally, to evaluate the confidence on verification results and the gauge progress of verification, we develop novel mutation testing based on concurrent coverage metrics. Mutation testing is a fault insertion-based simulation technique that has been successfully applied in software testing. We present a comprehensive list of mutation operators for SystemC, similar to behavioral fault models, and show the effectiveness of these operators by relating them to actual bug patterns. We have successfully applied our verification and coverage techniques on industrial systems and demonstrated that current verification test suites need to be improved for concurrent designs, and we have found errors in systems that were tested previously.

[1]  Florence Maraninchi,et al.  Full simulation coverage for SystemC transaction-level models of systems-on-a-chip , 2009, Formal Methods Syst. Des..

[2]  Franco Fummi,et al.  Functional qualification of TLM verification , 2009, 2009 Design, Automation & Test in Europe Conference & Exhibition.

[3]  Franco Fummi,et al.  A Mutation Model for the SystemC TLM 2.0 Communication Interfaces , 2008, 2008 Design, Automation and Test in Europe.

[4]  A. Jefferson Offutt,et al.  Mutation 2000: uniting the orthogonal , 2001 .

[5]  Harry D. Foster,et al.  Assertion-Based Design (Information Technology: Transmission, Processing & Storage) , 2004 .

[6]  Eitan Farchi,et al.  Concurrent bug patterns and how to test them , 2003, Proceedings International Parallel and Distributed Processing Symposium.

[7]  John P. Hayes,et al.  High-level design verification of microprocessors via error modeling , 1998, TODE.

[8]  Frank Ghenassia,et al.  Transaction Level Modeling with SystemC , 2005 .

[9]  Koushik Sen,et al.  Runtime safety analysis of multithreaded programs , 2003, ESEC/FSE-11.

[10]  Daniel Kroening,et al.  Race analysis for SystemC using model checking , 2008, 2008 IEEE/ACM International Conference on Computer-Aided Design.

[11]  Melvin A. Breuer,et al.  Digital systems testing and testable design , 1990 .

[12]  Atsushi Kasuya,et al.  Verification Methodologies in a TLM-to-RTL Design Flow , 2007, 2007 44th ACM/IEEE Design Automation Conference.

[13]  Magdy S. Abadir,et al.  Predictive runtime verification of multi-processor SoCs in SystemC , 2008, 2008 45th ACM/IEEE Design Automation Conference.

[14]  J. Offutt,et al.  Mutation testing implements grammar-based testing , 2006, Second Workshop on Mutation Analysis (Mutation 2006 - ISSRE Workshops 2006).

[15]  Moshe Y. Vardi Formal Techniques for SystemC Verification; Position Paper , 2007, 2007 44th ACM/IEEE Design Automation Conference.

[16]  Wolfgang Ecker,et al.  Implementation of a Transaction Level Assertion Framework in SystemC , 2007, 2007 Design, Automation & Test in Europe Conference & Exhibition.

[17]  Rolf Drechsler,et al.  Formal verification of LTL formulas for SystemC designs , 2003, Proceedings of the 2003 International Symposium on Circuits and Systems, 2003. ISCAS '03..

[18]  J. Dingel,et al.  Mutation Operators for Concurrent Java (J2SE 5.0) , 2006, Second Workshop on Mutation Analysis (Mutation 2006 - ISSRE Workshops 2006).

[19]  A. Jefferson Offutt,et al.  An Experimental Comparison of Four Unit Test Criteria: Mutation, Edge-Pair, All-Uses and Prime Path Coverage , 2009, 2009 International Conference on Software Testing, Verification, and Validation Workshops.

[20]  Phyllis G. Frankl,et al.  All-uses vs mutation testing: An experimental comparison of effectiveness , 1997, J. Syst. Softw..

[21]  Vijay K. Garg Elements of distributed computing , 2002 .

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

[23]  Florence Maraninchi,et al.  Automatic Generation of Schedulings for Improving the Test Coverage of Systems-on-a-Chip , 2006, 2006 Formal Methods in Computer Aided Design.

[24]  M. Hampton,et al.  Leveraging a Commercial Mutation Analysis Tool For Research , 2007, Testing: Academic and Industrial Conference Practice and Research Techniques - MUTATION (TAICPART-MUTATION 2007).

[25]  Lionel C. Briand,et al.  Is mutation an appropriate tool for testing experiments? , 2005, ICSE.

[26]  Yong Rae Kwon,et al.  MuJava: an automated class mutation system: Research Articles , 2005 .

[27]  Sanjit A. Seshia,et al.  A Theory of Mutations with Applications to Vacuity, Coverage, and Fault Tolerance , 2008, 2008 Formal Methods in Computer-Aided Design.

[28]  Brian Bailey Can Mutation Analysis Help Fix Our Broken Coverage Metrics? , 2008, Haifa Verification Conference.

[29]  Franco Fummi,et al.  Too Few or Too Many Properties? Measure it by ATPG! , 2007, J. Electron. Test..

[30]  Kurt Keutzer,et al.  OCCOM: efficient computation of observability-based code coverage metrics for functional verification , 1998, Proceedings 1998 Design and Automation Conference. 35th DAC. (Cat. No.98CH36175).

[31]  Wolfgang Ecker,et al.  Interactive presentation: Implementation of a transaction level assertion framework in SystemC , 2007 .

[32]  Zeljko Zilic,et al.  Defining and Providing Coverage for Assertion-Based Dynamic Verification , 2010, J. Electron. Test..

[33]  Hai Zhou,et al.  Parallel CAD: Algorithm Design and Programming Special Section Call for Papers TODAES: ACM Transactions on Design Automation of Electronic Systems , 2010 .

[34]  Moshe Y. Vardi,et al.  A Temporal Language for SystemC , 2008, 2008 Formal Methods in Computer-Aided Design.

[35]  Jin-hua Li,et al.  Mutation Analysis for Testing Finite State Machines , 2009, 2009 Second International Symposium on Electronic Commerce and Security.

[36]  Olivier Ponsini,et al.  A Comparison of Two SystemC/TLM Semantics for Formal Verification , 2008, 2008 6th ACM/IEEE International Conference on Formal Methods and Models for Co-Design.

[37]  Frank Ghenassia Transaction-Level Modeling with SystemC: TLM Concepts and Applications for Embedded Systems , 2010 .

[38]  Rajesh Gupta,et al.  Partial order reduction for scalable testing of SystemC TLM designs , 2008, 2008 45th ACM/IEEE Design Automation Conference.

[39]  Vijay K. Garg,et al.  Computation Slicing: Techniques and Theory , 2001, DISC.

[40]  Harry D. Foster,et al.  Assertion-Based Design , 2010 .

[41]  Patrick Joseph Walsh,et al.  A measure of test case completeness (software, engineering) , 1985 .

[42]  Márcio Eduardo Delamaro,et al.  Mutation analysis testing for finite state machines , 1994, Proceedings of 1994 IEEE International Symposium on Software Reliability Engineering.

[43]  Dynamic state traversal for sequential circuit test generation , 2000, TODE.

[44]  Mark Weiser,et al.  Programmers use slices when debugging , 1982, CACM.

[45]  Vijay K. Garg,et al.  Formal Verification of Simulation Traces Using Computation Slicing , 2007, IEEE Transactions on Computers.

[46]  Laurence Pierre,et al.  A Tractable and Fast Method for Monitoring SystemC TLM Specifications , 2008, IEEE Transactions on Computers.

[47]  S. Tahar,et al.  On the extension of SystemC by SystemVerilog assertions , 2004, Canadian Conference on Electrical and Computer Engineering 2004 (IEEE Cat. No.04CH37513).

[48]  Leslie Lamport,et al.  Time, clocks, and the ordering of events in a distributed system , 1978, CACM.

[49]  A. Jefferson Offutt,et al.  MuJava: an automated class mutation system , 2005, Softw. Test. Verification Reliab..